8.2 approach in problem solving (9 hour)

174
02/10/12 Programming 8.2 Approach in Problem Solving

Upload: fiqry-suryansyah

Post on 17-Nov-2014

627 views

Category:

Education


2 download

DESCRIPTION

 

TRANSCRIPT

Page 1: 8.2 approach in problem solving (9 hour)

02/10/12

Programming

8.2 Approach in Problem Solving

Page 2: 8.2 approach in problem solving (9 hour)

02/10/12

• 8.2.1 Input Process Output (IPO) Analysis

Approach in Problem Solving

Page 3: 8.2 approach in problem solving (9 hour)

02/10/12

Learning Outcome

• Identify input, process and output from a given problem

Page 4: 8.2 approach in problem solving (9 hour)

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

Page 5: 8.2 approach in problem solving (9 hour)

02/10/12

Input Process Output (IPO) Analysis

Input Processing OutputProcessing items:

Algorithm

• It can also be represent using IPO chart

Page 6: 8.2 approach in problem solving (9 hour)

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

Page 7: 8.2 approach in problem solving (9 hour)

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

Page 8: 8.2 approach in problem solving (9 hour)

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

Page 9: 8.2 approach in problem solving (9 hour)

02/10/12

• Processing item: An intermediate value that the

algorithm uses when processing the input into the output

Input Process Output (IPO) Analysis

Page 10: 8.2 approach in problem solving (9 hour)

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

Page 11: 8.2 approach in problem solving (9 hour)

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

Page 12: 8.2 approach in problem solving (9 hour)

02/10/12

Problem Analysis:

To do the IPO Analysis, start with:1 – Output2 – Input3 – Process

INPUT :PROCESS :OUTPUT :

Identify :

Analyze the Problem

Page 13: 8.2 approach in problem solving (9 hour)

02/10/12

Problem Analysis:

Input: width, height

Process: area = width x height

Output: area of rectangle

Analyze the Problem

Page 14: 8.2 approach in problem solving (9 hour)

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

Page 15: 8.2 approach in problem solving (9 hour)

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

Page 16: 8.2 approach in problem solving (9 hour)

02/10/12

Problem Analysis:

To do the IPO Analysis, start with:1 – Output2 – Input3 – Process

INPUT :PROCESS :OUTPUT :

Identify :

Analyze the Problem

Page 17: 8.2 approach in problem solving (9 hour)

02/10/12

Problem Analysis:

Input: number1, number2, number3

Process: average = (number1 + number2 + number3) / 3

Output: average

Analyze the Problem

Page 18: 8.2 approach in problem solving (9 hour)

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

Page 19: 8.2 approach in problem solving (9 hour)

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

Page 20: 8.2 approach in problem solving (9 hour)

02/10/12

Problem Analysis:

To do the IPO Analysis, start with:1 – Output2 – Input3 – Process

INPUT :PROCESS :OUTPUT :

Identify :

Analyze the Problem

Page 21: 8.2 approach in problem solving (9 hour)

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

Page 22: 8.2 approach in problem solving (9 hour)

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

Page 23: 8.2 approach in problem solving (9 hour)

02/10/12

Summary

• Approaches in problem solving• Identify Input Process Output (IPO) from a

problem statement

What have you learned ?

Page 24: 8.2 approach in problem solving (9 hour)

02/10/12

• 8.2.2 Algorithm• 8.2.3 Pseudocode

Approach in Problem Solving

Page 25: 8.2 approach in problem solving (9 hour)

02/10/12

Learning Outcome

• Define algorithm

• Solve problem using pseudocode

Page 26: 8.2 approach in problem solving (9 hour)

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

Page 27: 8.2 approach in problem solving (9 hour)

02/10/12

From Algorithms to Programs

Problem

C++ Program

1. Problem Analysis2. Algorithm

Page 28: 8.2 approach in problem solving (9 hour)

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

Page 29: 8.2 approach in problem solving (9 hour)

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

Page 30: 8.2 approach in problem solving (9 hour)

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

Page 31: 8.2 approach in problem solving (9 hour)

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

Page 32: 8.2 approach in problem solving (9 hour)

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

Page 33: 8.2 approach in problem solving (9 hour)

02/10/12

1. Pseudocode- Pseudocode Format

start statement 1

statement 2end

1

3

2

TECHNIQUES TO REPRESENT THE ALGORITHM

Page 34: 8.2 approach in problem solving (9 hour)

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

Page 35: 8.2 approach in problem solving (9 hour)

02/10/12

1. Problem Analysis:

Input: width, height

