1 / 56

Introduction to Computing Lecture 0 0 : Part 2 Introduction to Algorithms and Flowcharts

Introduction to Computing Lecture 0 0 : Part 2 Introduction to Algorithms and Flowcharts. Assist.Prof. Dr. Nükhet ÖZBEK Ege University Department of Electrical & Electronics Engineering ozbek.nukhet @ gmail.com. Topics. Solving problems Software Development Method Algorithms

rcoughlin
Download Presentation

Introduction to Computing Lecture 0 0 : Part 2 Introduction to Algorithms and Flowcharts

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introduction to Computing Lecture 00: Part 2Introduction to Algorithms and Flowcharts • Assist.Prof.Dr. NükhetÖZBEK • Ege University • Department of Electrical & Electronics Engineering • ozbek.nukhet@gmail.com

  2. Topics • Solving problems • Software Development Method • Algorithms • Flow Charts

  3. Software Development • Programming is a problem-solving activity

  4. How do we solve problems? • We "just do" • Guesswork-and-luck • Trial-and-error • Experience (possibly someone else's) • "Scientifically"

  5. The Problem-solving Process Requirement Analysis Analysis Design Implementation Test and Verification Maintenance

  6. Requirement analysis • Formally specify the problem and the needed solution • Unimportant aspects are removed from problem definition

  7. Analysis • Detailed identification of the problem and the desired solution • Detailed specification of input data and the required output is worked out

  8. Design • Specification of the process(es) needed to transform the input to the desired output • Sequence of instructions specifying the steps required to accomplish a task is called an algorithm • Designed algorithm must be checked for correctness

  9. Implementation • Designed algorithm is translated into a chosen computer language

  10. Test and verification • To see that developed program works as intended • Program must be run with several different data sets to verify the program

  11. Maintenance • Developed program is modified to correct unexpected errors encountered in the program and add new features to the program if needed • Maintenance can be a tedious process • Programs must be well documented and structured

  12. Algorithm • A sequence of instructions specifying the steps required to accomplish some task • Named after:Muhammad ibn Musa al-Khwarizmi of Khowarezm (now Khiva in Uzbekistan)

  13. Algorithm – Working Definition • A sequence of instructions describing how to do a task [As opposed to actually executing the instructions]

  14. Algorithm -- Examples • A cooking recipe • Assembly instructions for a model • The rulesof how to play a game • Directions for driving from A to B • A knitting pattern • A car repair manual

  15. Components of an Algorithm • Variables and values • Instructions • Sequences • Procedures • Selections • Repetitions • Documentation

  16. Values • Representquantities, amountsormeasurements • May be numerical or alphabetical (or other things) • Often have a unit related to their purpose • Example: • Recipe ingredients

  17. Variable Values 10 cookies 50 grams of sugar 3 slices of cake etc. This jar can contain Variables • Are containersfor values– placesto storevalues • Example:

  18. Restrictions on Variables • Variables may be restricted to contain a specific type of value

  19. Instructions – Examples Directions to perform specific actions on values and variables. • Take offyourshoes • Countto10 • Cut alongdotted line

  20. Sequence -- Example 1. Open freezer door 2. Take out Gourmet Meal™ 3. Close freezer door 4. Open microwave door 5. Put Gourmet Meal™ on carousel 6. Shut microwave door 7. Set microwave on high for 5 minutes 8. Start microwave 9. Wait 5 minutes 10. Open microwave door 11. Remove Gourmet Meal™ 12. Close microwave door

  21. Components of an Algorithm • Values and Variables • Instruction (a.k.a. primitives) • Sequence (of instructions) • Procedure (involving instructions) • Selection (between instructions) • Repetition (of instructions) • Documentation (beside instructions)

  22. Procedure • A namedsequence of instructions • So that you can • Refer to it collectively (by name) • ...instead of individually (by each instruction in the sequence) • Example: • Drive_To_Uni

  23. Procedure -- Example ...etc...etc...etc... 52. find parking space 53. pull into parking space 54. turn off engine 55. remove keys from ignition 56. open car door 57. get out 58. shut car door 59. lock car door 60. enable alarm } procedure Drive_To_Uni { 1. find car keys 2. disable car alarm 3. open car door 4. get in car 5. shut car door 6. put keys in ignition 7. start car 8. back car out of driveway 9. drive to end of street 10. turn right 11. drive to end of street 12. turn left ...etc...etc...etc

  24. Procedure – Example (cont) procedure Do_Week { Do_Monday Do_Tuesday Do_Wednesday Do_Thursday ...etc...etc...etc... } procedure Do_Thursday { Wake_up Have_Shower Eat_Breakfast Drive_To_Uni Sit_EE134_Lecture ...etc...etc...etc... Drive_From_Uni ...etc...etc...etc... }

  25. Procedure • A procedure may have a set of parameters procedure customerService ( myName,timeOfDay ) { say “Good timeOfDay” say “My name is myName” say “How can I help you?” } customerService ( “Ali”, “Morning” ) customerService (“Ayşe”, “Afternoon” ) customerService ( “Veli”, “Night” )

  26. Procedure – Example (cont) procedure Do_Thursday { Wake_up Have_Shower Eat_Breakfast Drive_To_Uni Sit_EE134_Lecture ...etc...etc...etc... Drive_From_Uni ...etc...etc...etc... } An instruction invoking a procedure is known as a “procedure call”

  27. Procedure – Example (cont) procedure Do_Thursday { Wake_up Have_Shower Eat_Breakfast Drive_To_Uni Sit_EE134_Lecture ...etc...etc...etc... Drive_From_Uni ...etc...etc...etc... } We use brackets to mark the beginning and end of a sequence.

  28. Procedure – Example (cont) In this subject, we alsouse the following words to refer to a “Procedure” : • Sub-routine • Module • Function procedure Do_Thursday { Wake_up Have_Shower Eat_Breakfast Drive_To_Uni Sit_EE134_Lecture ...etc...etc...etc... Drive_From_Uni ...etc...etc...etc... }

  29. Components of an Algorithm • Values and Variables • Instruction (a.k.a. primitives) • Sequence (of instructions) • Procedure (involving instructions) • Selection (between instructions) • Repetition (of instructions) • Documentation (beside instructions)

  30. Selection • An instruction thatdecides which of two possible sequences is executed • The decision is based on a single true/false condition

  31. Selection Example -Car Repair if (motor turns) then { CheckFuel CheckSparkPlugs CheckCarburettor } else { CheckDistributor CheckIgnitionCoil }

  32. Selection Example –Car Repair (cont) if (motor turns) then { CheckFuel CheckSparkPlugs CheckCarburettor } else { CheckDistributor CheckIgnitionCoil } Should be a true or false condition.

  33. Selection Example --Car Repair (cont) if (motor turns) then { CheckFuel CheckSparkPlugs CheckCarburettor } else { CheckDistributor CheckIgnitionCoil } Sequence if the condition istrue.

  34. Selection Example --Car Repair (cont) if (motor turns) then { CheckFuel CheckSparkPlugs CheckCarburettor } else { CheckDistributor CheckIgnitionCoil } Sequence if the condition isfalse.

  35. Selection – Several Conditions • What if several conditions need to be satisfied? if ( today is Thursdayand the time is 10.00am ) then { Go to EE134 Lecture } else { Go to Library } Solution 1

  36. Selection – Several Conditions (cont) if ( today is Thursday ) then { if ( the time is 10.00am ) then { Go to EE134 Lecture } } else ...etc...etc...etc... Often called a “nested selection” Solution 2

  37. Selection – At Least One of Several Conditions • What if at least one of several conditions needs to be satisfied? if ( I feel hungry or the time is 1.00pm or my mate has his eye on my lunch ) then { Eat my lunch now }

  38. What if there areseveral courses of action? Selection – Several Courses of Action if ( button pressed is 1 ) then { CheckAccountBalance } else { if ( button pressed is 2 ) then { TransferFunds } else { if ( button pressed is 3 ) then { PayBills } else { if ( button pressed is 4 ) then { ExitPhoneBanking } else { say “Invalid option” } } } } Form 1

  39. Selection – Several Courses of Action (cont) if ( button pressed is 1 ) then { CheckAccountBalance } else if ( button pressed is 2 ) then { TransferFunds } else if ( button pressed is 3 ) then { PayBills } else if ( button pressed is 4 ) then { ExitPhoneBanking } else { say “Invalid option” } Form 2 “Cascaded” selection.

  40. Components of an Algorithm • Values and Variables • Instruction (a.k.a. primitives) • Sequence (of instructions) • Procedure (involving instructions) • Selection (between instructions) • Repetition (of instructions) • Documentation (beside instructions)

  41. Repetition • Repeat an instruction... • ...while (or maybe until) some true or false condition occurs • Test the condition each time before repeating the instruction • Also known as iterationor loop • Example: • Algorithm for getting a date

  42. Repetition -- Example procedure AskOnDate (name, time, location) { Phone(name) Say("Hey",name, "it's your lucky day!") Say("Wanna come to",location, "at",time, "?") ListenToReply ( )start begging count at zerowhile (reply is "No" and begging count < 100){ Say("Oh please!") add 1 to begging count ListenToReply ( )} }

  43. Repetition – Example (cont) procedure AskOnDate ( name, time, location ) { Phone(name) Say("Hey", name, "it's your lucky day!") Say("Wanna come to", location, "at", time, "?") ListenToReply ( )start begging count at zerowhile (reply is "No" and begging count < 100){Say("Oh please!") add 1 to begging count ListenToReply ( ) } } Condition is tested before sequence

  44. Repetition – Example (cont) procedure AskOnDate ( name, time, location ) { Phone(name) Say("Hey", name, "it's your lucky day!") Say("Wanna come to", location, "at", time, "?") ListenToReply ( )start begging count at zerowhile (reply is "No" and begging count < 100){ Say("Oh please!") add 1 to begging count ListenToReply ( )} } Sequence may not get executed at all

  45. Repetition – Example (cont) Ensure initial values of variables used in the conditions are set correctly procedure AskOnDate ( name, time, location ) { Phone(name) Say("Hey", name, "it's your lucky day!") Say("Wanna come to", location, "at", time, "?") ListenToReply ( )start begging count at zerowhile (reply is "No"andbegging count < 100){ Say("Oh please!") add 1 to begging count ListenToReply ( ) } }

  46. Repetition – Example (cont) procedure AskOnDate ( name, time, location ) { Phone(name) Say("Hey", name, "it's your lucky day!") Say("Wanna come to", location, "at", time, "?") ListenToReply ( )start begging count at zerowhile (reply is "No"andbegging count < 100){ Say("Oh please!") add 1 to begging count ListenToReply ( ) } } Ensure the variables used in the conditions are updated in each iteration

  47. Repetition – Example (cont) • What if we don’t increment the begging count? procedure AskOnDate ( name, time, location ) { Phone(name) Say("Hey", name, "it's your lucky day!") Say("Wanna come to", location, "at", time, "?") ListenToReply ( )start begging count at zerowhile (reply is "No" and begging count < 100){ Say("Oh please!") } } Infinite loop

  48. Repetition – Variation decide on Time and Location initialise booking to “unsuccessful” while ( not successfully booked ) { get next Name in little black book AskOnDate(Name, Time, Location) DetermineBookingSuccess } SighWithRelief

  49. Repetition– Pre-tested Loop decide on Time and Location initialise booking to “unsuccessful” while ( not successfully booked ) { get next Name in little black book AskOnDate(Name, Time, Location) DetermineBookingSuccess } SighWithRelief pre-tested loop

  50. Repetition – Pre-tested Loop decide on Time and Location initialise booking to “unsuccessful” until ( successfully booked) { get next Name in little black book AskOnDate(Name, Time, Location) DetermineBookingSuccess } SighWithRelief pre-tested loop

More Related