algorithms and flowcharts - uj.edu.sa 1.1 flowchart.pdf · algorithms and flowcharts a typical...

89
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 1

Upload: others

Post on 22-Jun-2020

34 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

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

1

Page 2: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

Steps in Problem Solving

• First produce a general algorithm (one can use pseudocode)

• Refine the algorithm successively to get step by step detailed algorithm that is very close to a computer language.

• Pseudocode is an artificial and informal language that helps programmers develop algorithms. Pseudocode is very similar to everyday English.

2

Page 3: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

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

3

Page 4: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

What is a Flowchart?

• A flowchart is a

diagram that depicts

the “flow” of a

program.

• The figure shown here

is a flowchart for pay-

calculating program.

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

4

Page 5: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

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 Pay Rate

Multiply Hours

by Pay Rate.

Store result in

Gross Pay.

Display Gross

Pay

END

Rounded

Rectangle

Parallelogram

Rectangle

Rounded

Rectangle

5

Page 6: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

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 Pay Rate

Multiply Hours

by Pay Rate.

Store result in

Gross Pay.

Display Gross

Pay

END

Terminal

START

END Terminal

6

Page 7: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

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 Pay Rate

Multiply Hours

by Pay Rate.

Store result in

Gross Pay.

Display Gross

Pay

END

Display message

“How many

hours did you

work?”

Read Hours

Input/Output

Operation

7

Page 8: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

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 Pay Rate

Multiply Hours

by Pay Rate.

Store result in

Gross Pay.

Display Gross

Pay

END

Multiply Hours

by Pay Rate.

Store result in

Gross Pay.

Process

8

Page 9: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

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 Pay Rate

Multiply Hours

by Pay Rate.

Store result in

Gross Pay.

Display Gross

Pay

END

Variable Contents:

Hours: ?

Pay Rate: ?

Gross Pay: ?

Output

Operation

Stepping Through

the Flowchart

9

Page 10: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

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 Pay Rate

Multiply Hours

by Pay Rate.

Store result in

Gross Pay.

Display Gross

Pay

END

Variable Contents:

Hours: 40

Pay Rate: ?

Gross Pay: ?

Input

Operation

(User types

40)

Stepping Through

the Flowchart

10

Page 11: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

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 Pay Rate

Multiply Hours

by Pay Rate.

Store result in

Gross Pay.

Display Gross

Pay

END

Variable Contents:

Hours: 40

Pay Rate: ?

Gross Pay: ?

Output

Operation

Stepping Through

the Flowchart

11

Page 12: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

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 Pay Rate

Multiply Hours

by Pay Rate.

Store result in

Gross Pay.

Display Gross

Pay

END

Variable Contents:

Hours: 40

Pay Rate: 20

Gross Pay: ?

Input

Operation

(User types

20)

Stepping Through

the Flowchart

12

Page 13: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

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 Pay Rate

Multiply Hours

by Pay Rate.

Store result in

Gross Pay.

Display Gross

Pay

END

Variable Contents:

Hours: 40

Pay Rate: 20

Gross Pay: 800

Process: The

product of 40

times 20 is

stored in

Gross Pay

Stepping Through

the Flowchart

13

Page 14: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

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 Pay Rate

Multiply Hours

by Pay Rate.

Store result in

Gross Pay.

Display Gross

Pay

END

Variable Contents:

Hours: 40

Pay Rate: 20

Gross Pay: 800

Output

Operation

14

Page 15: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

Four Flowchart Structures

• Sequence

• Decision

• Repetition

• Case

15

Page 16: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

Sequence Structure

• a series of actions are performed in sequence

• The pay-calculating example was a sequence

flowchart.

16

Page 17: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

Decision Structure

• One of two possible actions is taken, depending on

a condition.

17

Page 18: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

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

YESNO

18

Page 19: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

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.

YESNO

x < y?

Process BProcess A

19

Page 20: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

Decision 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

20

Page 21: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

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.

if (x < y)

a = x * 2;

Flowchart C++ Code

YESNO

x < y?

Calculate a

as x times 2.

21

Page 22: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

Repetition Structure

• A repetition structure represents part of the program that

repeats. This type of structure is commonly known as a

loop.

22

Page 23: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

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.

23

Page 24: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

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

24

Page 25: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

Repetition Structure

• The flowchart segment below shows a repetition structure

expressed in C++ as a while loop.

while (x < y)

x++;

Flowchart C++ Code

x < y? Add 1 to x

YES

25

Page 26: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

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

26

Page 27: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

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

27

Page 28: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

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

28

Page 29: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

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

29

Page 30: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

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?

30

Page 31: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

A Post-Test Repetition Structure

• The flowchart segment below shows a post-test repetition

structure expressed in C++ as a do-while loop.

do

{

cout << x << endl;

x++;

} while (x < y);

Flowchart

C++ CodeDisplay x

Add 1 to x

YES

x < y?

31

Page 32: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

Post-Test vs Pre-Test

Repetition Structure

32

Page 33: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

Case Structure