Process: area = width x height

Output: area of rectangle

Algorithm Design : Pseudocode

Page 36: 8.2 approach in problem solving (9 hour)

02/10/12

Algorithm Design : Pseudocode

startread width and heightcalculate area area of rectangle = width * heightprint area of rectangleend

2. Pseudocode

Page 37: 8.2 approach in problem solving (9 hour)

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

Page 38: 8.2 approach in problem solving (9 hour)

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

Page 39: 8.2 approach in problem solving (9 hour)

02/10/12

1. Problem Analysis:

Input: number1, number2, number3

Process: average = (number1 + number2 + number3) / 3

Output: average

Algorithm Design : Pseudocode

Page 40: 8.2 approach in problem solving (9 hour)

02/10/12

Algorithm Design : Pseudocode

startinput number1, number2, number3calculate average average = (number1 + number2 + number3) / 3 print averageend

2. Pseudocode

Page 41: 8.2 approach in problem solving (9 hour)

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

Page 42: 8.2 approach in problem solving (9 hour)

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

Page 43: 8.2 approach in problem solving (9 hour)

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

Page 44: 8.2 approach in problem solving (9 hour)

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

Page 45: 8.2 approach in problem solving (9 hour)

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

Page 46: 8.2 approach in problem solving (9 hour)

02/10/12

Summary

• Approaches in problem solving• Planning the algorithm• Steps in building pseudocode• Problem solving using pseudocode

What have you learned ?

Page 47: 8.2 approach in problem solving (9 hour)

02/10/12

• 8.2.4 Flow Chart

Approach in Problem Solving

Page 48: 8.2 approach in problem solving (9 hour)

02/10/12

Learning Outcome

• Solve problem using flow chart

Page 49: 8.2 approach in problem solving (9 hour)

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

Page 50: 8.2 approach in problem solving (9 hour)

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

Page 51: 8.2 approach in problem solving (9 hour)

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

Page 52: 8.2 approach in problem solving (9 hour)

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

Page 53: 8.2 approach in problem solving (9 hour)

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

Page 54: 8.2 approach in problem solving (9 hour)

02/10/12

1. Problem Analysis:

Input: width, height

Process: area = width x height

Output: area of rectangle

Algorithm Design : Flow Chart

Page 55: 8.2 approach in problem solving (9 hour)

02/10/12

Algorithm Design : Flow Chart

2. Flow Chart

area = width * height

width, height

area

start

end

Page 56: 8.2 approach in problem solving (9 hour)

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

Page 57: 8.2 approach in problem solving (9 hour)

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

Page 58: 8.2 approach in problem solving (9 hour)

02/10/12

1. Problem Analysis:

Input: number1, number2, number3

Process: average = (number1 + number2 + number3) / 3

Output: average

Algorithm Design : Flow Chart

Page 59: 8.2 approach in problem solving (9 hour)

02/10/12

Algorithm Design : Flow Chart

2. Flow Chart

average = (number1 + number2 + number3) / 3

number1, number2, number3

average

start

end

Page 60: 8.2 approach in problem solving (9 hour)

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

Page 61: 8.2 approach in problem solving (9 hour)

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

Page 62: 8.2 approach in problem solving (9 hour)

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

Page 63: 8.2 approach in problem solving (9 hour)

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

Page 64: 8.2 approach in problem solving (9 hour)

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

Page 65: 8.2 approach in problem solving (9 hour)

02/10/12

Summary

• Approaches in problem solving• Steps in building flow chart• Problem solving using flow chart

What have you learned ?

Page 66: 8.2 approach in problem solving (9 hour)

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 ?

Page 67: 8.2 approach in problem solving (9 hour)

02/10/12

8.2 Approach in Problem Solving8.2.5 Control Structure8.2.5.2 Sequence

Page 68: 8.2 approach in problem solving (9 hour)

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.

Page 69: 8.2 approach in problem solving (9 hour)

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.

Page 70: 8.2 approach in problem solving (9 hour)

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.

Page 71: 8.2 approach in problem solving (9 hour)

02/10/12

8.2.5.1 Sequence

Page 72: 8.2 approach in problem solving (9 hour)

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

Page 73: 8.2 approach in problem solving (9 hour)

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

Page 74: 8.2 approach in problem solving (9 hour)

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

Page 75: 8.2 approach in problem solving (9 hour)

02/10/12

8.2.5.1 Sequence

Page 76: 8.2 approach in problem solving (9 hour)

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.

Page 77: 8.2 approach in problem solving (9 hour)

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

Page 78: 8.2 approach in problem solving (9 hour)

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

