Presentation is loading. Please wait.

Presentation is loading. Please wait.

Introduction to Flowcharting

Similar presentations


Presentation on theme: "Introduction to Flowcharting"— Presentation transcript:

1 Introduction to Flowcharting
A Supplement to Starting Out with C++, 4th Edition by Tony Gaddis Published by Addison-Wesley

2 What is a Flowchart? START Display message “How many hours did you work?” Read Hours Display message “How much do you get paid per hour?” Read Pay Rate Multiply Hours by Pay Rate. Store result in Gross Pay. Display Gross Pay END A flowchart is a diagram that depicts the “flow” of a program. The figure shown here is a flowchart for the pay-calculating program in Chapter 1.

3 Basic Flowchart Symbols
Rounded Rectangle START Display message “How many hours did you work?” Read Hours Notice there are three types of symbols in this flowchart: rounded rectangles parallelograms a rectangle Each symbol represents a different type of operation. Display message “How much do you get paid per hour?” Parallelogram Read Pay Rate Multiply Hours by Pay Rate. Store result in Gross Pay. Rectangle Display Gross Pay Rounded Rectangle END

4 Basic Flowchart Symbols
Terminal START Display message “How many hours did you work?” Terminals represented by rounded rectangles indicate a starting or ending point Read Hours Display message “How much do you get paid per hour?” Read Pay Rate Multiply Hours by Pay Rate. Store result in Gross Pay. START Display Gross Pay END Terminal END

5 Basic Flowchart Symbols
START Display message “How many hours did you work?” Input/Output Operations represented by parallelograms indicate an input or output operation Read Hours Display message “How much do you get paid per hour?” Input/Output Operation Read Pay Rate Multiply Hours by Pay Rate. Store result in Gross Pay. Display message “How many hours did you work?” Read Hours Display Gross Pay END

6 Basic Flowchart Symbols
START Display message “How many hours did you work?” Processes represented by rectangles indicates a process such as a mathematical computation or variable assignment Read Hours Display message “How much do you get paid per hour?” Read Pay Rate Multiply Hours by Pay Rate. Store result in Gross Pay. Process Multiply Hours by Pay Rate. Store result in Gross Pay. Display Gross Pay END

7 Stepping Through the Flowchart
START Output Operation 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 Gross Pay. Variable Contents: Hours: ? Pay Rate: ? Gross Pay: ? Display Gross Pay END

8 Stepping Through the Flowchart
START Display message “How many hours did you work?” Read Hours Input Operation (User types 40) How many hours did you work? 40 Display message “How much do you get paid per hour?” Read Pay Rate Multiply Hours by Pay Rate. Store result in Gross Pay. Variable Contents: Hours: 40 Pay Rate: ? Gross Pay: ? Display Gross Pay END

9 Stepping Through the Flowchart
START Display message “How many hours did you work?” Read Hours How much do you get paid per hour? Display message “How much do you get paid per hour?” Output Operation Read Pay Rate Multiply Hours by Pay Rate. Store result in Gross Pay. Variable Contents: Hours: 40 Pay Rate: ? Gross Pay: ? Display Gross Pay END

10 Stepping Through the Flowchart
START Display message “How many hours did you work?” Read Hours How much do you get paid per hour? 20 Display message “How much do you get paid per hour?” Read Pay Rate Input Operation (User types 20) Multiply Hours by Pay Rate. Store result in Gross Pay. Variable Contents: Hours: 40 Pay Rate: 20 Gross Pay: ? Display Gross Pay END

11 Stepping Through the Flowchart
START Display message “How many hours did you work?” Read Hours How much do you get paid per hour? Display message “How much do you get paid per hour?” Read Pay Rate Multiply Hours by Pay Rate. Store result in Gross Pay. Process: The product of 40 times 20 is stored in Gross Pay Variable Contents: Hours: 40 Pay Rate: 20 Gross Pay: 800 Display Gross Pay END

12 Stepping Through the Flowchart
START 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 Gross Pay. Variable Contents: Hours: 40 Pay Rate: 20 Gross Pay: 800 Output Operation Display Gross Pay END

13 Four Flowchart Structures
Sequence Decision Repetition Case

14 Sequence Structure a series of actions are performed in sequence
The pay-calculating example was a sequence flowchart.

15 Decision Structure One of two possible actions is taken, depending on a condition.

16 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 YES NO

17 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. YES NO x < y? Process B Process A

18 Decision Structure The flowchart segment below shows how a decision structure is expressed in C++ as an if/else statement. Flowchart C++ Code YES NO x < y? Calculate a as x times 2. Calculate a as x plus y. if (x < y) a = x * 2; else a = x + y;

19 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 YES NO x < y? Calculate a as x times 2. if (x < y) a = x * 2;

20 Repetition Structure A repetition structure represents part of the program that repeats. This type of structure is commonly known as a loop.

21 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.

22 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. x < y? Process A YES

23 Repetition Structure The flowchart segment below shows a repetition structure expressed in C++ as a while loop. Flowchart C++ Code x < y? Add 1 to x YES while (x < y) x++;

24 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 loop? x < y? Display x YES

25 Controlling a Repetition Structure
ANSWER: By adding an action within the repetition that changes the value of x. x < y? Display x Add 1 to x YES

26 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. x < y? Display x Add 1 to x YES

27 A Pre-Test Repetition Structure
In a pre-test repetition structure, if the condition does not exist, the loop will never begin. x < y? Display x Add 1 to x YES

28 A Post-Test Repetition Structure
This flowchart segment shows a post-test repetition structure. The condition is tested AFTER the actions are performed. A post-test repetition structure always performs its actions at least once. Display x Add 1 to x YES x < y?

29 A Post-Test Repetition Structure
The flowchart segment below shows a post-test repetition structure expressed in C++ as a do-while loop. Display x Add 1 to x YES x < y? C++ Code do { cout << x << endl; x++; } while (x < y); Flowchart

30 Case Structure One of several possible actions is taken, depending on the contents of a variable.

31 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

32 Case Structure 1 2 3 Other If years_employed = 2, bonus is set to 200
CASE years_employed 1 2 3 Other bonus = 100 bonus = 200 bonus = 400 bonus = 800 If years_employed = 1, bonus is set to 100 If years_employed is any other value, bonus is set to 800

33 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

34 Connectors The “A” connector indicates that the second flowchart segment begins where the first segment ends. A START END

35 Modules A program module (such as a function in C++) is represented by a special symbol.

36 Call calc_pay function.
Modules START END Read Input. Call calc_pay function. Display results. The position of the module symbol indicates the point the module is executed. A separate flowchart can be constructed for the module.

37 Combining Structures Structures are commonly combined to create more complex algorithms. The flowchart segment below combines a decision structure with a sequence structure. x < y? Display x Add 1 to x YES

38 Combining Structures This flowchart segment shows two decision structures combined. Display “x is within limits.” Display “x is outside the limits.” YES NO x > min? x < max?

39 Review What do each of the following symbols represent?
(Answer on next slide)

40 Answer What do each of the following symbols represent? Decision
Terminal Input/Output Operation Connector Process Module

41 Review Name the four flowchart structures. (Answer on next slide)

42 Answer Sequence Decision Repetition Case

43 Review What type of structure is this? (Answer on next slide)

44 Answer Repetition

45 Review What type of structure is this? (Answer on next slide)

46 Answer Sequence

47 Review What type of structure is this? (Answer on next slide)

48 Answer Case

49 Review What type of structure is this? (Answer on next slide)

50 Answer Decision


Download ppt "Introduction to Flowcharting"

Similar presentations


Ads by Google