Presentation is loading. Please wait.

Presentation is loading. Please wait.

Foundation of programming Week 3. Last week ‘How to think like a programmer’ The HTTLAP 6 step approach: Understand the problem – Devise a plan to solve.

Similar presentations


Presentation on theme: "Foundation of programming Week 3. Last week ‘How to think like a programmer’ The HTTLAP 6 step approach: Understand the problem – Devise a plan to solve."— Presentation transcript:

1 Foundation of programming Week 3

2 Last week ‘How to think like a programmer’ The HTTLAP 6 step approach: Understand the problem – Devise a plan to solve it – Carry out the plan – Assess the result – Reflect on what you have learned – Document the solution Descriptive languages Pseudo Code

3 Lecture Outlines Program design methods – Top down – Bottom up – Data-structure approaches – Data-flow approaches Logic structures – Sequential – Conditional IF Switch Loops (iterations) More on pseudo-code

4 Reading Chapter 5 and 6 (HTTP) EXERCISES Chapter 5 exercises 1 TO 10, pages 127 to 129 Chapter 6 exercises 1 to 14, pages 162 to 166

5 Top down design

6 Bottom up design

7 Data flow approaches Data movement and transformation Top down flow of data Activity, in pairs: – Think about the oyster card – What is the data? – Where does it flow from+to? – How is it transformed? – Try to draw a diagram of this

8 The four logic structures Sequential – flows straight down Decision – the flow splits into two Loop – the flow repeats a section Case – the flow splits into many streams

9 Example data frlow x = 10; y =4; sum = x+y; subtract = x-y; product = x*y; X=10 y=4 sum=x+y subtract=x-y product=x*y

10 The sequential logic structure 1 2

11 Decision logic structure Yes No 12 IF(cond=TRUE) THEN instruction1 ELSE instruction2 ENDIF

12 Loop logic structure cond body program yes No 1 2 WHILE(cond=TRUE) DO {instruction1 ; instruction2} ENDWHILE

13 The case logic structure

14 switch x { x== condition1 instruction1 x== condition 2 instruction 2 x== condition 3 instruction 3 x== condition 4 instruction 4 }

15 Discussion which logic will you use? Which logic did you use in your solutions to the following problems? 1.Use a filter coffee machine to make a cup of coffee 2.Hang a picture on the wall 3.Drive a train

16 Making a cup of coffee 1.Put water in coffee machine; 2.Open coffee holder; 3.Put filter paper in machine; 4.Measure coffee for one cup; 5.Put coffee into filter paper; 6.Shut the coffee holder; 7.Turn machine on; 8.Wait for coffee to filter through; 9.Pour coffee into mug; 10.Turn off the machine;

17 Analyse our solution Is sugar needed? If (yes) how much? White coffee? If yes add milk?

18 Make a cup of coffee modified 1.Put water in coffee machine; 2.Open coffee holder; 3.Put filter paper in machine; 4.Measure coffee for one cup; 5.Put coffee into filter paper; 6.Shut the coffee holder; 7.Turn the machine on; 8.Wait for coffee to filter through; 9.Find out how many sugars required; 10.WHILE(sugar added not equal to sugar required) 11. DO 11.1 add one spoon of sugar 11.2 add 1 spoon 12. ENDWHILE 13.IF (white coffee required) 13.1 add milk/cream 14. ENDIF 15.Pour coffee into mug 16.Stir coffee 17.Turn machine off

19 Making 6 cups of coffee 1.Put water in coffee machine; change to water for 6 cups 2.Open coffee holder; 3.Put filter paper in machine; 4.Measure coffee for one cup; coffee for 6 cups 5.Put coffee into filter paper; 6.Shut the coffee holder; 7.Turn the machine on; 8.Wait for coffee to filter through; 9.Find out how many sugars required; 10.Find out weather milk required 11.WHILE(sugar added not equal to sugar required) 12. DO 12.1 add one spoon of sugar 12.2 add 1 spoon 13. ENDWHILE 14.IF (white coffee required) 14.1 add milk/cream 15. ENDIF 16.Pour coffee into mug 17.Stir coffee 18.Turn machine off Repeated actions

20 Making a 6 cups of coffee 1.Put waterF for 6 cups in coffee machine 2.Open coffee holder; 3.Put filter paper in machine; 4.Measure coffee for 6 cup; 5.Put coffee into filter paper; 6.Shut the coffee holder; 7.Turn the machine on; 8.Wait for coffee to filter through; 10.While(cups poured not equal to 6) 11.Do 1.Find out how many sugars required; 2.Find out weather milk required 3.WHILE(sugar added not equal to sugar required) 4. DO 12.1 add one spoon of sugar 12.2 add 1 spoon 5. ENDWHILE 6.IF (white coffee required) 14.1 add milk/cream 7. ENDIF 8.Pour coffee into mug 9.Stir coffee 10.Add 1 to the number of cups poured 12.ENDWHILE 13.Turn machine off