Page 79: 8.2 approach in problem solving (9 hour)

02/10/12

8.2.5.1 Sequence

Page 80: 8.2 approach in problem solving (9 hour)

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.

Page 81: 8.2 approach in problem solving (9 hour)

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

Page 82: 8.2 approach in problem solving (9 hour)

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

Page 83: 8.2 approach in problem solving (9 hour)

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

Page 84: 8.2 approach in problem solving (9 hour)

02/10/12

8.0PROGRAMMING

8.2: Approach in Problem Solving8.2.5: Control Structure8.2.5.2 Selection

Page 85: 8.2 approach in problem solving (9 hour)

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

Page 86: 8.2 approach in problem solving (9 hour)

02/10/12

Control Structure : Selection

SELECTION AnalogyYou need to choose to make “Coffee O” or

“Milk Coffee”

Page 87: 8.2 approach in problem solving (9 hour)

02/10/12

Control Structure : Selection

SEQUENCE

Control Structures

SELECTION LOOPING

Page 88: 8.2 approach in problem solving (9 hour)

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

Page 89: 8.2 approach in problem solving (9 hour)

02/10/12

Control Structure : Selection

if-else

Types of selection structure

nested if-else switch

Page 90: 8.2 approach in problem solving (9 hour)

02/10/12

• If-else structure’s form

if (expression)statement_1elsestatement_2

Selection (1) if-else

Page 91: 8.2 approach in problem solving (9 hour)

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

Page 92: 8.2 approach in problem solving (9 hour)

02/10/12

• Pseudocode format:

Selection (1) if-else

start if (expression)

statement_1 else statement_2

end

Page 93: 8.2 approach in problem solving (9 hour)

02/10/12

• Flow chart format:

Selection (1) if-else

Page 94: 8.2 approach in problem solving (9 hour)

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

Page 95: 8.2 approach in problem solving (9 hour)

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

Page 96: 8.2 approach in problem solving (9 hour)

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

Page 97: 8.2 approach in problem solving (9 hour)

02/10/12

• Pseudocode

Selection (1) if-else

startread marksif (marks >= 80)print “Excellent!”elseprint “Sorry, try again”end

Page 98: 8.2 approach in problem solving (9 hour)

02/10/12

• Flow chartstart

end

marks

“Excellent!”

marks >= 80

true “Sorry, try again”

false

Selection (1) if-else

Page 99: 8.2 approach in problem solving (9 hour)

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

Page 100: 8.2 approach in problem solving (9 hour)

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

Page 101: 8.2 approach in problem solving (9 hour)

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

Page 102: 8.2 approach in problem solving (9 hour)

02/10/12

• Pseudocode

Selection (1) if-else

startread ageif (age > 15)print “Eligible”elseprint “Not eligible”end

Page 103: 8.2 approach in problem solving (9 hour)

02/10/12

• Flow chartstart

end

age

“Eligible”

age > 15

true “Not eligible”

false

Selection (1) if-else

Page 104: 8.2 approach in problem solving (9 hour)

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

Page 105: 8.2 approach in problem solving (9 hour)

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

Page 106: 8.2 approach in problem solving (9 hour)

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

Page 107: 8.2 approach in problem solving (9 hour)

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

Page 108: 8.2 approach in problem solving (9 hour)

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

Page 109: 8.2 approach in problem solving (9 hour)

02/10/12

Selection (2) nested if-else

if-else

Types of selection structure

nested if-else

switch

Page 110: 8.2 approach in problem solving (9 hour)

02/10/12

• The if-else structure can also be nested to any depth.

Selection (2) nested if-else

Page 111: 8.2 approach in problem solving (9 hour)

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

Page 112: 8.2 approach in problem solving (9 hour)

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

Page 113: 8.2 approach in problem solving (9 hour)

02/10/12

• If not, statement_4 is executed.• Rules Only ONE of the statements is

executed.

Selection (2) nested if-else

Page 114: 8.2 approach in problem solving (9 hour)

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

Page 115: 8.2 approach in problem solving (9 hour)

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

Page 116: 8.2 approach in problem solving (9 hour)

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

Page 117: 8.2 approach in problem solving (9 hour)

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

Page 118: 8.2 approach in problem solving (9 hour)

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"

Page 119: 8.2 approach in problem solving (9 hour)

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”

Page 120: 8.2 approach in problem solving (9 hour)

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

Page 121: 8.2 approach in problem solving (9 hour)

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

Page 122: 8.2 approach in problem solving (9 hour)

02/10/12

