8.2 approach in problem solving (9 hour)

Preview:

DESCRIPTION

 

Citation preview

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.

Recommended