Tutorial #7 Flowcharts (reprise)

Post on 23-Feb-2016

43 views 0 download

Tags:

description

Tutorial #7 Flowcharts (reprise). Program Design. Introduction. - PowerPoint PPT Presentation

Transcript of Tutorial #7 Flowcharts (reprise)

Tutorial #7Flowcharts (reprise)

Program Design

Introduction

• We mentioned it already, that if we thing of an analyst as being analogous to an architect, and a developer as being analogous to a builder, then the most important thing we can do as analysts is to explain our designs to the developers in a simple and clear way.

• How do architects do this?

Symbols

Symbols

Terminal

Input/Output Operation

Process

Decision

Connector

Module

Symbols

Flowcharts

• So we start the program as:

START

Flowcharts

• Our program will finish with the following:

END

SEQUENCE

Flowcharts

• When we write programs, we assume that the computer executes the program starting at the beginning and working its way to the end.

• This is a basic assumption of all algorithm design.

Flowcharts

• When we write programs, we assume that the computer executes the program starting at the beginning and working its way to the end.

• This is a basic assumption of all algorithm design.

• We call this SEQUENCE.

START

END

Statement1

Statement2

SELECTION

Flowcharts

• What if we want to make a choice, for example, do we want to add sugar or not to the tea?

Flowcharts

• What if we want to make a choice, for example, do we want to add sugar or not to the tea?

• We call this SELECTION.

START

END

Is Sugar required?

NoYesAdd Sugar Don’t Add Sugar

ITERATION

Flowcharts

• What if we need to tell the computer to keep doing something until some condition occurs?

Flowcharts

• What if we need to tell the computer to keep doing something until some condition occurs?

• Let’s say we wish to indicate that the you need to keep filling the kettle with water until it is full.

Flowcharts

• What if we need to tell the computer to keep doing something until some condition occurs?

• Let’s say we wish to indicate that the you need to keep filling the kettle with water until it is full.

• We need a loop, or ITERATION.

START

END

Kettle is not full?

No

Yes

Keep Filling Kettle

EXAMPLES

Flowcharts

• So let’s say we want to express the following algorithm:– Read in a number and print it out.

START

START

Read in A

START

Read in A

Print A

START

END

Read in A

Print A

Flowcharts

• So let’s say we want to express the following algorithm:– Read in a number and print it out double the number.

START

START

Read in A

START

Read in A

Print A*2

START

END

Read in A

Print A*2

Or alternatively...

START

START

Read in A

START

Read in A

B = A*2

START

Read in AB = A * 2

can be read as

“B gets the value of A

multiplied by 2”

B = A*2

START

Read in A

Print B

B = A*2

START

END

Read in A

Print B

B = A*2

Flowcharts

• So let’s say we want to express the following algorithm:– Read in a number, check if it is odd or even.

START

START

Read in A

START

Does A/2 give a

remainder?

Read in A

START

Does A/2 give a

remainder?

Read in A

YesPrint “It’s Odd”

START

Does A/2 give a

remainder?

No

Read in A

YesPrint “It’s Odd” Print “It’s Even”

START

END

Does A/2 give a

remainder?

No

Read in A

YesPrint “It’s Odd” Print “It’s Even”

Flowcharts

• So let’s say we want to express the following algorithm to print out the bigger of two numbers:– Read in two numbers, call them A and B. Is A is bigger

than B, print out A, otherwise print out B.

START

START

Read in A and B

START

A>B?

Read in A and B

START

A>B?

Read in A and B

YesPrint A

START

A>B?No

Read in A and B

YesPrint A Print B

START

END

A>B?No

Read in A and B

YesPrint A Print B

Flowcharts

• So let’s say we want to express the following algorithm to print out the bigger of three numbers:– Read in three numbers, call them A, B and C.

• If A is bigger than B, then if A is bigger than C, print out A, otherwise print out C.

• If B is bigger than A, then if B is bigger than C, print out B, otherwise print out C.

START

START

Read in A, B and C

START

A>B?

Read in A, B and C

START

A>B?

Read in A, B and C

YesA>C?

START

A>B?No

Read in A, B and C

YesA>C? B>C?

START

A>B?No

Read in A, B and C

YesA>C? B>C?

Print C

NoNo

START

A>B?No

Read in A, B and C

YesA>C? B>C?

Print A Print C

Yes

NoNo

START

A>B?No

Read in A, B and C

YesA>C? B>C?

Print A Print C Print B

Yes Yes

NoNo

START

END

A>B?

No

Read in A, B and C

YesA>C? B>C?

Print A Print C Print B

Yes Yes

No

No

Flowcharts

• So let’s say we want to express the following algorithm:– Print out the numbers from 1 to 5

START

START

Print 1

START

Print 1

Print 2

START

Print 1

Print 2

Print 3

START

Print 1

Print 2

Print 3

Print 4

START

Print 1

Print 2

Print 3

Print 4

Print 5

START

END

Print 1

Print 2

Print 3

Print 4

Print 5

Or alternatively...

Flowcharts

• If I say A = A + 1, that means “A gets the value of whatever is in itself, plus 1”

• If A is 14• It becomes 15

A(new)

15A(old)

14 + 1

A = A + 1

START

START

A = 1

START

Is A==6?

A = 1

START

Is A==6?No

A = 1

Print A

START

Is A==6?No

A = 1

Print A

A = A + 1

START

Is A==6?No

