Download - Flow Charting
Flow Charting
Damian Gordon
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?
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?
Symbols
Symbols
Terminal
Input/Output Operation
Process
Decision
Connector
Module
Symbols