Selection (3) Switch

if-else

Types of selection structure

nested if-else switch

Page 123: 8.2 approach in problem solving (9 hour)

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

Page 124: 8.2 approach in problem solving (9 hour)

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

Page 125: 8.2 approach in problem solving (9 hour)

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

Page 126: 8.2 approach in problem solving (9 hour)

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

Page 127: 8.2 approach in problem solving (9 hour)

02/10/12

iv) Selection - switch

switch Flow chart

Page 128: 8.2 approach in problem solving (9 hour)

02/10/12

• Example 1:

Selection (3) Switch

x Print1 X is 1

2 X is 2

Other value Value of x unknown

Page 129: 8.2 approach in problem solving (9 hour)

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”

Page 130: 8.2 approach in problem solving (9 hour)

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

Page 131: 8.2 approach in problem solving (9 hour)

02/10/12

b) Flow chart

iv) Selection - switch

Page 132: 8.2 approach in problem solving (9 hour)

02/10/12

SUMMARY

if-else

Types of selection structure

nested if-else

switch

* Use an appropriate selection control structure in problem solving

Page 133: 8.2 approach in problem solving (9 hour)

02/10/12

Topic: 8.2Approach in Problem Solving

8.2.5: Control Structure8.2.5.3: Looping

Page 134: 8.2 approach in problem solving (9 hour)

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.

Page 135: 8.2 approach in problem solving (9 hour)

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

Page 136: 8.2 approach in problem solving (9 hour)

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

Page 137: 8.2 approach in problem solving (9 hour)

02/10/12

1. The while Construct

The looping control structure:

Page 138: 8.2 approach in problem solving (9 hour)

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

Page 139: 8.2 approach in problem solving (9 hour)

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

Page 140: 8.2 approach in problem solving (9 hour)

02/10/12

Applying Algorithm in while Construct

• Flow Chart start

initialize counter

while (expression)

statement(s)

True

counter increment

False

end

Page 141: 8.2 approach in problem solving (9 hour)

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:

Page 142: 8.2 approach in problem solving (9 hour)

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

Page 143: 8.2 approach in problem solving (9 hour)

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

Page 144: 8.2 approach in problem solving (9 hour)

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

Page 145: 8.2 approach in problem solving (9 hour)

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

Page 146: 8.2 approach in problem solving (9 hour)

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

Page 147: 8.2 approach in problem solving (9 hour)

02/10/12

2. The do..while Construct

The looping control structure:

Page 148: 8.2 approach in problem solving (9 hour)

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.

Page 149: 8.2 approach in problem solving (9 hour)

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

Page 150: 8.2 approach in problem solving (9 hour)

02/10/12

Applying Algorithm in do..while Construct• Flow Chart start

initialize counter

while (expression)

statement(s)

True

counter increment

False

end

Page 151: 8.2 approach in problem solving (9 hour)

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:

Page 152: 8.2 approach in problem solving (9 hour)

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

Page 153: 8.2 approach in problem solving (9 hour)

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

Page 154: 8.2 approach in problem solving (9 hour)

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

Page 155: 8.2 approach in problem solving (9 hour)

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

Page 156: 8.2 approach in problem solving (9 hour)

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

Page 157: 8.2 approach in problem solving (9 hour)

02/10/12

3. The for Construct

The looping control structure:

Page 158: 8.2 approach in problem solving (9 hour)

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

Page 159: 8.2 approach in problem solving (9 hour)

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

Page 160: 8.2 approach in problem solving (9 hour)

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.

Page 161: 8.2 approach in problem solving (9 hour)

02/10/12

Applying Algorithm in for Construct

• Flow Chart start

initialize counter

(expression)

statement(s)

True

counter increment

False

end

Page 162: 8.2 approach in problem solving (9 hour)

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:

Page 163: 8.2 approach in problem solving (9 hour)

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

Page 164: 8.2 approach in problem solving (9 hour)

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

Page 165: 8.2 approach in problem solving (9 hour)

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

Page 166: 8.2 approach in problem solving (9 hour)

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

Page 167: 8.2 approach in problem solving (9 hour)

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

Page 168: 8.2 approach in problem solving (9 hour)

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

Page 169: 8.2 approach in problem solving (9 hour)

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

Page 170: 8.2 approach in problem solving (9 hour)

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

Page 171: 8.2 approach in problem solving (9 hour)

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)

Page 172: 8.2 approach in problem solving (9 hour)

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

Page 173: 8.2 approach in problem solving (9 hour)

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

Page 174: 8.2 approach in problem solving (9 hour)

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.