A = 1

Print A

A = A + 1

START

END

Is A==6?No

A = 1

Yes

Print A

A = A + 1

Flowcharts

• So let’s say we want to express the following algorithm:– Add up the numbers 1 to 5

Flowcharts

• But first a few points; • If I say T = 5, that means “T gets the value

5”

T = 5

Flowcharts

• But first a few points; • If I say T = 5, that means “T gets the value

5”

T

T = 5

Flowcharts

• But first a few points; • If I say T = 5, that means “T gets the value

5”

T

5

T = 5

Flowcharts

• If I say T = X, that means “T gets the value of whatever is in the variable X”

T = X

Flowcharts

• If I say T = X, that means “T gets the value of whatever is in the variable X”

• So if X is 14, then T will get the value 14.

T = X

Flowcharts

• If I say T = X, that means “T gets the value of whatever is in the variable X”

• So if X is 14, then T will get the value 14.

T

X14

14

T = X

Flowcharts

• If I say T = X+1, that means “T gets the value of whatever is in the variable X plus one”

T = X + 1

Flowcharts

• If I say T = X+1, that means “T gets the value of whatever is in the variable X plus one”

• So if X is 14, T becomes 15, and X stays as 14.

T = X + 1

Flowcharts

• If I say T = X+1, that means “T gets the value of whatever is in the variable X plus one”

• So if X is 14, T becomes 15, and X stays as 14.

T

X15

14+ 1

T = X + 1

Flowcharts

• If I say T = T + X, that means “T gets the value of whatever is in itself plus whatever is in the variable X”

T = T + X

Flowcharts

• If I say T = T + X, that means “T gets the value of whatever is in itself plus whatever is in the variable X”

• If T is 14 and X is 9• T becomes 23• X stays at 9

T = T + X

Flowcharts

• If I say T = T + X, that means “T gets the value of whatever is in itself plus whatever is in the variable X”

• If T is 14 and X is 9• T becomes 23• X stays at 9

T(new)

X23

9T(old)

14

T = T + X

Flowcharts

• So let’s say we want to express the following algorithm:– Add up the numbers 1 to 5

START

START

Total = 0

START

A = 1

Total = 0

START

Is A==6?

A = 1

Total = 0

START

Is A==6?No

A = 1

Total = Total + A;

Total = 0

START

Is A==6?No

A = 1

Total = Total + A;

A = A + 1

Total = 0

START

END

Is A==6?No

A = 1

Yes

Total = Total + A;

A = A + 1

Total = 0

Flowcharts

• So let’s say we want to express the following algorithm:– Read in a number and check if it’s a prime number.

Flowcharts

• So let’s say we want to express the following algorithm:– Read in a number and check if it’s a prime number.– What’s a prime number?

Flowcharts

• So let’s say we want to express the following algorithm:– Read in a number and check if it’s a prime number.– What’s a prime number?– A number that’s only divisible by itself and 1, e.g. 7.

Flowcharts

• So let’s say we want to express the following algorithm:– Read in a number and check if it’s a prime number.– What’s a prime number?– A number that’s only divisible by itself and 1, e.g. 7. – Or to put it another way, every number other than itself and 1

gives a remainder, e.g. For 7, if 6, 5, 4, 3, and 2 give a remainder then 7 is prime.

Flowcharts

• So let’s say we want to express the following algorithm:– Read in a number and check if it’s a prime number.– What’s a prime number?– A number that’s only divisible by itself and 1, e.g. 7. – Or to put it another way, every number other than itself and 1

gives a remainder, e.g. For 7, if 6, 5, 4, 3, and 2 give a remainder then 7 is prime.

– So all we need to do is divide 7 by all numbers less than it but greater than one, and if any of them have no remainder, we know it’s not prime.

Flowcharts

• So, • If the number is 7, as long as 6, 5, 4, 3, and

2 give a remainder, 7 is prime.• If the number is 9, we know that 8, 7, 6, 5,

and 4, all give remainders, but 3 does not give a remainder, it goes evenly into 9 so we can say 9 is not prime

Flowcharts

• So remember, – if the number is 7, as long as 6, 5, 4, 3, and 2

give a remainder, 7 is prime.• So, in general, – if the number is A, as long as A-1, A-2, A-3, A-

4, ... 2 give a remainder, A is prime.

START

START

Read in A

START

Read in A

B = A -1

START

Read in A

B = A -1

Is B = = 1?

START

Read in A

B = A -1

NoIs B = = 1?

START

Read in A

B = A -1

NoIs B = = 1?

Does A/B give a

remainder?

START

Read in A

B = A -1

NoIs B = = 1?

YesDoes

A/B give a remainder?

START

Read in A

B = A -1

NoB = B - 1 Is B = = 1?

YesDoes

A/B give a remainder?

START

Read in A

B = A -1

NoB = B - 1 Is B = = 1?

YesDoes

A/B give a remainder?

START

Read in A

B = A -1

NoB = B - 1 Is B = = 1?

YesDoes

A/B give a remainder?

No

Print “Not Prime”

START

Yes

Read in A

Print “Prime”

B = A -1

NoB = B - 1 Is B = = 1?

No

Print “Not Prime”

YesDoes

A/B give a remainder?

START

END

Yes

Read in A

Print “Prime”

B = A -1

NoB = B - 1 Is B = = 1?

No

Print “Not Prime”

YesDoes

A/B give a remainder?