• One of several possible actions is taken, depending

on the contents of a variable.

33

Page 34: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

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

34

Page 35: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

Case Structure

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 = 2,

bonus is set to 200If years_employed = 3,

bonus is set to 400

If years_employed is

any other value, bonus

is set to 800

35

Page 36: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

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

36

Page 37: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

Connectors

A

ASTART

END

•The “A” connector

indicates that the second

flowchart segment begins

where the first segment

ends.

37

Page 38: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

Modules

• A program module (such as a function in

C++) is represented by a special symbol.

38

Page 39: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

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.

39

Page 40: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

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

40

Page 41: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

• This flowchart segment

shows two decision

structures combined.

Combining Structures

Display “x is

within limits.”

Display “x is

outside the limits.”

YESNO

x > min?

x < max?

YESNO

Display “x is

outside the limits.”

41

Page 42: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

Review

• What do each of the following symbols

represent?

(Answer on next slide) 42

Page 43: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

Answer

• What do each of the following symbols

represent?

Terminal

Input/Output

Operation

Process

Decision

Connector

Module

43

Page 44: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

Review

• Name the four flowchart structures.

(Answer on next slide)

44

Page 45: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

Answer

• Sequence

• Decision

• Repetition

• Case

45

Page 46: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

• What type of structure is this?

Review

(Answer on next slide)46

Page 47: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

Answer

• Repetition

47

Page 48: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

• What type of structure is this?

Review

(Answer on next slide)48

Page 49: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

Answer

• Sequence

49

Page 50: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

• What type of structure is this?

Review

(Answer on next slide)50

Page 51: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

Answer

• Case

51

Page 52: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

• What type of structure is this?

Review

(Answer on next slide)52

Page 53: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

Answer

• Decision

53

Page 54: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

Pseudocode & Algorithm

• Example 1: Write an algorithm to

determine a student’s final grade and

indicate whether it is passing or failing. The

final grade is calculated as the average of

four marks.

54

Page 55: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

Pseudocode & Algorithm

• Detailed Algorithm

Step 1: Input M1,M2,M3,M4

Step 2: GRADE (M1+M2+M3+M4)/4

Step 3: if (GRADE < 50) then

Print “FAIL”

else

Print “PASS”

endif

55

Page 56: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

Example 1

Step 1: Input M1,M2,M3,M4

Step 2: GRADE (M1+M2+M3+M4)/4

Step 3: if (GRADE <50) then

Print “FAIL”

else

Print “PASS”

endif

START

Input

M1,M2,M3,M4

GRADE(M1+M2+M3+M4)/4

IS

GRADE<50

STOP

YN

56

PRINT

“FAIL”

PRINT

“PASS”

Page 57: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

Example 2

• Write an algorithm and draw a flowchart to convert the length in feet to centimeter.

57

Page 58: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

Example 2

Algorithm

• Step 1: Input Lft

• Step 2: Lcm Lft x 30

• Step 3: Print Lcm

START

Input

Lft

Lcm Lft x 30

STOP

Flowchart

58

Print

Lcm

Page 59: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

Example 3

Write an algorithm and draw a flowchart that

will read the two sides of a rectangle and

calculate its area.

59

Page 60: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

Example 3

Algorithm

• Step 1: Input W,L

• Step 2: A L x W

• Step 3: Print A

START

Input

W, L

A L x W

STOP

60

Print

A

Page 61: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

Example 4

• We want to create a flowchart that prints

out double the number of the inputted value.

• On the following slide, a number of

potential boxes you could use to correctly

implement the algorithm.

61

Page 62: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

START

END62

Page 63: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

Read A

Read B

B = A*2

B = A / 2 Print B

Print A

Read C B = A + 2 Print C

• Pick the appropriate three of the following boxes that

describe the algorithm as described.

63

Page 64: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

Example 5

• We want to create a flowchart that reads in

a number, and checks if it is odd or even.

• On the following slide, a number of

potential boxes you could use to correctly

implement the algorithm.

64

Page 65: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

START

END

No

Read in A

Yes

65

Page 66: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

Is A > B?Read BPrint “It’s

Even”

Does A/2

give a

remainder?

Print “It’s

Odd”Print A /2

Is A = = B?Read CPrint “I

dunno”

• Pick the appropriate three of the following boxes that

describe the algorithm as described.

66

Page 67: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

NESTED IFS

• One of the alternatives within an IF–

THEN–ELSE statement

– may involve further IF–THEN–ELSE statement

67

Page 68: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

Example 6

• We want to create a flowchart that prints

out the biggest of three inputted numbers

68

Page 69: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

Example 6

Step 1: Input A, B, C

Step 2: if (A>B) then

if (A>C) then

MAX A [A>B, A>C]

else

MAX C [C>A>B]

endif

else

if (B>C) then

MAX B [B>A, B>C]

else

MAX C [C>B>A]

endif

endif

Step 3: Print “The largest number is”, MAX

69

Page 70: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

Example 6

• Flowchart: Draw the flowchart of the

above Algorithm.

