Post on 23-Feb-2016
description
Flow Charting, Structured English and PseudoCode
Damian Gordon
We will recall...
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
Structured English and Pseudocode
Structured English
PROGRAM PrintNumber: Read in a number and print
it out.END.
Pseudocode
PROGRAM PrintNumber: Read A; Print A;END.
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
Structured English and Pseudocode
Structured English
PROGRAM DoubleNumber: Read in a number and print
double the number out.END.
Pseudocode
PROGRAM DoubleNumber: Read A; Print A*2;END.
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
Structured English and Pseudocode
Structured English
PROGRAM DoubleNumber: Read in a number and print
double the number out.END.
Pseudocode
PROGRAM DoubleNumber: Read A; B = A*2; Print B;END.
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”
Structured English and Pseudocode
Structured English
PROGRAM OddOrEven: Read in a number. Divide it by two. If there is a remainder, the
number is odd, otherwise it’s even.
END.
Pseudocode
PROGRAM OddOrEven: Read A; IF A/2 gives a remainder THEN Print “It’s Odd”; ELSE Print “It’s Even”; ENDIF;END.
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
Structured English and Pseudocode
Structured English
PROGRAM BiggerOfTwo: Read in a number. Read in a second number. If the first number is bigger,
then print out that number, otherwise print out the other number.
END.
Pseudocode
PROGRAM BiggerOfTwo : Read A; IF (A>B) THEN Print A; ELSE Print B; ENDIF;END.
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
Structured English and Pseudocode
Structured English
PROGRAM BiggerOfThree: Read in a number. Read in a second number. Read in a third number. If the first number is bigger than the
second, then if the first number is bigger than the third, then print out the first number, otherwise print out the third number number.
If the first number is smaller than the second, then if the second number is bigger than the third, then print out the second number, otherwise print out the third number.
END.
PseudocodePROGRAM BiggerOfThree: Read A; Read B; Read C; IF A>B THEN IF A>C THEN Print A ELSE Print C END IF; ELSE IF B>C THEN Print B ELSE Print C END IF; END IF;END.
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
Structured English and Pseudocode
Structured English
PROGRAM Print1to5: Print out 1. Print out 2. Print out 3. Print out 4. Print out 5.END.
Pseudocode
PROGRAM Print1to5: Print 1; Print 2; Print 3; Print 4; Print 5;END.
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
Structured English and Pseudocode
Structured English
PROGRAM Print1to5: Keep printing out numbers
until you reach 5. END.
Pseudocode
PROGRAM Print1to5: A = 1; WHILE (A != 6) DO Print A; A = A + 1; ENDWHILE;END.
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 and print out the result
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
Is A==6?No
A = 1
Yes
Total = Total + A;
A = A + 1
Total = 0
Print Total
START
END
Is A==6?No
A = 1
Yes
Total = Total + A;
A = A + 1
Total = 0
Print Total
Structured English and Pseudocode
Structured English
PROGRAM PrintSum1to5: Keep adding the numbers
from 1 to 5.END.
Pseudocode
PROGRAM PrintSum1to5: Total = 0; A = 1; WHILE (A != 6) DO Total = Total + A; A = A + 1; ENDWHILE; Print Total;END.
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?
Structured English and PseudocodeStructured English
PROGRAM Prime: Read in a number Divide that number by
every number less than it, but greater than one.
If any of them divide in evenly, then it’s not prime, otherwise it is prime.
END.
PseudocodePROGRAM Prime: Read A; B = A - 1; IsPrime=True; WHILE (B != 1) DO IF (A/B gives no remainder) THEN IsPrime= False; ENDIF; B = B – 1; ENDWHILE; IF (IsPrime == true) THEN Print “Prime”; ELSE Print “Not Prime”; ENDIF;END.