![Page 1: 1 Introduction to Flowcharting CS110: Programming and Problem Solving for Engineering](https://reader035.vdocument.in/reader035/viewer/2022062308/56649ccb5503460f94993e85/html5/thumbnails/1.jpg)
1
Introduction to Flowcharting
CS110: Programming and Problem Solving for Engineering
![Page 2: 1 Introduction to Flowcharting CS110: Programming and Problem Solving for Engineering](https://reader035.vdocument.in/reader035/viewer/2022062308/56649ccb5503460f94993e85/html5/thumbnails/2.jpg)
2
Acknowledgment
This tutorial is based upon Appendix C from
Starting Out with C++:
From Control Structures to Objects
(5th Edition)
Copyright Tony Gaddis 2007
Published by Addison-Wesley
![Page 3: 1 Introduction to Flowcharting CS110: Programming and Problem Solving for Engineering](https://reader035.vdocument.in/reader035/viewer/2022062308/56649ccb5503460f94993e85/html5/thumbnails/3.jpg)
3
What is a Flowchart?
• A flowchart is a diagram that depicts the “flow of control” of a program.
START
Display message “How many
hours did you work?”
Read Hours
Display message “How much do you get paid per
hour?”
Read PayRate
Multiply Hours by PayRate.
Store result in GrossPay.
Display GrossPay
END
![Page 4: 1 Introduction to Flowcharting CS110: Programming and Problem Solving for Engineering](https://reader035.vdocument.in/reader035/viewer/2022062308/56649ccb5503460f94993e85/html5/thumbnails/4.jpg)
4
Basic Flowchart Symbols
• Notice there are three types of symbols in this flowchart:– rounded rectangles
– parallelograms
– a rectangle
• Each symbol represents a different type of operation.
START
Display message “How many
hours did you work?”
Read Hours
Display message “How much do you get paid per
hour?”
Read PayRate
Multiply Hours by PayRate.
Store result in GrossPay.
Display GrossPay
END
Rounded Rectangle
Parallelogram
Rectangle
Rounded Rectangle
![Page 5: 1 Introduction to Flowcharting CS110: Programming and Problem Solving for Engineering](https://reader035.vdocument.in/reader035/viewer/2022062308/56649ccb5503460f94993e85/html5/thumbnails/5.jpg)
5
Basic Flowchart Symbols
• Terminals– represented by rounded
rectangles
– indicate a starting or ending point
START
Display message “How many
hours did you work?”
Read Hours
Display message “How much do you get paid per
hour?”
Read PayRate
Multiply Hours by PayRate.
Store result in GrossPay.
Display GrossPay
END
Terminal
START
END Terminal
![Page 6: 1 Introduction to Flowcharting CS110: Programming and Problem Solving for Engineering](https://reader035.vdocument.in/reader035/viewer/2022062308/56649ccb5503460f94993e85/html5/thumbnails/6.jpg)
6
Basic Flowchart Symbols
• Input/Output Operations– represented by
parallelograms
– indicate an input or output operation
START
Display message “How many
hours did you work?”
Read Hours
Display message “How much do you get paid per
hour?”
Read PayRate
Multiply Hours by PayRate.
Store result in GrossPay.
Display GrossPay
END
Display message “How many
hours did you work?”
Read Hours
Input/Output Operation
![Page 7: 1 Introduction to Flowcharting CS110: Programming and Problem Solving for Engineering](https://reader035.vdocument.in/reader035/viewer/2022062308/56649ccb5503460f94993e85/html5/thumbnails/7.jpg)
7
Basic Flowchart Symbols
• Processes– represented by rectangles
– indicates a process such as a mathematical computation or variable assignment
START
Display message “How many
hours did you work?”
Read Hours
Display message “How much do you get paid per
hour?”
Read PayRate
Multiply Hours by PayRate.
Store result in GrossPay.
Display GrossPay
END
Multiply Hours by PayRate.
Store result in GrossPay.
Process
![Page 8: 1 Introduction to Flowcharting CS110: Programming and Problem Solving for Engineering](https://reader035.vdocument.in/reader035/viewer/2022062308/56649ccb5503460f94993e85/html5/thumbnails/8.jpg)
8
Stepping Through the Flowchart
START
Display message “How many
hours did you work?”
Read Hours
Display message “How much do you get paid per
hour?”
Read PayRate
Multiply Hours by PayRate.
Store result in GrossPay.
Display GrossPay
END
Variable Contents:Hours: ?PayRate: ?GrossPay: ?
Stepping Through the Flowchart
In the next seven slides we will step through each symbol in the flowchart. We will show the program output and the contents of the variables.
![Page 9: 1 Introduction to Flowcharting CS110: Programming and Problem Solving for Engineering](https://reader035.vdocument.in/reader035/viewer/2022062308/56649ccb5503460f94993e85/html5/thumbnails/9.jpg)
9
Stepping Through the Flowchart
How many hours did you work?
START
Display message “How many
hours did you work?”
Read Hours
Display message “How much do you get paid per
hour?”
Read PayRate
Multiply Hours by PayRate.
Store result in GrossPay.
Display GrossPay
END
Variable Contents:Hours: ?PayRate: ?GrossPay: ?
Step 1: An Output Operation
Stepping Through the Flowchart
Screen Output
![Page 10: 1 Introduction to Flowcharting CS110: Programming and Problem Solving for Engineering](https://reader035.vdocument.in/reader035/viewer/2022062308/56649ccb5503460f94993e85/html5/thumbnails/10.jpg)
10
Stepping Through the Flowchart
How many hours did you work? 40
START
Display message “How many
hours did you work?”
Read Hours
Display message “How much do you get paid per
hour?”
Read PayRate
Multiply Hours by PayRate.
Store result in GrossPay.
Display GrossPay
END
Variable Contents:Hours: 40PayRate: ?GrossPay: ?
Step 2: An Input Operation
(User types 40)
Stepping Through the Flowchart
The value 40 is stored in Hours.
![Page 11: 1 Introduction to Flowcharting CS110: Programming and Problem Solving for Engineering](https://reader035.vdocument.in/reader035/viewer/2022062308/56649ccb5503460f94993e85/html5/thumbnails/11.jpg)
11
Stepping Through the Flowchart
How much do you get paid per hour?
START
Display message “How many
hours did you work?”
Read Hours
Display message “How much do you get paid per
hour?”
Read PayRate
Multiply Hours by PayRate.
Store result in GrossPay.
Display GrossPay
END
Variable Contents:Hours: 40PayRate: ?GrossPay: ?
Step 3: An Output Operation
Stepping Through the Flowchart
Screen Output
![Page 12: 1 Introduction to Flowcharting CS110: Programming and Problem Solving for Engineering](https://reader035.vdocument.in/reader035/viewer/2022062308/56649ccb5503460f94993e85/html5/thumbnails/12.jpg)
12
Stepping Through the Flowchart
How much do you get paid per hour? 20
START
Display message “How many
hours did you work?”
Read Hours
Display message “How much do you get paid per
hour?”
Read PayRate
Multiply Hours by PayRate.
Store result in GrossPay.
Display GrossPay
END
Variable Contents:Hours: 40PayRate: 20GrossPay: ?
Step 4: Input Operation
(User types 20)
Stepping Through the Flowchart
The value 20 is stored in PayRate.
![Page 13: 1 Introduction to Flowcharting CS110: Programming and Problem Solving for Engineering](https://reader035.vdocument.in/reader035/viewer/2022062308/56649ccb5503460f94993e85/html5/thumbnails/13.jpg)
13
How much do you get paid per hour? 20
START
Display message “How many
hours did you work?”
Read Hours
Display message “How much do you get paid per
hour?”
Read PayRate
Multiply Hours by PayRate.
Store result in GrossPay.
Display GrossPay
END
Variable Contents:Hours: 40PayRate: 20GrossPay: 800
Step 5: The product of Hours times PayRate is stored in GrossPay
Stepping Through the Flowchart
The value 800 is stored in GrossPay.
![Page 14: 1 Introduction to Flowcharting CS110: Programming and Problem Solving for Engineering](https://reader035.vdocument.in/reader035/viewer/2022062308/56649ccb5503460f94993e85/html5/thumbnails/14.jpg)
14
Stepping Through the Flowchart
Your gross pay is 800
START
Display message “How many
hours did you work?”
Read Hours
Display message “How much do you get paid per
hour?”
Read PayRate
Multiply Hours by PayRate.
Store result in GrossPay.
Display GrossPay
END
Variable Contents:Hours: 40PayRate: 20GrossPay: 800
Step 6: An Output Operation
Screen Output
![Page 15: 1 Introduction to Flowcharting CS110: Programming and Problem Solving for Engineering](https://reader035.vdocument.in/reader035/viewer/2022062308/56649ccb5503460f94993e85/html5/thumbnails/15.jpg)
15
Three Flowchart Structures
• Sequence
• Selection
• Iteration
![Page 16: 1 Introduction to Flowcharting CS110: Programming and Problem Solving for Engineering](https://reader035.vdocument.in/reader035/viewer/2022062308/56649ccb5503460f94993e85/html5/thumbnails/16.jpg)
16
Sequence Structure
• A series of actions are performed in sequence• The pay-calculating example was a sequence
flowchart.
![Page 17: 1 Introduction to Flowcharting CS110: Programming and Problem Solving for Engineering](https://reader035.vdocument.in/reader035/viewer/2022062308/56649ccb5503460f94993e85/html5/thumbnails/17.jpg)
17
Selection Structure
• One of two possible actions is taken, depending on a condition.
![Page 18: 1 Introduction to Flowcharting CS110: Programming and Problem Solving for Engineering](https://reader035.vdocument.in/reader035/viewer/2022062308/56649ccb5503460f94993e85/html5/thumbnails/18.jpg)
18
Selection 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
YESNO
![Page 19: 1 Introduction to Flowcharting CS110: Programming and Problem Solving for Engineering](https://reader035.vdocument.in/reader035/viewer/2022062308/56649ccb5503460f94993e85/html5/thumbnails/19.jpg)
19
Selection 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.
YESNO
x < y?
Process BProcess A
![Page 20: 1 Introduction to Flowcharting CS110: Programming and Problem Solving for Engineering](https://reader035.vdocument.in/reader035/viewer/2022062308/56649ccb5503460f94993e85/html5/thumbnails/20.jpg)
20
Selection Structure
• The flowchart segment below shows how a decision structure is expressed in C++ as an if/else statement.
YESNO
x < y?
Calculate a as x times 2.
Calculate a as x plus y.
if (x < y)
a = x * 2;
else
a = x + y;
Flowchart C++ Code
![Page 21: 1 Introduction to Flowcharting CS110: Programming and Problem Solving for Engineering](https://reader035.vdocument.in/reader035/viewer/2022062308/56649ccb5503460f94993e85/html5/thumbnails/21.jpg)
21
Selection 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.
if (x < y)
a = x * 2;
Flowchart C++ Code
YESNO
x < y?
Calculate a as x times 2.
![Page 22: 1 Introduction to Flowcharting CS110: Programming and Problem Solving for Engineering](https://reader035.vdocument.in/reader035/viewer/2022062308/56649ccb5503460f94993e85/html5/thumbnails/22.jpg)
22
Iteration Structure
• An iteration structure represents part of the program that repeats. This type of structure is commonly known as a loop.
![Page 23: 1 Introduction to Flowcharting CS110: Programming and Problem Solving for Engineering](https://reader035.vdocument.in/reader035/viewer/2022062308/56649ccb5503460f94993e85/html5/thumbnails/23.jpg)
23
Iteration 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.
![Page 24: 1 Introduction to Flowcharting CS110: Programming and Problem Solving for Engineering](https://reader035.vdocument.in/reader035/viewer/2022062308/56649ccb5503460f94993e85/html5/thumbnails/24.jpg)
24
Iteration 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 iteration stops and the structure is exited.
x < y? Process A
YES
![Page 25: 1 Introduction to Flowcharting CS110: Programming and Problem Solving for Engineering](https://reader035.vdocument.in/reader035/viewer/2022062308/56649ccb5503460f94993e85/html5/thumbnails/25.jpg)
25
Iteration Structure
• The flowchart segment below shows an iteration structure expressed in C++ as a while loop.
while (x < y)
x++;
Flowchart C++ Code
x < y? Add 1 to x
YES
![Page 26: 1 Introduction to Flowcharting CS110: Programming and Problem Solving for Engineering](https://reader035.vdocument.in/reader035/viewer/2022062308/56649ccb5503460f94993e85/html5/thumbnails/26.jpg)
26
Controlling an Iteration Structure
• The action performed by an iteration 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 thisflowchart be modified soit is no longer an infiniteloop?
x < y? Display x
YES
![Page 27: 1 Introduction to Flowcharting CS110: Programming and Problem Solving for Engineering](https://reader035.vdocument.in/reader035/viewer/2022062308/56649ccb5503460f94993e85/html5/thumbnails/27.jpg)
27
Controlling an Iteration Structure
• ANSWER: By adding an action within the iteration that changes the value of x.
x < y? Display x
Add 1 to x
YES
![Page 28: 1 Introduction to Flowcharting CS110: Programming and Problem Solving for Engineering](https://reader035.vdocument.in/reader035/viewer/2022062308/56649ccb5503460f94993e85/html5/thumbnails/28.jpg)
28
A Pre-Test Iteration Structure
• This type of structure is known as a pre-test iteration structure. The condition is tested BEFORE any actions are performed.
x < y? Display x
Add 1 to x
YES
![Page 29: 1 Introduction to Flowcharting CS110: Programming and Problem Solving for Engineering](https://reader035.vdocument.in/reader035/viewer/2022062308/56649ccb5503460f94993e85/html5/thumbnails/29.jpg)
29
A Pre-Test Iteration Structure
• In a pre-test iteration structure, if the condition does not exist, the loop will never begin.
x < y? Display x
Add 1 to x
YES
![Page 30: 1 Introduction to Flowcharting CS110: Programming and Problem Solving for Engineering](https://reader035.vdocument.in/reader035/viewer/2022062308/56649ccb5503460f94993e85/html5/thumbnails/30.jpg)
30
A Post-Test Iteration Structure
• This flowchart segment shows a post-testiteration structure.
• The condition is tested AFTER the actionsare performed.
• A post-test iteration structure alwaysperforms its actions at least once.
Display x
Add 1 to x
YESx < y?
![Page 31: 1 Introduction to Flowcharting CS110: Programming and Problem Solving for Engineering](https://reader035.vdocument.in/reader035/viewer/2022062308/56649ccb5503460f94993e85/html5/thumbnails/31.jpg)
31
A Post-Test Iteration Structure
• The flowchart segment below shows a post-test iteration structure expressed in C++ as a do-while loop.
do{ cout << x << endl; x++;} while (x < y);
Flowchart
C++ Code Display x
Add 1 to x
YESx < y?
![Page 32: 1 Introduction to Flowcharting CS110: Programming and Problem Solving for Engineering](https://reader035.vdocument.in/reader035/viewer/2022062308/56649ccb5503460f94993e85/html5/thumbnails/32.jpg)
32
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
![Page 33: 1 Introduction to Flowcharting CS110: Programming and Problem Solving for Engineering](https://reader035.vdocument.in/reader035/viewer/2022062308/56649ccb5503460f94993e85/html5/thumbnails/33.jpg)
33
Connectors
A
A
START
END
•The “A” connector indicates that the second flowchart segment begins where the first segment ends.
![Page 34: 1 Introduction to Flowcharting CS110: Programming and Problem Solving for Engineering](https://reader035.vdocument.in/reader035/viewer/2022062308/56649ccb5503460f94993e85/html5/thumbnails/34.jpg)
34
Modules
• A program module, such as a subprogram (or function in C++), is represented by a special symbol.
![Page 35: 1 Introduction to Flowcharting CS110: Programming and Problem Solving for Engineering](https://reader035.vdocument.in/reader035/viewer/2022062308/56649ccb5503460f94993e85/html5/thumbnails/35.jpg)
35
Modules
•The position of the module symbol indicates the point the module is executed.
•A separate flowchart can be constructed for the module.
START
END
Read Input.
Call calc_pay function.
Display results.
![Page 36: 1 Introduction to Flowcharting CS110: Programming and Problem Solving for Engineering](https://reader035.vdocument.in/reader035/viewer/2022062308/56649ccb5503460f94993e85/html5/thumbnails/36.jpg)
36
Combining Structures
• Structures are commonly combined to create more complex algorithms.
• The flowchart segment below combines a selection structure with a sequence structure.
x < y? Display x
Add 1 to x
YES
![Page 37: 1 Introduction to Flowcharting CS110: Programming and Problem Solving for Engineering](https://reader035.vdocument.in/reader035/viewer/2022062308/56649ccb5503460f94993e85/html5/thumbnails/37.jpg)
37
• This flowchart segment shows two selection structures combined.
Combining Structures
Display “x is within limits.”
Display “x is outside the limits.”
YESNOx > min?
x < max?
YES NO
Display “x is outside the limits.”