• On the following slide, a number of

potential boxes you could use to correctly

implement the algorithm.

70

Page 71: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

START

END

A>B?

No

Read A, B, C

YesYes Yes

No

No

71

Page 72: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

A>C?

B>C?Print A

Print C

Print B

A>B?

A<C?

B<C?

A<B?

• Pick the appropriate three of the following boxes that

describe the algorithm as described.

72

Page 73: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

Example 7

• We want to create a flowchart that prints

out the word “Honour” if the number input

is greater than 70, if the number is less than

40 print out the word “Fail”, otherwise print

out the word “Pass”.

• On the following slide, a number of

potential boxes you could use to correctly

implement the algorithm.

73

Page 74: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

START

END

No

Read A

Yes No

Yes

74

Page 75: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

A < 70?

A < 40?

Print

“Honour”

Print “Fail”

Print “Pass”A > Pass?

A > 70?

A > 40?

A > Honour?

• Pick the appropriate three of the following boxes that

describe the algorithm as described

75

Page 76: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

Example 8

• We want to create a flowchart that prints

out the average value of five numbers input

in.

• On the following slide, a number of

potential boxes you could use to correctly

implement the algorithm.

76

Page 77: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

START

END

No

A = 1

Yes

Total = 0

A = A + 1

77

Page 78: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

Is A==6?

Total = Total + X

Print Total / 5

Is A==5? Is A==0?

Print Total Print Total++

Total = X Total = Total

Read XRead TotalRead A

• Pick the appropriate three of the following boxes that

describe the algorithm as described.

78

Page 79: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

Example 9

• Write an algorithm and draw a flowchart that will

calculate the roots of a quadratic equation

• Hint: d = sqrt ( ),

• and the roots are:

x1 = (–b + d)/2a and x2 = (–b – d)/2a

2 0ax bx c

2 4b ac

79

Page 80: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

Example 9

• Algorithm: • Step 1: Input a, b, c

• Step 2: d sqrt ( )

• Step 3: x1 (–b + d) / (2 x a)

• Step 4: x2 (–b – d) / (2 x a)

• Step 5: Print x1, x2

START

Input

a, b, c

d sqrt(b x b – 4 x a x c)

STOP

x1(–b + d) / (2 x a)

X2 (–b – d) / (2 x a)

4b b a c

80

Print

x1 ,x2

Page 81: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

Example 10

• Write an algorithm that reads two values, determines the largest value and prints the largest value with an identifying message.

81

Page 82: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

Example 10

MAX VALUE1

STOP

Y N

START

Input

VALUE1,VALUE2

MAX VALUE2

is

VALUE1>VALUE2

82

Print

“The largest value is”, MAX

ALGORITHMStep 1: Input VALUE1, VALUE2Step 2: if (VALUE1 > VALUE2)

then MAX VALUE1elseMAX VALUE2endif

Step 3: Print “The largest value is”, MAX

Page 83: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

Example 11

Write and algorithm and draw a flowchart to

a) read an employee name (NAME), overtime

hours worked (OVERTIME), hours absent

(ABSENT) and

b) determine the bonus payment (PAYMENT).

83

Page 84: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

Example 11

Bonus Schedule

OVERTIME – (2/3)*ABSENT Bonus Paid

>40 hours

>30 but 40 hours

>20 but 30 hours

>10 but 20 hours

10 hours

$50

$40

$30

$20

$10

84

Page 85: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

Step 1: Input NAME,OVERTIME,ABSENT

Step 2: if (OVERTIME–(2/3)*ABSENT > 40) then

PAYMENT 50

else if (OVERTIME–(2/3)*ABSENT > 30) then

PAYMENT 40

else if (OVERTIME–(2/3)*ABSENT > 20) then

PAYMENT 30

else if (OVERTIME–(2/3)*ABSENT > 10) then

PAYMENT 20

else

PAYMENT 10

endif

Step 3: Print “Bonus for”, NAME “is $”, PAYMENT

85

Page 86: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

Example 11

• Flowchart: Draw the flowchart of the

above algorithm?

86

Page 87: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

Example 12

Express an algorithm to get two numbers from the user

(dividend and divisor), testing to make sure that the divisor

number is not zero, and displaying their quotient using a

flowchart.

87

Page 88: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

Example 12 Answer

– Step 1 – Declare variables – dividend, divisor, quotient

– Step 2 – Prompt user to get dividend

– Step 3 – Store values in dividend variable

– Step 4 – Prompt user to get divisor

– Step 5 – Store value in divisor variable

– Step 6 – Display dividend and divisor

– Step 7 - Loop

Selection: If divisor is equal to zero

Display error message, “divisor must be non-zero” and

• go back to step 4

• Step 8 - Calculate quotient as dividend/divisor

• Step 9 - Display quotient

88

Page 89: ALGORITHMS AND FLOWCHARTS - uj.edu.sa 1.1 Flowchart.pdf · ALGORITHMS AND FLOWCHARTS A typical programming task can be divided into two phases: •Problem solving phase – produce

89