You are on page 1of 50

Introduction to

Flowcharting

By
H.D. Nelaka Shayamal Priyankara
B Tech Eng (Hons), AMIE(SL)
START

What is a Flowchart? Display message


How many
hours did you
work?

A flowchart is a Read Hours

diagram that depicts Display message


How much do
the flow of a you get paid per
hour?

program.
Read Pay Rate
The figure shown here
is a flowchart for the Multiply Hours
by Pay Rate.
Store result in
pay-calculating Gross Pay.

program. Display Gross


Pay

END
Basic Flowchart
Rounded
START Rectangle

Symbols
Display message
How many
hours did you
work?

Notice there are three Read Hours

types of symbols in this Display message


How much do
flowchart: you get paid per
hour?
Parallelogram

rounded rectangles
Read Pay Rate
parallelograms
a rectangle Multiply Hours
by Pay Rate.
Rectangle Store result in
Each symbol represents Gross Pay.

a different type of Display Gross


Rounded Pay
operation. Rectangle
END
Basic Flowchart START Terminal

Symbols
Display message
How many
hours did you
work?

Terminals Read Hours

represented by rounded Display message


How much do
rectangles you get paid per
hour?
indicate a starting or
ending point Read Pay Rate

Multiply Hours
by Pay Rate.
START Store result in
Gross Pay.

Display Gross
Pay

END Terminal
END
Basic Flowchart START

Symbols
Display message
How many
hours did you
work?

Input/Output Operations Read Hours

represented by Display message


How much do
parallelograms you get paid per
Input/Output
Operation
hour?
indicate an input or output
operation Read Pay Rate

Multiply Hours
by Pay Rate.
Display message Store result in
Gross Pay.
How many
Read Hours
hours did you Display Gross
Pay
work?
END
Basic Flowchart START

Symbols
Display message
How many
hours did you
work?

Processes Read Hours

represented by rectangles Display message


How much do
indicates a process such as you get paid per
hour?

a mathematical
computation or variable Read Pay Rate

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
Stepping Through START
Output
Operation
the Flowchart
Display 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?

Read Pay Rate

Multiply Hours
by Pay Rate.
Store result in
Variable Contents: Gross Pay.

Hours: ? Display Gross


Pay Rate: ? Pay

Gross Pay: ? END


Stepping Through START

the Flowchart
Display message
How many
hours did you
work?

How many
Input Read Hours

hours did Operation


you work?
40
(User types Display message
40) How much do
you get paid per
hour?

Read Pay Rate

Multiply Hours
by Pay Rate.
Store result in
Variable Contents: Gross Pay.

Hours: 40 Display Gross


Pay Rate: ? Pay

Gross Pay: ? END


Stepping Through START

the Flowchart
Display message
How many
hours did you
work?

Read Hours
How much
do you get
paid per
Display message
hour?
How much do
Output you get paid per
Operation hour?

Read Pay Rate

Multiply Hours
by Pay Rate.
Store result in
Variable Contents: Gross Pay.

Hours: 40
Display Gross
Pay Rate: ? Pay

Gross Pay: ? END


Stepping Through START

the Flowchart
Display message
How many
hours did you
work?

Read Hours
How much
do you get
paid per
Display message
hour? 20
How much do
you get paid per
hour?

Input Read Pay Rate


Operation
(User types Multiply Hours
20) by Pay Rate.
Store result in
Variable Contents: Gross Pay.

Hours: 40
Display Gross
Pay Rate: 20 Pay

Gross Pay: ? END


Stepping Through START

Display message

the Flowchart How many


hours did you
work?

Read Hours
How much
do you get
paid per
Display message
hour?
How much do
you get paid per
hour?

Read Pay Rate

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

Gross Pay: 800 END


Stepping Through START

the Flowchart
Display message
How many
hours did you
work?

Read Hours
Your gross
pay is 800
Display message
How much do
you get paid per
hour?

Read Pay Rate

Multiply Hours
by Pay Rate.
Store result in
Variable Contents: Gross Pay.

Hours: 40
Output Display Gross
Pay Rate: 20 Operation Pay

Gross Pay: 800 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
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
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
Decision Structure
The flowchart segment below shows how a decision
structure is expressed in C++ as an if/else statement.

Flowchart C++ Code

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
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.
Repetition Structure
A repetition structure represents part of the program that
repeats. This type of structure is commonly known as a
loop.
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.
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
Repetition Structure
The flowchart segment below shows a repetition structure
expressed in C++ as a while loop.

Flowchart C++ Code

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
YES
flowchart be modified so x < y? Display x
it is no longer an infinite
loop?
Controlling a Repetition
Structure
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 Add 1 to x
performs its actions at least once.

YES
x < y?
A Post-Test Repetition Structure
The flowchart segment below shows a post-test repetition
structure expressed in C++ as a do-while loop.

C++ Code
Display x
do
{
Flowchart Add 1 to x
cout << x << endl;
x++;
} while (x < y);

YES
x < y?
Case Structure
One of several possible actions is taken, depending
on the contents of a variable.
Case Structure
The structure below indicates actions to perform
depending on the value in years_employed.

CASE
years_employed

1 2 3 Other

bonus = 100 bonus = 200 bonus = 400 bonus = 800


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

bonus = 100 bonus = 200 bonus = 400 bonus = 800


Connectors
Sometimes a flowchart will not fit on one
page.
A connector (represented by a small circle)
allows you to connect two flowchart
segments.

A
Connectors

The A connector
indicates that the second START A

flowchart segment begins


where the first segment
ends.

END
A
Modules
A program module (such as a function in
C++) is represented by a special symbol.
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
Combining Structures
Structures are commonly combined to create more
complex algorithms.
The flowchart segment below combines a decision
structure with a sequence structure.

YES
x < y? Display x Add 1 to x
Combining Structures
This flowchart segment
shows two decision NO YES
structures combined. x > min?

Display x is NO YES
outside the limits.
x < max?

Display x is Display x is
outside the limits. within limits.
Review
What do each of the following symbols
represent?

(Answer on next slide)


Answer
What do each of the following symbols
represent?
Decision
Terminal

Input/Output
Operation Connector

Process Module
Review
Name the four flowchart structures.

(Answer on next slide)


Answer
Sequence
Decision
Repetition
Case
Review
What type of structure is this?

(Answer on next slide)


Answer
Repetition
Review
What type of structure is this?

(Answer on next slide)


Answer
Sequence
Review
What type of structure is this?

(Answer on next slide)


Answer
Case
Review
What type of structure is this?

(Answer on next slide)


Answer
Decision