FlowChart
FlowChart
START
END
Rounded
Basic Flowchart Symbols START
Display
Rectangle
message “How
many hours did
you work?”
Display Gross
Rounded Pay
Rectangle
END
Basic Flowchart Symbols START Terminal
(Contd.) Display
message “How
many hours did
you work?”
Multiply Hours
START by Pay Rate.
Store result in
Gross Pay.
Display Gross
Pay
END Terminal
END
Basic Flowchart Symbols START
(Contd.) Display
message “How
many hours did
you work?”
Multiply Hours by
Pay Rate. Store
Display result in Gross
Pay.
message “How
Read Hours
many hours Display Gross
Pay
did you work?”
END
Basic Flowchart Symbols START
(Contd.) Display
message “How
many hours did
you work?”
variable assignment
Read Pay Rate
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
Stepping Through the
Stepping Through START
Output
theFlowchart
Display Operation
Flowchart message “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
Gross Pay.
Display Gross
Variable Contents: Pay
Hours: ?
Pay Rate: ? END
Gross Pay: ?
Stepping Through the START
How many
Input Read Hours
hours did Operation
you work?
(User types Display
40
40) message “How
much do you
get paid per
hour?”
Multiply Hours
by Pay Rate.
Store result in
Variable Contents: Gross Pay.
Hours: 40
Pay Rate: ? Display Gross
Gross Pay: ? Pay
END
Stepping Through the
Stepping
FlowchartThrough
(Contd.)
START
Display
Read Hours
How much
do you get
paid per
Display
hour?
message “How
Output much do you
Operation get paid per
hour?”
Multiply Hours by
Pay Rate. Store
Variable Contents: result in Gross
Pay.
Hours: 40
Pay Rate: ? Display Gross
Gross Pay: ? Pay
END
Stepping Through the
Stepping Through
Flowchart (Contd.)
START
Display
Read Hours
How much
do you get
paid per
Display
hour? 20
message “How
much do you
get paid per
hour?”
END
Stepping Through the START
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
Gross Pay.
Hours: 40 times 20 is
stored in
Pay Rate: 20 Gross Pay Display Gross
Gross Pay: 800 Pay
END
Stepping Through the START
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
Pay Rate: 20 Output Display Gross
Gross Pay: 800 Operation Pay
END
Four Flowchart Structures
• Sequence
• Decision
• Repetition
• Case
Sequence Structure
• a series of actions are performed in sequence
• The pay-calculating example was a sequence flowchart.
Decision Structure
• One of two possible actions is taken, depending on a condition.
Decision Structure (Contd.)
• 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
Decision Structure (Contd.)
• 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 Process
A B
Decision Structure (Contd.)
• 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.
Decision Structure (Contd.)
• The flowchart segment below shows a decision structure with only one
action to perform. It is expressed as an if statement in C++ code.
NO YES if (x < y)
x < y? a = x * 2;
Calculate a
as x times 2.
Repetition Structure
• A repetition structure represents part of the program that repeats.
• This type of structure is commonly known as a loop.
Repetition Structure (Contd.)
• 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.
Repetition Structure (Contd.)
• 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
Repetition Structure (Contd.)
• 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
Controlling a Repetition Structure
• The action performed by a repetition structure must eventually cause the
loop to terminate. Otherwise, an infinite loop is created.
• In this flowchart segment, x is never changed. Once the loop starts, it will
never end.
• QUESTION: How can this
flowchart be modified so
it is no longer an infinite YES
loop? x < y? Display x
Controlling a Repetition Structure (Contd.)
• ANSWER: By adding an action within the repetition that changes the value
of x.
YES
x < y? Display x Add 1 to x
A Pre-Test Repetition Structure
• This type of structure is known as a pre-test repetition structure. The
condition is tested BEFORE any actions are performed.
YES
x < y? Display x Add 1 to x
A Pre-Test Repetition Structure
• In a pre-test repetition structure, if the condition does not exist, the loop
will never begin.
YES
x < y? Display x Add 1 to x
A Post-Test Repetition Structure
• This flowchart segment shows a post-test
repetition structure.
• The condition is tested AFTER the actions Display x
are performed.
• A post-test repetition structure always
performs its actions at least once. Add 1 to
x
YES
x < y?
A Post-Test Repetition Structure (Contd.)
• The flowchart segment below shows a post-test repetition structure
expressed in C++ as a do-while loop.
C++ Code
Display x
do
{
Flowchart cout << x << endl;
Add 1 to x++;
x } while (x < y);
YES
x < y?
Case Structure
CASE
years_employed
1 2 3 Other
If years_employed = If years_employed =
2, bonus is set to 200 3, bonus is set to 400
If years_employed = If years_employed is
CASE
1, bonus is set to 100 years_employed
any other value,
bonus is set to 800
1 2 3 Other
YES
x < y? Display x Add 1 to x
Combining Structures (Contd.)
Display “x is NO YES
outside the limits.”
x < max?
Display “x is Display “x is
outside the limits.” within limits.”