21 Making a pot of coffee 1.Find out how many cups required 2.Put waterF for number cups required n coffee machine 3.Open coffee holder; 4.Put filter paper in machine; 5.Measure coffee for cups required 6.Put coffee into filter paper; 7.Shut the coffee holder; 8.Turn the machine on; 9.Wait for coffee to filter through; 10.While( cups poured not equal to cups required ) 11.Do 1.Find out how many sugars required; 2.Find out weather milk required 3.WHILE(sugar added not equal to sugar required) 4. DO 12.1 add one spoon of sugar 12.2 add 1 spoon 5. ENDWHILE 6.IF (white coffee required) 14.1 add milk/cream 7. ENDIF 8.Pour coffee into mug 9.Stir coffee 10.Add 1 to the number of cups 12.ENDWHILE 13.Turn machine off

22 Limit the cups required to six 1.Find out how many cups required 2.IF(more than zero cups required) 1.IF (more than six cup wanted) 1.Limit cupsrequired to six; 2.ENDIF 3.Put waterF for number cups required n coffee machine 4.Open coffee holder; 5.Put filter paper in machine; 6.Measure coffee for cups required 7.Put coffee into filter paper; 8.Shut the coffee holder; 9.Turn the machine on; 10.Wait for coffee to filter through; 11.While( cups poured not equal to cups required ) 12.Do 1.Find out how many sugars required; 2.Find out weather milk required 3.WHILE(sugar added not equal to sugar required) 4. DO 12.1 add one spoon of sugar 12.2 add 1 spoon 5. ENDWHILE 6.IF (white coffee required) 14.1 add milk/cream 7. ENDIF 8.Pour coffee into mug 9.Stir coffee 10.Add 1 to the number of cups 13.ENDWHILE 14.Turn machine off 15.ENDIF

23 EXERCISE Write a pseudo code for a program to work out the final grade. (Mark >= 80) grade = ‘A’ (70<=Mark<80) grade = ‘B’ (60<=Mark <70) grade= ‘C’ (50<=Mark<60) grade ‘D’ (40<=Mark<50) grade ‘E’ (Mark<40) grade =‘F’

24 Solution Nested IFs IF (Mark>=80) – grade < -- ‘A’; ELSE IF (Mark>=70) – grade < -- ‘B’; ELSE IF (Mark>=60) – grade < -- ‘C’; ELSE IF (Mark>=50) – grade < -- ‘D’; ELSE IF (Mark>=40) – grade < -- ‘E’; ELSE – grade < -- ‘F’; ENDIF

25 Exercise2 1)Write a pseudo code program which allow the user to enter the monthly rain full and add it the total rainfall for the year. 2)Change your program to work out the average rainfall for the previous year 3)Add the average rainfall sofar (the year has not finished yet)

26 Solution: totalRainfall < --- 0; onth < --- 1; WHILE(month <= 12) – Display ‘please enter the month’s rain fall’; – Get monthRainfall; – totalRainfall < --- totalRainfall + monthRainfall; – month < -- month +1; ENDWHILE;

27 Solution: totalRainfall < --- 0; month < --- 1; WHILE(month <= 12) – Display ‘please enter the month’s rain fall’; – Get monthRainfall – totalRainfall < --- totalRainfall + monthRainfall; – month < -- month +1; ENDWHILE AverageRainfall = totalRainfall /12

28 Solution (3) totalRainfall < --- 0; Get currentMonth month < --- 1; WHILE(month <= currentmonth) – Display ‘please enter the month’s rain fall’; – Get monthRainfall – totalRainfall < --- totalRainfall + monthRainfall; – month < -- month +1; ENDWHILE AverageRainfallsofar = totalRainfallsofar /currenthmonth; (assuming last minute of the month)

29 Exercise Write a pseudo-code program that allows the user the to enter the ages all students on the class and work out the average age. The user enters 0 when all ages are entered.

30 Solution is this correct? 1.Display ‘please enter an age ( 0 to finish); 2.Get value of age; 3.WHILE(age notequal 0) 1.totalAge < -- totalAge + age; 2.numberOfAges < -- numberOfAges + 1; 3.Get value of age; 4.ENDWHILE 5.If(numberOfAges >0) 1.averageAge < -- totalAge / numberOfAges; 2.Display averageAge; 6.ENDIF

31 Solution add initialisation 1.totalAge < -- 0; // intialise totalAge to zero 2.numberOfAges < -- 0; // initialise numberOfAges to zero 3.Display ‘please enter an age ( 0 to finish); 4.Get value of age; 5.WHILE(age notequal 0) 1.totalAge < -- totalAge + age; 2.numberOfAges < -- numberOfAges + 1; 3.Get value of age; 6.ENDWHILE 7.If(numberOfAges >0) 1.averageAge < -- totalAge / numberOfAges; 2.Display averageAge; 8.ENDIF


Download ppt "Foundation of programming Week 3. Last week ‘How to think like a programmer’ The HTTLAP 6 step approach: Understand the problem – Devise a plan to solve."

Similar presentations


Ads by Google