8.2 approach in problem solving (9 hour)
DESCRIPTION
TRANSCRIPT
02/10/12
Programming
8.2 Approach in Problem Solving
02/10/12
• 8.2.1 Input Process Output (IPO) Analysis
Approach in Problem Solving
02/10/12
Learning Outcome
• Identify input, process and output from a given problem
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
02/10/12
Input Process Output (IPO) Analysis
Input Processing OutputProcessing items:
Algorithm
• It can also be represent using IPO chart
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
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
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
02/10/12
• Processing item: An intermediate value that the
algorithm uses when processing the input into the output
Input Process Output (IPO) Analysis
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
02/10/12
Example 1Problem statement:
Calculate the area of a rectangleWe can summarize the information contained in the problem statement as follows
width
height
Analyze the Problem
02/10/12
Problem Analysis:
To do the IPO Analysis, start with:1 – Output2 – Input3 – Process
INPUT :PROCESS :OUTPUT :
Identify :
Analyze the Problem
02/10/12
Problem Analysis:
Input: width, height
Process: area = width x height
Output: area of rectangle
Analyze the Problem
02/10/12
Input Processing Output
widthheight
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
02/10/12
Example 2Problem statement:
Find the average of three numbers input by userWe can summarize the information contained in the problem statement as follows
Analyze the Problem
02/10/12
Problem Analysis:
To do the IPO Analysis, start with:1 – Output2 – Input3 – Process
INPUT :PROCESS :OUTPUT :
Identify :
Analyze the Problem
02/10/12
Problem Analysis:
Input: number1, number2, number3
Process: average = (number1 + number2 + number3) / 3
Output: average
Analyze the Problem
02/10/12
Input Processing Output
number1number2number3
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
02/10/12
Example 3Problem 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
02/10/12
Problem Analysis:
To do the IPO Analysis, start with:1 – Output2 – Input3 – Process
INPUT :PROCESS :OUTPUT :
Identify :
Analyze the Problem
02/10/12
Problem Analysis:
Input: Number of kilos of applesCost of apples per kiloProcess: Total cost = Number of kilos of apples × Cost of apples per kiloOutput: Total cost of apples
Analyze the Problem
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 applesCost of apples per kilo
Processing items:Total cost = Number of kilos of apples × Cost of apples per kilo
Algorithm :
Total cost of apples
02/10/12
Summary
• Approaches in problem solving• Identify Input Process Output (IPO) from a
problem statement
What have you learned ?
02/10/12
• 8.2.2 Algorithm• 8.2.3 Pseudocode
Approach in Problem Solving
02/10/12
Learning Outcome
• Define algorithm
• Solve problem using pseudocode
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
02/10/12
From Algorithms to Programs
Problem
C++ Program
1. Problem Analysis2. Algorithm
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
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
conditions are met
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
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.Pseudocode
2.Flow Chart
02/10/12
TECHNIQUES TO REPRESENT THE ALGORITHM
Calculate the area of a circle
Pseudocode Flow chartStart:Input radiusCalculate circle areacircle area = 3.142 * radius * radiusPrint the circle areaEnd:
1. Example of Pseudocode & Flow chart
radius
circle area = 3.142 * radius * radius
circle area
start
end
02/10/12
1. Pseudocode- Pseudocode Format
start statement 1
statement 2end
1
3
2
TECHNIQUES TO REPRESENT THE ALGORITHM
02/10/12
Algorithm Design : Pseudocode
Example 1
Problem statement:Calculate the area of a rectangle
Remember!1. Do Problem Analysis2. Transfer to pseudo code or flow chart
02/10/12
1. Problem Analysis:
Input: width, height
Process: area = width x height
Output: area of rectangle
Algorithm Design : Pseudocode
02/10/12
Algorithm Design : Pseudocode
startread width and heightcalculate area area of rectangle = width * heightprint area of rectangleend
2. Pseudocode
02/10/12
IPO Chart with PseudocodeInput Processing Output
widthheight
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
02/10/12
Algorithm Design : Pseudocode
Example 2
Problem statement:Find the average of three numbers input by userRemember!1. Do Problem Analysis2. Transfer to pseudo code or flow chart
02/10/12
1. Problem Analysis:
Input: number1, number2, number3
Process: average = (number1 + number2 + number3) / 3
Output: average
Algorithm Design : Pseudocode
02/10/12
Algorithm Design : Pseudocode
startinput number1, number2, number3calculate average average = (number1 + number2 + number3) / 3 print averageend
2. Pseudocode
02/10/12
IPO Chart with PseudocodeInput Processing Output
number1number2number3
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
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 kiloRemember!1. Do Problem Analysis2. Transfer to pseudo code or flow chart
02/10/12
1. Problem Analysis:
Input: Number of kilos of applesCost of apples per kiloProcess: Total cost = Number of kilos of apples × Cost of apples per kiloOutput: Total cost of apples
Algorithm Design : Pseudocode
02/10/12
Algorithm Design : Pseudocode
startRead Number of kilos of apples and Cost of apples per kiloCalculate Total cost Total cost = Number of kilos of apples x Cost of apples per kilo
Print Total cost of applesend
2. Pseudocode
02/10/12
Input Processing Output
Number of kilos of applesCost 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 andCost of apples per kilo
Calculate Total CostTotal 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
02/10/12
Summary
• Approaches in problem solving• Planning the algorithm• Steps in building pseudocode• Problem solving using pseudocode
What have you learned ?
02/10/12
• 8.2.4 Flow Chart
Approach in Problem Solving
02/10/12
Learning Outcome
• Solve problem using flow chart
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
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
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
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
02/10/12
Algorithm Design : Flow Chart
Example 1
Problem statement:Calculate the area of a rectangle
Remember!1. Do Problem Analysis2. Transfer to pseudo code or flow chart
02/10/12
1. Problem Analysis:
Input: width, height
Process: area = width x height
Output: area of rectangle
Algorithm Design : Flow Chart
02/10/12
Algorithm Design : Flow Chart
2. Flow Chart
area = width * height
width, height
area
start
end
02/10/12
IPO Chart with Flow ChartInput Processing Output
widthheight
Processing items:area = width x height
Algorithm – Flow Chart:
area of rectangle
area = width * height
width, height
area
start
end
02/10/12
Algorithm Design : Flow Chart
Example 2
Problem statement:Find the average of three numbers input by userRemember!1. Do Problem Analysis2. Transfer to pseudo code or flow chart
02/10/12
1. Problem Analysis:
Input: number1, number2, number3
Process: average = (number1 + number2 + number3) / 3
Output: average
Algorithm Design : Flow Chart
02/10/12
Algorithm Design : Flow Chart
2. Flow Chart
average = (number1 + number2 + number3) / 3
number1, number2, number3
average
start
end
02/10/12
IPO Chart with Flow ChartInput Processing Output
number1number2number3
Processing items:average = (num1 + num2 + num3) / 3
Algorithm – Flow Chart:
average
average = (number1 + number2 + number3) / 3
number1, number2, number3
average
start
end
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 kiloRemember!1. Do Problem Analysis2. Transfer to pseudo code or flow chart
02/10/12
1. Problem Analysis:
Input: Number of kilos of applesCost of apples per kiloProcess: Total cost = Number of kilos of apples × Cost of apples per kiloOutput: Total cost of apples
Algorithm Design : Flow Chart
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
02/10/12
IPO Chart with Flow ChartInput Processing Output
Number of kilos of applesCost of apples per kilo
Total cost = Number of kilos of apples × Cost of apples per kiloAlgorithm – 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
02/10/12
Summary
• Approaches in problem solving• Steps in building flow chart• Problem solving using flow chart
What have you learned ?
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 ?
02/10/12
8.2 Approach in Problem Solving8.2.5 Control Structure8.2.5.2 Sequence
02/10/12
8.2.5.1 Sequence
Learning Outcome
At the end of the lesson, students should be ableto :1. Understand basic problem solving techniques.• Use the sequence structured in problem solving.• Develop flowchart through the process of top-down.
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.
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.
02/10/12
8.2.5.1 Sequence
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
02/10/12
Algorithm Design : Pseudocode
startinput salesbonus = sales * (0.05) print bonusend
Pseudocode-tool programmers use to help them plan an algorithm-consist of short, English-like statements
02/10/12
Algorithm Design : Flow ChartFlow 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
02/10/12
8.2.5.1 Sequence
02/10/12
8.2.5.1 Sequence
Problem Analysis:
Input: width, length, price of tile
Process: area = width * lengthtotal of price = area * price of tile
Output: total of price
• Planning the Algorithm• Record the algorithm using IPO analysis / IPO
chart.
02/10/12
Algorithm Design : Pseudocode
startinput width, length, price of tile area = width * lengthtotal price of tile = area * price of tile print total price of tileend
Pseudocode-tool programmers use to help them plan an algorithm-consist of short, English-like statements
02/10/12
Algorithm Design : Flow Chart
start
area = width * lengthtotal price of tile = area * price of
tile
end
widthlength
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
02/10/12
8.2.5.1 Sequence
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.
02/10/12
Algorithm Design : Pseudocode
startinput hourtotal overtime payment = hour * 5.00print total overtime paymentend
Pseudocode-tool programmers use to help them plan an algorithm-consist of short, English-like statements
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
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
02/10/12
8.0PROGRAMMING
8.2: Approach in Problem Solving8.2.5: Control Structure8.2.5.2 Selection
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
02/10/12
Control Structure : Selection
SELECTION AnalogyYou need to choose to make “Coffee O” or
“Milk Coffee”
02/10/12
Control Structure : Selection
SEQUENCE
Control Structures
SELECTION LOOPING
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
02/10/12
Control Structure : Selection
if-else
Types of selection structure
nested if-else switch
02/10/12
• If-else structure’s form
if (expression)statement_1elsestatement_2
Selection (1) if-else
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
02/10/12
• Pseudocode format:
Selection (1) if-else
start if (expression)
statement_1 else statement_2
end
02/10/12
• Flow chart format:
Selection (1) if-else
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
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
02/10/12
IPO Analysis:
Input: marks
Process: if (marks >= 80)print “Excellent” elseprint “Sorry, try again”
Output: “Excellent!” or “Sorry, try again”
Selection (1) if-else
02/10/12
• Pseudocode
Selection (1) if-else
startread marksif (marks >= 80)print “Excellent!”elseprint “Sorry, try again”end
02/10/12
• Flow chartstart
end
marks
“Excellent!”
marks >= 80
true “Sorry, try again”
false
Selection (1) if-else
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
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
02/10/12
IPO Analysis:
Input: age
Process: if (age > 15)print “Eligible” elseprint “Not eligible”
Output: “Eligible” or “Not eligible”
Selection (1) if-else
02/10/12
• Pseudocode
Selection (1) if-else
startread ageif (age > 15)print “Eligible”elseprint “Not eligible”end
02/10/12
• Flow chartstart
end
age
“Eligible”
age > 15
true “Not eligible”
false
Selection (1) if-else
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
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
02/10/12
IPO Analysis:
Input: x,y
Process: if (x > y)print “x is bigger than y” elseprint “x is smaller than y”
Output: “x is bigger than y” OR “x is smaller than y”
Selection (1) if-else
02/10/12
• Pseudocode
Selection (1) if-else
startread x,yif (x > y)print “x is bigger than y”elseprint “x is smaller than y”end
02/10/12
• Flow chartstart
end
x,y
“x is bigger than y”
x > y
true “x is smaller than y”
false
Selection (1) if-else
02/10/12
Selection (2) nested if-else
if-else
Types of selection structure
nested if-else
switch
02/10/12
• The if-else structure can also be nested to any depth.
Selection (2) nested if-else
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
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
02/10/12
• If not, statement_4 is executed.• Rules Only ONE of the statements is
executed.
Selection (2) nested if-else
02/10/12
• Example 1:
if student’s grade is greater than or equal to 80Print “A”
else if student’s grade is greater than or equal to 60Print “B”else if student’s grade is greater than or equal to 50 Print “C”else Print “Failed”
Selection (2) nested if-else
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”elseprint “Failed”
Output: “A” or “B” or “C” or “Failed”
Selection (2) nested if-else
02/10/12
• Pseudocode
Selection (2) nested if-else
startread gradeif (grade >= 80)print “A” else if (grade >= 60)print “B”else if (grade >= 50)print “C”elseprint “Failed”end
02/10/12
• Flow chart
Selection (2) nested if-else
start
end
grade
grade >= 80true
“A”
falsegrade >= 60
grade >= 50
“B”
“C”false
false“Failed”
true
true
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"
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”
02/10/12
Selection (2) nested if-else
• Pseudo code
startread xif (x > 0) display "x is positive" else if (x < 0) display "x is negative" else display "x is 0"
end
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
02/10/12
Selection (3) Switch
if-else
Types of selection structure
nested if-else switch
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
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
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
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
02/10/12
iv) Selection - switch
switch Flow chart
02/10/12
• Example 1:
Selection (3) Switch
x Print1 X is 1
2 X is 2
Other value Value of x unknown
02/10/12
Selection (3) SwitchIPO Analysis:
Input: x
Process: switch (x) { case 1: print "x is 1“breakcase 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”
02/10/12
Selection (3) Switch• Pseudocode
startread xswitch (x) { case 1: print "x is 1“breakcase 2: print "x is 2" breakdefault: print "value of x unknown” }end
02/10/12
b) Flow chart
iv) Selection - switch
02/10/12
SUMMARY
if-else
Types of selection structure
nested if-else
switch
* Use an appropriate selection control structure in problem solving
02/10/12
Topic: 8.2Approach in Problem Solving
8.2.5: Control Structure8.2.5.3: Looping
02/10/12
Learning OutcomeAt the end of this topic, students should be able to:
• explain the purpose of looping control structure.
• apply looping control structure in problem solving.
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 whileo do..whileo for
02/10/12
The essentials of looping (repetition)
• The loop counter (loop control variable ):o Counts the number of repetitions in the counter-
controlled loopo 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
02/10/12
1. The while Construct
The looping control structure:
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
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
02/10/12
Applying Algorithm in while Construct
• Flow Chart start
initialize counter
while (expression)
statement(s)
True
counter increment
False
end
02/10/12
The Counter Table for while Construct
counter expression input process output counter increment
initial value of counter condition to
test
IPO analysisincrement to
modify the loop
i i <= 3 input process output i = i + 1
Example of while counter table:
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
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, heightProcess: area = width * heightOutput: area
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, heightProcess: area = width * heightOutput: area
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
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
02/10/12
2. The do..while Construct
The looping control structure:
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.
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
02/10/12
Applying Algorithm in do..while Construct• Flow Chart start
initialize counter
while (expression)
statement(s)
True
counter increment
False
end
02/10/12
The Counter Table for do..while Construct
counter input process output counter increment
expression
initial value of counter
condition to testIPO analysis
increment to modify the loop
i input process output i = i + 1 i <= 3
Example of do..while counter table:
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
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, heightProcess: area = width * heightOutput: area
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, heightProcess: area = width * heightOutput: area
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
02/10/12
• Flow Chart
Example 2: do..while Constructstart
i = 1
(i <= 3)
width, height
True
i = i + 1
Falseend
area = width * height
area
02/10/12
3. The for Construct
The looping control structure:
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
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
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.
02/10/12
Applying Algorithm in for Construct
• Flow Chart start
initialize counter
(expression)
statement(s)
True
counter increment
False
end
02/10/12
The Counter Table for for Construct
counter expression input process output counter increment
initial value of counter condition to
test
IPO analysisincrement to
modify the loop
i i <= 3 input process output i = i + 1
Example of for counter table:
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
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, heightProcess: area = width * heightOutput: area
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, heightProcess: area = width * heightOutput: area
02/10/12
• PseudocodeExample 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
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
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
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, num3Process: total = num1 + num2 + num3average = total / 3
oraverage = (num1 + num2 + num3) / 3Output: average
Accumulating
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: numProcess: total = total + numaverage = total / 3Output: average
Accumulating
02/10/12
Example 5: Accumulating in Looping StructureProblem Analysis:
Input: numProcess: total = total + numaverage = total / 3Output: 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)
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
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
02/10/12
Summary• What have you learned?
o The three forms of looping control structure:whiledo..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.