Presentation is loading. Please wait.

Presentation is loading. Please wait.

DCP2073 Asas Pengaturcaraan C Lecture 3: Components of an Algorithm

Similar presentations


Presentation on theme: "DCP2073 Asas Pengaturcaraan C Lecture 3: Components of an Algorithm"— Presentation transcript:

1 DCP2073 Asas Pengaturcaraan C Lecture 3: Components of an Algorithm
CSE1301 Sem DCP2073 Asas Pengaturcaraan C Lecture 3: Components of an Algorithm Lecture 4: Components of Algorithms

2 Recall What is the problem solving process? What is an algorithm?
CSE1301 Sem Recall What is the problem solving process? What is an algorithm? What are some examples? What are values and variables? What are instructions or primitives? Lecture 4: Components of Algorithms

3 Topics More components of an algorithm
The software development process Top-down design

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

5 Family Tree of Programming Languages The components of Algorithms
That we use correspond To “structured programming” (Algol, Pascal, C, Modula, Ada…)

6 Variables Are containers for values – places to store values Example:
CSE1301 Sem Variables Are containers for values – places to store values Example: This jar can contain 10 cookies 50 grams of sugar 3 slices of cake etc. Values Variable One form: strain the juices, put aside and let cool …(further instruction)… now add the reserved mix In mathematics much more precisely: Call the sum of all items X. Call the number of items N… divide X by N Lecture 4: Components of Algorithms

7 Restrictions on Variables
CSE1301 Sem Restrictions on Variables Variables may be restricted to contain a specific type of value Lecture 4: Components of Algorithms

8 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)

9 Instructions (Primitives)
Some action that is simple unambiguous that the system knows about... ...and should be able to actually do

10 Instructions – Examples
CSE1301 Sem Instructions – Examples Take off your shoes Count to 10 Cut along dotted line Knit 1 Purl 2 Pull rip-cord firmly Sift 10 grams of arsenic Directions to perform specific actions on values and variables. Lecture 4: Components of Algorithms

11 Instructions -- Application
Some instructions can only be applied to a specific type of values or variables Examples: Chop

12 Instructions (Primitives) -- Recommendations
When writing an algorithm, make each instruction simple and unambiguous Example: Cut chicken into pieces. Heat olive oil in a casserole dish. Brown the chicken pieces in the casserole dish. Cut chicken into pieces and brown the pieces on all sides in a casserole dish in hot olive oil.

13 Instruction (Primitives)
When writing an algorithm, make the instructions simple and unambiguous. Example: A “sequence” of simple instructions Cut chicken into pieces. Heat olive oil in a casserole dish. Brown the chicken pieces in the casserole dish. Cut chicken into pieces and brown the pieces on all sides in a casserole dish in hot olive oil.

14 Sequence A series of instructions
...to be carried out one after the other... ...without hesitation or question Example: How to cook a Gourmet MealTM

15 Sequence -- Example 2. Take out Gourmet Meal™ 3. Close freezer door
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

16 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)

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

18 Procedure -- Example { 1. find car keys 2. disable car 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 ...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 }

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

20 Procedure – Example (cont)
procedure Do_Wednesday { Wake_up Have_Shower Eat_Breakfast Drive_To_Uni Sit_1301_Lecture ...etc...etc...etc... Drive_From_Uni } In this subject, we also use the following words to refer to a “Procedure” : Sub-routine Module Function

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

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

23 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 ( “Ann”, “Morning” ) customerService (“Ann”, “Afternoon” ) customerService ( “Jeff”, “Afternoon” )

24 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)

25 Selection An instruction that decides which of two possible sequences is executed The decision is based on a single true/false condition Examples: Car repair Reciprocals

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

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

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

29 Selection Example -- Car Repair (cont)
CSE1301 Sem Selection Example -- Car Repair (cont) if (motor turns) then { CheckFuel CheckSparkPlugs CheckCarburettor } else CheckDistributor CheckIgnitionCoil Sequence if the condition is false. Lecture 4: Components of Algorithms

30 Selection Example -- Reciprocals
Examples: Reciprocal of 2: /2 Reciprocal of -3/4: /(-3/4) = -4/3 Reciprocal of 0: “undefined” Q. Give an algorithm for computing the reciprocal of a number.

