Академический Документы
Профессиональный Документы
Культура Документы
Lecture # 2
Algorithms and flow charts
Instructor: Lec Razia Sharif
Sequence
• Algorithms and flow charts
• Steps in Problem Solving
• The Flowchart
• Basic flowchart symbol
• Stepping Through the Flowchart
• Four Flowchart Structures
• Connectors and modules
• Review examples
2
ALGORITHMS AND FLOWCHARTS
A typical programming task can be divided into two
phases:
• Problem solving phase
– produce an ordered sequence of steps that describe solution
of problem
– this sequence of steps is called an algorithm
• Implementation phase
– implement the program in some programming language
4
The Flowchart
Program flowcharts show the sequence of
instructions in a single program or subroutine.
Different symbols are used to draw each type of
flowchart.
A Flowchart
– shows logic of an algorithm
– emphasizes individual steps and their
interconnections
– e.g. control flow from one action to the next
5
START
program.
Read Pay Rate
• The figure shown here
is a flowchart for pay- Multiply Hours
by Pay Rate.
Store result in
calculating program. Gross Pay.
Display Gross
Pay
END
6
Basic Flowchart START
Rounded
Rectangle
– rounded rectangles
Read Pay Rate
– parallelograms
– a rectangle Multiply Hours
by Pay Rate.
Rectangle
• Each symbol represents
Store result in
Gross Pay.
7
Basic Flowchart START Terminal
Multiply Hours
by Pay Rate.
START Store result in
Gross Pay.
Display Gross
Pay
END Terminal
END
8
Basic Flowchart START
Multiply Hours
by Pay Rate.
Display message Store result in
Gross Pay.
“How many
Read Hours
hours did you Display Gross
Pay
work?”
END
9
Basic Flowchart START
assignment
Multiply Hours
by Pay Rate.
Process Store result in
Multiply Hours Gross Pay.
by Pay Rate.
Store result in Display Gross
Pay
Gross Pay.
END
10
Stepping Through START
Output
Display message Operation
the Flowchart “How many
hours did you
work?”
Read Hours
How many
hours did
you work?
Display message
“How much do
you get paid per
hour?”
Multiply Hours
by Pay Rate.
Store result in
Variable Contents: Gross Pay.
11
Stepping Through START
Display message
How many
Input Read Hours
hours did Operation
you work?
(User types Display message
40
40) “How much do
you get paid per
hour?”
Multiply Hours
by Pay Rate.
Store result in
Variable Contents: Gross Pay.
Hours: 40
Display Gross
Pay Rate: ? Pay
12
Stepping Through START
Display message
Read Hours
How much
do you get
paid per
Display message
hour?
“How much do
Output you get paid per
Operation hour?”
Multiply Hours
by Pay Rate.
Store result in
Variable Contents: Gross Pay.
Hours: 40
Display Gross
Pay Rate: ? Pay
13
Stepping Through START
Display message
Read Hours
How much
do you get
paid per
Display message
hour? 20
“How much do
you get paid per
hour?”
Hours: 40
Display Gross
Pay Rate: 20 Pay
14
Stepping Through START
Display message
Read Hours
How much
do you get
paid per
Display message
hour?
“How much do
you get paid per
hour?”
Multiply Hours
Process: The by Pay Rate.
Store result in
Variable Contents: product of 40
times 20 is
Gross Pay.
Hours: 40 stored in
Gross Pay Display Gross
Pay Rate: 20 Pay
15
Stepping Through START
Display message
Read Hours
Your gross
pay is 800
Display message
“How much do
you get paid per
hour?”
Multiply Hours
by Pay Rate.
Store result in
Variable Contents: Gross Pay.
Hours: 40
Output Display Gross
Pay Rate: 20 Operation Pay
16
Four Flowchart Structures
• Sequence
• Decision
• Repetition
• Case
17
Sequence Structure
• a series of actions are performed in sequence
• The pay-calculating example was a sequence
flowchart.
18
Decision Structure
• One of two possible actions is taken, depending on
a condition.
19
Decision Structure
• A new symbol, the diamond, indicates a yes/no question. If
the answer to the question is yes, the flow follows one
path. If the answer is no, the flow follows another path
NO YES
20
Decision Structure
• In the flowchart segment below, the question “is x < y?” is
asked. If the answer is no, then process A is performed. If
the answer is yes, then process B is performed.
NO YES
x < y?
Process A Process B
21
Decision Structure
• The flowchart segment below shows how a decision
structure is expressed in C++ as an if/else statement.
NO YES if (x < y)
x < y? a = x * 2;
else
Calculate a Calculate a a = x + y;
as x plus y. as x times 2.
22
Decision Structure
• The flowchart segment below shows a decision structure
with only one action to perform. It is expressed as an if
statement in C++ code.
Flowchart C++ Code
NO YES if (x < y)
x < y? a = x * 2;
Calculate a
as x times 2.
23
Repetition Structure
• A repetition structure represents part of the program that
repeats. This type of structure is commonly known as a
loop.
24
Repetition Structure
• Notice the use of the diamond symbol. A loop tests a
condition, and if the condition exists, it performs an action.
Then it tests the condition again. If the condition still
exists, the action is repeated. This continues until the
condition no longer exists.
25
Repetition Structure
• In the flowchart segment, the question “is x < y?” is asked.
If the answer is yes, then Process A is performed. The
question “is x < y?” is asked again. Process A is repeated
as long as x is less than y. When x is no longer less than y,
the repetition stops and the structure is exited.
YES
x < y? Process A
26
Repetition Structure
• The flowchart segment below shows a repetition structure
expressed in C++ as a while loop.
while (x < y)
YES x++;
x < y? Add 1 to x
27
Case Structure
• One of several possible actions is taken, depending
on the contents of a variable.
28
Case Structure
• The structure below indicates actions to perform
depending on the value in years_employed.
CASE
years_employed
1 2 3 Other
29
Case Structure
If years_employed = 2, If years_employed = 3,
bonus is set to 200 bonus is set to 400
If years_employed = 1, If years_employed is
CASE
bonus is set to 100 years_employed any other value, bonus
is set to 800
1 2 3 Other
30
Connectors
• Sometimes a flowchart will not fit on one
page.
• A connector (represented by a small circle)
allows you to connect two flowchart
segments.
31
Connectors
END
A
32
Modules
• A program module (such as a function in
C++) is represented by a special symbol.
33
Modules
START
•The position of the module
symbol indicates the point the Read Input.
module is executed.
•A separate flowchart can be Call calc_pay
function.
constructed for the module.
Display results.
END
34
Review
• What do each of the following symbols
represent?
36
Pseudocode & Algorithm
• Detailed Algorithm
Step 1: Input M1,M2,M3,M4
Step 2: GRADE
(M1+M2+M3+M4)/4
Step 3: if (GRADE < 60) then
Print “FAIL”
else
Print “PASS”
endif
37
Example 1
START
Step 1: Input M1,M2,M3,M4
Input
Step 2: GRADE (M1+M2+M3+M4)/4
M1,M2,M3,M4 Step 3: if (GRADE <60) then
Print “FAIL”
GRADE (M1+M2+M3+M4)/4 else
Print “PASS”
endif
N IS Y
GRADE<60
PRINT PRINT
“PASS” “FAIL”
STOP
38
Example 3
Write an algorithm and draw a flowchart that
will read the two sides of a rectangle and
calculate its area.
39
Example 3
Algorithm START
Print
A
STOP
40
THANKS