Tom Kelliher, CS17
Feb. 14, 1996
See ``Pseudocoding Conventions,'' pp. 46--47
The process of decomposing (``refining'') a problem (the ``top'') into sub-problems (``down'' a level), each of which may themselves be treated as problems and, therefore, further decomposed (``stepwise'').
Examples:
Initial pseudocode:
read and verify number find and print number's factors print a message if number is prime
read and verify number:
let number = 0
while number < 1
begin
print "Enter a positive integer: "
read number
end
end_while
find and print number's factors:
let prime = TRUE
let currentFactor = 2
let lastFactor = the square root of number truncated
to an integer value
while currentFactor <= lastFactor
begin
if number is evenly divisible by currentFactor
begin
print currentFactor
let number = number / currentFactor
end
else
let currentFactor = currentFactor + 1
end_if
end
end_while
print a message if number is prime:
if prime == TRUE print "Your number is prime" end_if
Initial pseudocode:
determine n determine i read the n numbers into a list arrange the n numbers in the list in descending order pick out the ith number in the list and print it
Work on further refinement in small groups
We won't cover structure charts
Do we need to look at flowcharts?
A computer program:
a sequence of a finite number of statements expressed in a programming language in a specific logical order which, when executed, produces the solution for a problem.
Compare algorithm
Are these the same?
What types of errors will each uncover?
How would you adequately test
Seemingly trivial, but important