Upcoming SlideShare
×

# 8.2 approach in problem solving (9 hour)

1,817 views

Published on

Published in: Education, Technology
3 Likes
Statistics
Notes
• Full Name
Comment goes here.

Are you sure you want to Yes No
• Be the first to comment

Views
Total views
1,817
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
48
0
Likes
3
Embeds 0
No embeds

No notes for slide
• Another name of the method of solution
• Another name of the method of solution
• Pseudocode - a tool programmers use to help them plan an algorithm Flowchart - uses standardized symbols to show the steps the computer needs to take to accomplish the program’s goal
• ### 8.2 approach in problem solving (9 hour)

1. 1. 02/10/12 Programming 8.2 Approach in Problem Solving
2. 2. 02/10/12 • 8.2.1 Input Process Output (IPO) Analysis Approach in Problem Solving
3. 3. 02/10/12 Learning Outcome • Identify input, process and output from a given problem
4. 4. 02/10/12 Input Process Output (IPO) Analysis • The IPO is used to analyze problems and develop algorithms • Used to organize and summarize the results of a problem analysis • It shows where in the solution the processing takes place
5. 5. 02/10/12 Input Process Output (IPO) Analysis Input Processing Output Processing items: Algorithm • It can also be represent using IPO chart
6. 6. 02/10/12 Input Process Output (IPO) Analysis To do the IPO Analysis, start with: 1- Output (Display the results) 2- Input (Read the data) 3- Process (Perform the computation) Input : Process : Output : Identify
7. 7. 02/10/12 • Output should answer the following question: What does the user want to see printed on the printer, displayed on the screen, or stored in a file? Input Process Output (IPO) Analysis
8. 8. 02/10/12 • Input should answer the following question: What information will the computer need to know to print, display, or store the output items? Input Process Output (IPO) Analysis
9. 9. 02/10/12 • Processing item: An intermediate value that the algorithm uses when processing the input into the output Input Process Output (IPO) Analysis
10. 10. 02/10/12 Analyze the Problem • What is it you are trying to accomplish? • What outcome are you trying to arrive at? • List the Inputs and Outputs • Often you work backwards from the Output • List the Outputs, and then figure out what Inputs you need in order to arrive at the Outputs
11. 11. 02/10/12 Example 1 Problem statement: Calculate the area of a rectangle We can summarize the information contained in the problem statement as follows width height Analyze the Problem
12. 12. 02/10/12 Problem Analysis: To do the IPO Analysis, start with: 1 – Output 2 – Input 3 – Process INPUT : PROCESS : OUTPUT : Identify : Analyze the Problem
13. 13. 02/10/12 Problem Analysis: Input: width, height Process: area = width x height Output: area of rectangle Analyze the Problem
14. 14. 02/10/12 Input Processing Output width height Processing items: area = width x height Algorithm : area of rectangle Analyze the Problem The Problem Analysis, can also be represent using IPO (Input, Processing, Output) Chart
15. 15. 02/10/12 Example 2 Problem statement: Find the average of three numbers input by user We can summarize the information contained in the problem statement as follows Analyze the Problem
16. 16. 02/10/12 Problem Analysis: To do the IPO Analysis, start with: 1 – Output 2 – Input 3 – Process INPUT : PROCESS : OUTPUT : Identify : Analyze the Problem
17. 17. 02/10/12 Problem Analysis: Input: number1, number2, number3 Process: average = (number1 + number2 + number3) / 3 Output: average Analyze the Problem
18. 18. 02/10/12 Input Processing Output number1 number2 number3 Processing items: average = (number1 + number2 + number3) / 3 Algorithm : average Analyze the Problem The Problem Analysis, can also be represent using IPO (Input, Processing, Output) Chart
19. 19. 02/10/12 Example 3 Problem statement: Determine the total cost of apples, given the number of kilos of apples purchased and the cost of apples per kilo We can summarize the information contained in the problem statement as follows Analyze the Problem
20. 20. 02/10/12 Problem Analysis: To do the IPO Analysis, start with: 1 – Output 2 – Input 3 – Process INPUT : PROCESS : OUTPUT : Identify : Analyze the Problem
21. 21. 02/10/12 Problem Analysis: Input: Number of kilos of apples Cost of apples per kilo Process: Total cost = Number of kilos of apples × Cost of apples per kilo Output: Total cost of apples Analyze the Problem
22. 22. 02/10/12 Analyze the Problem The Problem Analysis, can also be represent using IPO (Input, Processing, Output) Chart Input Processing Output Number of kilos of apples Cost of apples per kilo Processing items: Total cost = Number of kilos of apples × Cost of apples per kilo Algorithm : Total cost of apples
23. 23. 02/10/12 Summary • Approaches in problem solving • Identify Input Process Output (IPO) from a problem statement What have you learned ?
24. 24. 02/10/12 • 8.2.2 Algorithm • 8.2.3 Pseudocode Approach in Problem Solving
25. 25. 02/10/12 Learning Outcome • Define algorithm • Solve problem using pseudocode
26. 26. 02/10/12 ALGORITHM • The algorithm is the abstract idea of solving a problem. • An algorithm is a step-by-step instructions that will transform the input into the output • It can be represent using pseudocode or flow chart
27. 27. 02/10/12 From Algorithms to Programs Problem C++ Program 1. Problem Analysis 2. Algorithm
28. 28. 02/10/12 Algorithm in everyday’s life • How to make a mug of hot coffee: 1.Start • Boil water • Prepare a mug • Put a tea spoon of coffee & sugar • Pour hot water • Stir • End
29. 29. 02/10/12 ALGORITHM can be described using three control structures (Bohm and Jacopini-1966); • A Sequence o is a series of statements that execute one after another • A Selection – (branch) o statement is used to determine which of two different statements to execute depending on certain conditions • A Looping – (repetition) o statement is used to repeat statements while certain
30. 30. 02/10/12 PLANNING THE ALGORITHM Identify: INPUT : PROCESS : OUTPUT : 2. Transfer to pseudo code or flow chart 3. a. Must start with a start b. Must close with an end 1. Do Problem Analysis
31. 31. 02/10/12 TECHNIQUES TO REPRESENT THE ALGORITHM Pseudocode Flow chart • Artificial, informal language used to develop algorithms • Similar to everyday English • Graphical representation of an algorithm • Special-purpose symbols connected by arrows (flow lines) 1.Pseudocod e 2.Flow Chart
32. 32. 02/10/12 TECHNIQUES TO REPRESENT THE ALGORITHM Calculate the area of a circle Pseudocode Flow chart Start: Input radius Calculate circle area circle area = 3.142 * radius * radius Print the circle area End: 1. Example of Pseudocode & Flow chart radius circle area = 3.142 * radius * radius circle area start end
33. 33. 02/10/12 1. Pseudocode - Pseudocode Format start statement 1 statement 2 end 1 3 2 TECHNIQUES TO REPRESENT THE ALGORITHM
34. 34. 02/10/12 Algorithm Design : Pseudocode Example 1 Problem statement: Calculate the area of a rectangle Remember! 1. Do Problem Analysis 2. Transfer to pseudo code or flow chart
35. 35. 02/10/12 1. Problem Analysis: Input: width, height Process: area = width x height Output: area of rectangle Algorithm Design : Pseudocode
36. 36. 02/10/12 Algorithm Design : Pseudocode start read width and height calculate area area of rectangle = width * height print area of rectangle end 2. Pseudocode
37. 37. 02/10/12 IPO Chart with Pseudocode Input Processing Output width height Processing items: area = width x height Algorithm - Pseudocode: Start Read width and height Calculate area area of rectangle = width * height Print area End area of rectangle
38. 38. 02/10/12 Algorithm Design : Pseudocode Example 2 Problem statement: Find the average of three numbers input by user Remember! 1. Do Problem Analysis 2. Transfer to pseudo code or flow chart
39. 39. 02/10/12 1. Problem Analysis: Input: number1, number2, number3 Process: average = (number1 + number2 + number3) / 3 Output: average Algorithm Design : Pseudocode
40. 40. 02/10/12 Algorithm Design : Pseudocode start input number1, number2, number3 calculate average average = (number1 + number2 + number3) / 3 print average end 2. Pseudocode
41. 41. 02/10/12 IPO Chart with Pseudocode Input Processing Output number1 number2 number3 Processing items: average = (number1 + number2 + number3) / 3 Algorithm - Pseudocode: Start Input number1, number2, number3 Calculate average average = (number1 + number2 + number3) / 3 Print average End average
42. 42. 02/10/12 Algorithm Design : Pseudocode Example 3 Problem statement: Determine the total cost of apples, given the number of kilos of apples purchased and the cost of apples per kilo Remember! 1. Do Problem Analysis 2. Transfer to pseudo code or flow chart
43. 43. 02/10/12 1. Problem Analysis: Input: Number of kilos of apples Cost of apples per kilo Process: Total cost = Number of kilos of apples × Cost of apples per kilo Output: Total cost of apples Algorithm Design : Pseudocode
44. 44. 02/10/12 Algorithm Design : Pseudocode start Read Number of kilos of apples and Cost of apples per kilo Calculate Total cost Total cost = Number of kilos of apples x Cost of apples per kilo Print Total cost of apples end 2. Pseudocode
45. 45. 02/10/12 Input Processing Output Number of kilos of apples Cost of apples per kilo Total cost = Number of kilos of apples × Cost of apples per kilo Algorithm - Pseudocode: Start Read Number of kilos of apples and Cost of apples per kilo Calculate Total Cost Total cost = Number of kilos of apples × Cost of apples per kilo Print Total cost of apples End Total cost of apples IPO Chart with Pseudocode
46. 46. 02/10/12 Summary • Approaches in problem solving • Planning the algorithm • Steps in building pseudocode • Problem solving using pseudocode What have you learned ?
47. 47. 02/10/12 • 8.2.4 Flow Chart Approach in Problem Solving
48. 48. 02/10/12 Learning Outcome • Solve problem using flow chart
49. 49. 02/10/12 2. Flow Chart - Flow Chart Format TECHNIQUES TO REPRESENT THE ALGORITHM Statement 1 Statement 2 The statement refers to any input, output & process involved start end
50. 50. 02/10/12 FLOW CHART - SYMBOLS Graphic Symbol Name Meaning Terminal Symbol (oval) indicates the beginning and end points of an algorithm Process Symbol (rectangle) shows an instruction other than input, output or selection Input-Output Symbol (parallelogram) shows an input or output operation
51. 51. 02/10/12 FLOW CHART - SYMBOLS Graphic Symbol Name Meaning Disk Storage Input-Output Symbol (cylinder) indicates input from or output to disk storage Printer Output Symbol shows hardcopy printer output Selection Symbol (diamond) shows a selection process for two- way selection
52. 52. 02/10/12 FLOW CHART - SYMBOLS Graphic Symbol Name Meaning Flow Lines (arrow) indicates the logical sequence of execution steps in the algorithm Off-Page Connector provides continuation of a logical path on another page On-Page Connector (circle) provides continuation of a logical path at another point in the same page
53. 53. 02/10/12 Algorithm Design : Flow Chart Example 1 Problem statement: Calculate the area of a rectangle Remember! 1. Do Problem Analysis 2. Transfer to pseudo code or flow chart
54. 54. 02/10/12 1. Problem Analysis: Input: width, height Process: area = width x height Output: area of rectangle Algorithm Design : Flow Chart
55. 55. 02/10/12 Algorithm Design : Flow Chart 2. Flow Chart area = width * height width, height area start end
56. 56. 02/10/12 IPO Chart with Flow Chart Input Processing Output width height Processing items: area = width x height Algorithm – Flow Chart: area of rectangle area = width * height width, height area start end
57. 57. 02/10/12 Algorithm Design : Flow Chart Example 2 Problem statement: Find the average of three numbers input by user Remember! 1. Do Problem Analysis 2. Transfer to pseudo code or flow chart
58. 58. 02/10/12 1. Problem Analysis: Input: number1, number2, number3 Process: average = (number1 + number2 + number3) / 3 Output: average Algorithm Design : Flow Chart
59. 59. 02/10/12 Algorithm Design : Flow Chart 2. Flow Chart average = (number1 + number2 + number3) / 3 number1, number2, number3 average start end
60. 60. 02/10/12 IPO Chart with Flow Chart Input Processing Output number1 number2 number3 Processing items: average = (num1 + num2 + num3) / 3 Algorithm – Flow Chart: average average = (number1 + number2 + number3) / 3 number1, number2, number3 average start end
61. 61. 02/10/12 Algorithm Design : Flow Chart Example 3 Problem statement: Determine the total cost of apples, given the number of kilos of apples purchased and the cost of apples per kilo Remember! 1. Do Problem Analysis 2. Transfer to pseudo code or flow chart
62. 62. 02/10/12 1. Problem Analysis: Input: Number of kilos of apples Cost of apples per kilo Process: Total cost = Number of kilos of apples × Cost of apples per kilo Output: Total cost of apples Algorithm Design : Flow Chart
63. 63. 02/10/12 Algorithm Design : Flow Chart 2. Flow Chart Number of kilos of apples, Cost of apples per kilo Total cost = Number of kilos of apples x Cost of apples per kilo Total cost of apples end start
64. 64. 02/10/12 IPO Chart with Flow Chart Input Processing Output Number of kilos of apples Cost of apples per kilo Total cost = Number of kilos of apples × Cost of apples per kilo Algorithm – Flow Chart: Total cost of apples Number of kilos of apples, Cost of apples per kilo Total cost = Number of kilos of apples x Cost of apples per kilo Total cost of apples end start
65. 65. 02/10/12 Summary • Approaches in problem solving • Steps in building flow chart • Problem solving using flow chart What have you learned ?
66. 66. 02/10/12 Revision • What is IPO analysis? • What is algorithm? • What are the steps in planning your algorithm? • Differentiate between pseudocode and flowchart. What have you learned ?
67. 67. 02/10/12 8.2 Approach in Problem Solving 8.2.5 Control Structure 8.2.5.2 Sequence
68. 68. 02/10/12 8.2.5.1 Sequence Learning Outcome At the end of the lesson, students should be able to : 1. Understand basic problem solving techniques. • Use the sequence structured in problem solving. • Develop flowchart through the process of top-down.
69. 69. 02/10/12 8.2.5.1 Sequence • The simplest programs consist just sequence of statements : • no loops, no selections amongst alternative actions, no use of subroutines.
70. 70. 02/10/12 8.2.5.1 Sequence • Instruction in sequence programming are executed sequentially one by one • The sequence structure directs the computer to process the instructions, one after another, in the order listed in the program. first instruction last instruction.
71. 71. 02/10/12 8.2.5.1 Sequence
72. 72. 02/10/12 8.2.5.1 Sequence • Planning the Algorithm • Record the algorithm using IPO analysis / IPO chart. Problem Analysis: Input: sales Process: bonus = sales * (0.05) Output: bonus
73. 73. 02/10/12 Algorithm Design : Pseudocode start input sales bonus = sales * (0.05) print bonus end Pseudocode -tool programmers use to help them plan an algorithm -consist of short, English-like statements
74. 74. 02/10/12 Algorithm Design : Flow Chart Flow Chart - Use standardized symbols to show the steps the computer need to take to accomplish the program’s goal start bonus = sales * (0.05) end sales bonus
75. 75. 02/10/12 8.2.5.1 Sequence
76. 76. 02/10/12 8.2.5.1 Sequence Problem Analysis: Input: width, length, price of tile Process: area = width * length total of price = area * price of tile Output: total of price • Planning the Algorithm • Record the algorithm using IPO analysis / IPO chart.
77. 77. 02/10/12 Algorithm Design : Pseudocode start input width, length, price of tile area = width * length total price of tile = area * price of tile print total price of tile end Pseudocode -tool programmers use to help them plan an algorithm -consist of short, English-like statements
78. 78. 02/10/12 Algorithm Design : Flow Chart start area = width * length total price of tile = area * price of tile end width length price of tile Total price of tile Flow Chart - Use standardized symbols to show the steps the computer need to take to accomplish the program’s goal
79. 79. 02/10/12 8.2.5.1 Sequence
80. 80. 02/10/12 8.2.5.1 Sequence Problem Analysis: Input: hour Process: Total overtime payment = hour * 5.00 Output: total overtime payment • Planning the Algorithm • Record the algorithm using IPO analysis / IPO chart.
81. 81. 02/10/12 Algorithm Design : Pseudocode start input hour total overtime payment = hour * 5.00 print total overtime payment end Pseudocode -tool programmers use to help them plan an algorithm -consist of short, English-like statements
82. 82. 02/10/12 Algorithm Design : Flow Chart start Total overtime payment = hour * 5.00 end hour Total overtime payment Flow Chart - Use standardized symbols to show the steps the computer need to take to accomplish the program’s goal
83. 83. 02/10/12 Summary • Instruction in sequence programming are executed sequentially one by one • First step in the problem-solving process it to analyze the problem • Planning the algorithm is using IPO analysis / IPO chart • Programmer uses the pseudocode as a guide when coding the algorithm • Flow chart uses standardized symbols to show the steps the computer needs to take to accomplish the program’s goal
84. 84. 02/10/12 8.0 PROGRAMMING 8.2: Approach in Problem Solving 8.2.5: Control Structure 8.2.5.2  Selection
85. 85. 02/10/12 • At the end of this topic, students should be able to: a) explain the purpose of selection control structure. b) apply selection control structure in problem solving. Learning Outcome
86. 86. 02/10/12 Control Structure : Selection SELECTION Analogy You need to choose to make “Coffee O” or “Milk Coffee”
87. 87. 02/10/12 Control Structure : Selection SEQUENC E Control Structures SELECTION LOOPING
88. 88. 02/10/12 What is Selection Structure? • The selection structure allows instructions to be executed non-sequentially. • It allows the comparison of two expressions, and based on the comparison, to select certain course of action. Control Structure : Selection
89. 89. 02/10/12 Control Structure : Selection if-else Types of selection structure nested if-else switch
90. 90. 02/10/12 • If-else structure’s form if (expression) statement_1 else statement_2 Selection  (1) if-else
91. 91. 02/10/12 • In this form, the expression is first evaluated. • If it evaluates to non-zero (TRUE), statement_1 is executed. • Otherwise, statement_2 is executed. • Either statement_1 or statement_2 is executed but not BOTH. Selection  (1) if-else
92. 92. 02/10/12 • Pseudocode format: Selection  (1) if-else start if (expression) statement_1 else statement_2 end
93. 93. 02/10/12 • Flow chart format: Selection  (1) if-else
94. 94. 02/10/12 • Example 1: Print “Excellent!” when user enter marks greater than and equal to 80, else print “Sorry, try again”. Selection  (1) if-else Remember to plan your algorithm! 1.Do IPO Analysis • Transfer to Pseudocode or Flow Chart
95. 95. 02/10/12 • Example 1: Print “Excellent!” when user enter marks greater than and equal to 80, else print “Sorry, try again”. Selection  (1) if-else
96. 96. 02/10/12 IPO Analysis: Input: marks Process: if (marks >= 80) print “Excellent” else print “Sorry, try again” Output: “Excellent!” or “Sorry, try again” Selection  (1) if-else
97. 97. 02/10/12 • Pseudocode Selection  (1) if-else start read marks if (marks >= 80) print “Excellent!” else print “Sorry, try again” end
98. 98. 02/10/12 • Flow chart start end marks “Excellent!” marks >= 80 true “Sorry, try again” false Selection  (1) if-else
99. 99. 02/10/12 • Example 2: A high school poetry competition is open only for students above 15 years old. Display “Eligible” if the students meet the requirement, else display “Not eligible” if otherwise. Selection  (1) if-else
100. 100. 02/10/12 • Example 2: A high school poetry competition is open only for students above 15 years old. Display “Eligible” if the students meet the requirement, else display “Not eligible” if otherwise. Selection  (1) if-else
101. 101. 02/10/12 IPO Analysis: Input: age Process: if (age > 15) print “Eligible” else print “Not eligible” Output: “Eligible” or “Not eligible” Selection  (1) if-else
102. 102. 02/10/12 • Pseudocode Selection  (1) if-else start read age if (age > 15) print “Eligible” else print “Not eligible” end
103. 103. 02/10/12 • Flow chart start end age “Eligible” age > 15 true “Not eligible” false Selection  (1) if-else
104. 104. 02/10/12 • Example 3: If x is greater than y, display “x is bigger than y” else display “x is smaller than y”. Selection  (1) if-else
105. 105. 02/10/12 • Example 3: If x is greater than y, display “x is bigger than y” else display “x is smaller than y”. Selection  (1) if-else
106. 106. 02/10/12 IPO Analysis: Input: x,y Process: if (x > y) print “x is bigger than y” else print “x is smaller than y” Output: “x is bigger than y” OR “x is smaller than y” Selection  (1) if-else
107. 107. 02/10/12 • Pseudocode Selection  (1) if-else start read x,y if (x > y) print “x is bigger than y” else print “x is smaller than y” end
108. 108. 02/10/12 • Flow chart start end x,y “x is bigger than y” x > y true “x is smaller than y” false Selection  (1) if-else
109. 109. 02/10/12 Selection  (2) nested if-else if-else Types of selection structure nested if- else switch
110. 110. 02/10/12 • The if-else structure can also be nested to any depth. Selection  (2) nested if-else
111. 111. 02/10/12 • The nested if-else if structured takes the general form: if (expression_1) statement_1; else if (expression_2) statement_2; else if (expression_3) statement_3; else statement_4; Selection  (2) nested if-else
112. 112. 02/10/12 • In this nested form, expression_1 is evaluated. If it evaluates to non-zero (TRUE), statement_1 is executed. • If not, control goes to the second if, where expression_2 is evaluated. If it evaluates to non-zero (TRUE), statement_2 is executed. • If not, control goes to the third if, where expression_3 is evaluated. If it evaluates to non-zero (TRUE), statement_3 is executed. Selection  (2) nested if-else
113. 113. 02/10/12 • If not, statement_4 is executed. • Rules  Only ONE of the statements is executed. Selection  (2) nested if-else
114. 114. 02/10/12 • Example 1: if student’s grade is greater than or equal to 80 Print “A” else if student’s grade is greater than or equal to 60 Print “B” else if student’s grade is greater than or equal to 50 Print “C” else Print “Failed” Selection  (2) nested if-else
115. 115. 02/10/12 IPO Analysis: Input: grade Process: if (grade >= 80) print “A” else if (grade >= 60) print “B” else if (grade >= 50) print “C” else print “Failed” Output: “A” or “B” or “C” or “Failed” Selection  (2) nested if-else
116. 116. 02/10/12 • Pseudocode Selection  (2) nested if-else start read grade if (grade >= 80) print “A” else if (grade >= 60) print “B” else if (grade >= 50) print “C” else print “Failed” end
117. 117. 02/10/12 • Flow chart Selection  (2) nested if-else start end grade grade >= 80 true “A” false grade >= 60 grade >= 50 “B” “C” false false “Failed” true true
118. 118. 02/10/12 Selection  (2) nested if-else • Example 2: if (x > 0) display "x is positive" else if (x < 0) display "x is negative" else display "x is 0"
119. 119. 02/10/12 Selection  (2) nested if-else IPO Analysis: Input: x Process: if (x > 0) display "x is positive" else if (x < 0) display "x is negative" else display "x is 0“ Output: “x is positive“ or "x is negative“ or “x is 0”
120. 120. 02/10/12 Selection  (2) nested if-else • Pseudo code start read x if (x > 0) display "x is positive" else if (x < 0) display "x is negative" else display "x is 0" end
121. 121. 02/10/12 Selection  (2) nested if-else • Flow chart start end x (x > 0) true "x is positive” false (x < 0) “x is negative” false “x is 0” true
122. 122. 02/10/12 Selection  (3) Switch if-else Types of selection structure nested if-else switch
123. 123. 02/10/12 • Switch case statements are to check several possible constant values for an expression. • Switch form: switch (expression) { case constant1: group of statements1 break case constant2: group of statements2 break . . . default: default group of statements } Selection  (3) Switch
124. 124. 02/10/12 • switch evaluates expression and checks if it is equivalent to constant1, if it is, it executes group of statements1 until it finds the break statement. Selection  (3) Switch
125. 125. 02/10/12 • If expression was not equal to constant1 it will be checked against constant2. If it is equal to this, it will execute statements2. Selection  (3) Switch
126. 126. 02/10/12 • If the value of expression DID NOT match any of the previously specified constants (you can include as many case labels as values you want to check), the program will execute the statements included after the default. Selection  (3) Switch
127. 127. 02/10/12 iv) Selection - switch switch Flow chart
128. 128. 02/10/12 • Example 1: Selection  (3) Switch x Print 1 X is 1 2 X is 2 Other value Value of x unknown
129. 129. 02/10/12 Selection  (3) Switch IPO Analysis: Input: x Process: switch (x) { case 1: print "x is 1“ break case 2: print "x is 2“ break default: Print "value of x unknown” } Output: "x is 1" or "x is 2" or "value of x unknown”
130. 130. 02/10/12 Selection  (3) Switch • Pseudocode start read x switch (x) { case 1: print "x is 1“ break case 2: print "x is 2" break default: print "value of x unknown” } end
131. 131. 02/10/12 b) Flow chart iv) Selection - switch
132. 132. 02/10/12 SUMMARY if-else Types of selection structure nested if- else switch * Use an appropriate selection control structure in problem solving
133. 133. 02/10/12 Topic: 8.2 Approach in Problem Solving 8.2.5: Control Structure 8.2.5.3: Looping
134. 134. 02/10/12 Learning Outcome At the end of this topic, students should be able to: • explain the purpose of looping control structure. • apply looping control structure in problem solving.
135. 135. 02/10/12 What is looping control structure? • The looping (or repetition) structure allows a sequence of instructions to be executed repeatedly until a certain condition is reached. • The looping structure has three forms: o while o do..while o for
136. 136. 02/10/12 The essentials of looping (repetition) • The loop counter (loop control variable ): o Counts the number of repetitions in the counter- controlled loop o Controls the execution of loop • The loop counter requires the following to be known in advance: 1.Name of a loop counter • Initial value of the loop counter • Increment (or decrement) by which to modify the loop counter in each traversal • Condition to test the final value of loop counter
137. 137. 02/10/12 1. The while Construct The looping control structure:
138. 138. 02/10/12 The while Construct • The while construct has the general form: while (expression) statement; • where the expression is first evaluated. • If it is true (not zero), the *statement(s) is executed, • else if it false (zero), the statement is bypassed. * note: statement(s); which can be a block of statements – more than 1 statement
139. 139. 02/10/12 Applying Algorithm in while Construct • Pseudocode start initialize counter while (expression) statement(s) counter increment end 12 4 3 * note: please refer to slide #4 for numbering details
140. 140. 02/10/12 Applying Algorithm in while Construct • Flow Chart start initialize counter while (expression) statement(s) True counter increment False end
141. 141. 02/10/12 The Counter Table for while Construct counter expression input process output counter increment initial value of counter condition to test IPO analysis increment to modify the loop i i <= 3 input process output i = i + 1 xample of while counter table:
142. 142. 02/10/12 Example 1: while Construct • Problem Statement: o Calculate the area of a rectangle for 3 times. • Remember to plan your algorithm. o Do Problem Analysis. o Transfer to Pseudocode or Flow Chart. width height
143. 143. 02/10/12 i i <= 3 width,height area = width * height area i = i + 1 while counter table Example 1: while Construct Problem Analysis: Input: width, height Process: area = width * height Output: area
144. 144. 02/10/12 i i <= 3 width,height area = width * height area i = i + 1 1 T 2 2 T 3 3 T 4 4 F Loop terminate while counter table Example 1: while Construct Problem Analysis: Input: width, height Process: area = width * height Output: area
145. 145. 02/10/12 • Pseudocode Example 1: while Construct start 1. initialize counter i = 1 2. while (i <= 3) 3. input width, height 4. calculate area of rectangle area = width * height 5. print area 6. counter increment i = i + 1 7. repeat until i > 3 end IPO analysis initial value of counter condition to test increment to modify the loop Repeat step 2 – 6 until expression is false
146. 146. 02/10/12 • Flow Chart Example 1: while Construct start i = 1 (i <= 3) width, height True i = i + 1 False end area = width * height area
147. 147. 02/10/12 2. The do..while Construct The looping control structure:
148. 148. 02/10/12 The do..while Construct • The do..while construct has the general form: do statement while (expression); • where the expression is last evaluated, after the statement(s) is executed. • This means the statement(s) in the do..while will be executed at least once.
149. 149. 02/10/12 Applying Algorithm in do..while Construct • Pseudocode start initialize counter do statement(s) counter increment while (expression) end 12 4 3 * note: please refer to slide #4 for numbering details
150. 150. 02/10/12 Applying Algorithm in do..while Construct • Flow Chart start initialize counter while (expression) statement(s) True counter increment False end
151. 151. 02/10/12 The Counter Table for do..while Construct counter input process output counter increment expression initial value of counter condition to test IPO analysis increment to modify the loop i input process output i = i + 1 i <= 3 ample of do..while counter table:
152. 152. 02/10/12 Example 2: do..while Construct • Problem Statement: o Calculate the area of a rectangle for 3 times. • Remember to plan your algorithm. o Do Problem Analysis. o Transfer to Pseudocode or Flow Chart. width height
153. 153. 02/10/12 i width,height area = width * height area i = i + 1 i <= 3 do..while counter table Example 2: do..while Construct Problem Analysis: Input: width, height Process: area = width * height Output: area
154. 154. 02/10/12 i width,height area = width * height area i = i + 1 i <= 3 1 2 T 2 3 T 3 4 F Loop terminate do..while counter table Example 2: do..while Construct Problem Analysis: Input: width, height Process: area = width * height Output: area
155. 155. 02/10/12 • Pseudocode Example 2: do..while Construct start 1. initialize counter i = 1 2. do 3. input width, height 4. calculate area of rectangle area = width * height 5. print area 6. counter increment i = i + 1 7. repeat while (i <= 3) end IPO analysis initial value of counter condition to test increment to modify the loop
156. 156. 02/10/12 • Flow Chart Example 2: do..while Construct start i = 1 (i <= 3) width, height True i = i + 1 False end area = width * height area
157. 157. 02/10/12 3. The for Construct The looping control structure:
158. 158. 02/10/12 The for Construct • The for construct has the general form: for (initialization; expression; incrementation) statement; • where the initialization refers to the initial value of a loop counter. • the expression determines whether the loop should be continued; if it is true (not zero), the *statement(s) is executed, else if it false (zero), the for loop is terminated. • The incrementation increments the loop counter. * note: statement(s); which can be a block of statements – more than 1 statement
159. 159. 02/10/12 Applying Algorithm in for Construct • Pseudocode start for (initialize counter; expression; counter increment) statement(s); end 2 * note: please refer to slide #4 for numbering details 1 4 3
160. 160. 02/10/12 The for loop is executed as follows: start for (initialize counter; expression; counter increment) statement(s); end o After one-time initialization, the expression is first evaluated. o If it is false, the for loop is terminated; if it is true the statement(s) in the loop is executed. o And then the incrementation is performed. o The expression condition is again evaluated, until the expression becomes false.
161. 161. 02/10/12 Applying Algorithm in for Construct • Flow Chart start initialize counter (expression) statement(s) True counter increment False end
162. 162. 02/10/12 The Counter Table for for Construct counter expression input process output counter increment initial value of counter condition to test IPO analysis increment to modify the loop i i <= 3 input process output i = i + 1 xample of for counter table:
163. 163. 02/10/12 Example 3: for Construct • Problem Statement: o Calculate the area of a rectangle for 3 times. • Remember to plan your algorithm. o Do Problem Analysis. o Transfer to Pseudocode or Flow Chart. width height
164. 164. 02/10/12 i i <= 3 width,height area = width * height area i = i + 1 for counter table Example 3: for Construct Problem Analysis: Input: width, height Process: area = width * height Output: area
165. 165. 02/10/12 i i <= 3 width,height area = width * height area i = i + 1 1 T 2 2 T 3 3 T 4 4 F Loop terminate for counter table Example 3: for Construct Problem Analysis: Input: width, height Process: area = width * height Output: area
166. 166. 02/10/12 • Pseudocode Example 3: for Construct start 1. initialize counter i = 1 2. for (i <= 3) 3. read width, height 4. calculate area of rectangle area = width * height 5. print area 6. counter increment i = i + 1 7. repeat until i > 3 end IPO analysis initial value of counter condition to test increment to modify the loop Repeat step 3 – 7 until expression is false
167. 167. 02/10/12 • Flow Chart Example 3: for Construct start i = 1 (i <= 3) width, height True i = i + 1 False end area = width * height area
168. 168. 02/10/12 Accumulating in Problem Solving • Accumulating or summing is a task a program must often perform. • Accumulating means summing a group of numbers: 1.where a variable is added to another variable, • which holds the value of the sum or total. • The expression for accumulating is as follow: sum = sum + num total = total + marks 2 1 2 1
169. 169. 02/10/12 How to apply Accumulating in Problem Solving? Example 4: Accumulating in Sequence Structure • Problem Statement: o Calculate the average of three numbers. Problem Analysis: Input: num1, num2, num3 Process: total = num1 + num2 + num3 average = total / 3 or average = (num1 + num2 + num3) / 3 Output: average Accumulating
170. 170. 02/10/12 How to apply Accumulating in Looping? Example 5: Accumulating in Looping Structure • Problem Statement: o Calculate the average of three numbers. Problem Analysis: Input: num Process: total = total + num average = total / 3 Output: average Accumulating
171. 171. 02/10/12 Example 5: Accumulating in Looping Structure Problem Analysis: Input: num Process: total = total + num average = total / 3 Output: average total i i <= 3 num total = total + num i = i + 1 average = total / 3 average 0 1 T 70 70 2 2 T 80 150 3 3 T 90 240 4 4 F Loop terminate average = 240 / 3 80 Using accumulating in while construct (while counter table)
172. 172. 02/10/12 Pseudocode for Accumulating in while Construct: start 1. initialize total total = 0 2. initialize counter i = 1 3. while (i <= 3) 4. input num 5. accumulate total total = total + num 6. counter increment i = i + 1 7. repeat until i > 3 8. calculate average average = total / 3 9. print average end IPO analysis initial value of counter condition to test increment to modify the loop Repeat step 3 – 6 until expression is false initial value of total IPO analysis
173. 173. 02/10/12 Flow Chart for Accumulating in while Construct: start i = 1 (i <= 3) num True False end total = total + num i = i + 1 total = 0 average = total / 3 average
174. 174. 02/10/12 Summary • What have you learned? o The three forms of looping control structure: while do..while for o The loop counter requirement. o Apply looping control structure in problem solving. Remember to plan your algorithm. Do Problem Analysis. Transfer to Pseudocode or Flow Chart. o Applying accumulating in looping.