31 Selection Example – Reciprocals (cont)
Algorithm: input Num if (Num is not equal 0) then { output 1/Num } else output "infinity" Q. Give an algorithm for computing the reciprocal of a number.

32 Selection Example-- Reciprocals
Algorithm: input Num if (Num is not equal 0) then { output 1/Num } else output "infinity" Num is a variable whose value depends on the actual number the user provides.

33 Selection Example – Reciprocals (cont)
Algorithm: input Num if (Num is not equal 0) then { output 1/Num } else output "infinity" Condition depends on the value of Num

34 Selection Example – Reciprocals (cont)
Algorithm: input Num if (Num is not equal 0) then { output 1/Num } else output "infinity" For a given value of Num, only one of these two sequences can be executed

35 Selection Example – Reciprocals (cont)
Algorithm: input Num if (Num is not equal 0) then { output 1/Num } else output "infinity" Executed if Num is not equal to 0

36 Selection Example – Reciprocals (cont)
Algorithm: input Num if (Num is not equal 0) then { output 1/Num } else output "infinity" Executed if Num is equal to 0

37 Selection -- Exercise Algorithm 1: Algorithm 2:
Will the following algorithms produce the same output? Algorithm 1: Algorithm 2: input Num if (Num is not equal 0) then { output 1/Num } else output "infinity" input Num if (Num is not equal 0) then { output 1/Num } output "infinity"

38 Selection – Several Conditions
What if several conditions need to be satisfied? if ( today is Wednesday and the time is 10.00am ) then { Go to CSE1301 Lecture } else Go to Library Solution 1

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

40 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 }

41 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)

42 Repetition Repeat an instruction...
CSE1301 Sem 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 iteration or loop Example: Algorithm for getting a date Lecture 4: Components of Algorithms

43 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 zero while (reply is "No" and begging count < 100) { Say("Oh please!") add 1 to begging count ListenToReply ( ) } }

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 zero while ( reply is "No" and begging count < 100 ) { Say("Oh please!") add 1 to begging count ListenToReply ( ) } Condition is tested before sequence

45 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 zero while (reply is "No" and begging count < 100) { Say("Oh please!") add 1 to begging count ListenToReply ( ) } } Sequence may not get executed at all

46 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 zero while (reply is "No" and begging count < 100) { Say("Oh please!") add 1 to begging count ListenToReply ( ) }

47 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 zero while (reply is "No" and begging count < 100) { Say("Oh please!") add 1 to begging count ListenToReply ( ) } Ensure the variables used in the conditions are updated in each iteration

48 Repetition – Example (cont)
CSE1301 Sem 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 zero while (reply is "No" and begging count < 100) { Say("Oh please!") } Infinite loop Lecture 4: Components of Algorithms

49 Repetition – Variation
CSE1301 Sem 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 Lecture 4: Components of Algorithms

50 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)

51 Documentation Records what the algorithm does Describes how it does it
Explains the purpose of each component of the algorithm Notes restrictions or expectations Example: Getting a date (again)

52 Documentation -- Example
Think of something romantic to do decide on time and location Work through address book to look for a person initialise booking to “unsuccessful” until (successfully booked) { get next Name in little black book AskOnDate(Name, Time, Location) DetermineBookingSuccess } Assumes that I will find someone in the book before it runs out SighWithRelief

53 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)

54 The Software Development Process
Define the problem clearly Analyse the problem thoroughly Design an algorithm carefully Code the algorithm efficiently Test the code thoroughly Document the system lucidly

55 Top-down Algorithm Design
CSE1301 Sem Top-down Algorithm Design Write down what you have to do Break that into 3-7 smaller steps Break each step into 3-7 smaller steps Keeping subdividing until each individual step is easy enough to do – i.e., until it is a single instruction Example: Learning Lecture 4: Components of Algorithms

56 Top-down Design -- Example
Read lecture notes Read textbook Read exercise Design algorithm Code solution Test and document Record insights Read Make notes Prepare questions Attend lecture Listen and think Complete prac Attend tute Record answers to questions Revise notes Prepare Study Reinforce Learn

57 Reading Deitel & Deitel, C: How to program
Chapter 3, Sections 3.8 to 3.13


Download ppt "DCP2073 Asas Pengaturcaraan C Lecture 3: Components of an Algorithm"

Similar presentations


Ads by Google