Pseudocode Examples
Modified 15 December 1999
An algorithm is a procedure for solving a problem in terms of the actions to be executed and the order in which those actions are to be executed. An algorithm is merely the sequence of steps taken to solve a problem. The steps are normally "sequence," "selection, " "iteration," and a case-type statement.
In C, "sequence statements" are imperatives. The "selection" is the "if then else" statement, and the iteration is satisfied by a number of statements, such as the "while," " do," and the "for," while the case-type statement is satisfied by the "switch" statement.
Pseudocode is an artificial and informal language that helps programmers develop algorithms. Pseudocode is a "text-based" detail (algorithmic) design tool.
The rules of Pseudocode are reasonably straightforward. All statements showing "dependency" are to be indented. These include while, do, for, if, switch. Examples below will illustrate this notion.
GUIDE TO PSEUDOCODE LEVEL OF DETAIL: Given record/file descriptions, pseudocode should be created in sufficient detail so as to directly support the programming effort. It is the purpose of pseudocode to elaborate on the algorithmic detail and not just cite an abstraction.
Examples:
1.
If student's grade is greater than or equal to 60
Print "passed"
else
Print "failed"
endif
2.
Set total to zero
Set grade counter to one
While grade counter is less than or equal to ten
Input the next grade
Add the grade into the total
endwhile
Set the class average to the total divided by ten
Print the class average.
3.
Initialize total to zero
Initialize counter to zero
Input the first grade
while the user has not as yet entered the sentinel
add this grade into the running total
add one to the grade counter
input the next grade (possibly the sentinel)
endwhile
if the counter is not equal to zero
set the average to the total divided by the counter
print the average
else
print 'no grades were entered'
endif
4.
initialize passes to zero
initialize failures to zero
initialize student to one
while student counter is less than or equal to ten
input the next exam result
if the student passed
add one to passes
else
add one to failures
add one to student counter
endif
endwhile
print the number of passes
print the number of failures
if eight or more students passed
print "raise tuition"
endif
5.Larger example:
NOTE: NEVER ANY DATA DECLARATIONS IN PSEUDOCODE
Print out appropriate heading and make it pretty
While not EOF do:
Scan over blanks and white space until a char is found
(get first character on the line)
set can't-be-ascending-flag to 0
set consec cntr to 1
set ascending cntr to 1
putchar first char of string to screen
set read character to hold character
While next character read != blanks and white space
putchar out on screen
if new char = hold char + 1
add 1 to consec cntr
set hold char = new char
continue
endif
if new char >= hold char
if consec cntr < 3
set consec cntr to 1
endif
set hold char = new char
continue
endif
if new char < hold char
if consec cntr < 3
set consec cntr to 1
endif
set hold char = new char
set can't be ascending flag to 1
continue
endif
end while
if consec cntr >= 3
printf (Appropriate message 1 and skip a line)
add 1 to consec total
endif
if can't be ascending flag = 0
printf (Appropriate message 2 and skip a line)
add 1 to ascending total
else
printf (Sorry message and skip a line)
add 1 to sorry total
endif
end While
Print out totals: Number of consecs, ascendings, and sorries.
Stop
Some Keywords That Should be Used And Additional Points
For looping and selection, The keywords that are to be used include Do While...EndDo; Do Until...Enddo; While .... Endwhile is acceptable. Also, Loop .... endloop is also VERY good and is language independent. Case...EndCase; If...Endif; Call ... with (parameters); Call; Return ....; Return; When;
Always use scope terminators for loops and iteration.
As verbs, use the words Generate, Compute, Process, etc. Words such as set, reset, increment, compute, calculate, add, sum, multiply, ... print, display, input, output, edit, test , etc. with careful indentation tend to foster desirable pseudocode. Also, using words such as Set and Initialize, when assigning values to variables is also desirable.
More on Formatting and Conventions in Pseudocoding
Do not include data declarations in your pseudocode.
But do cite variables that are initialized as part of their declarations. E.g. "initialize count to zero" is a good entry.
Function Calls, Function Documentation, and Pseudocode
Calls to Functions should appear as:Call FunctionName (arguments: field1, field2, etc.)
Returns in functions should appear as:Return (field1)
Function headers should appear as:FunctionName (parameters: field1, field2, etc. )
Note that in C, arguments and parameters such as "fieldn" could be written: "pointer to fieldn ...."
Functions called with addresses should be written as:Call FunctionName (arguments: pointer to fieldn, pointer to field1, etc.)
Function headers containing pointers should be indicated as:FunctionName (parameters: pointer to field1, pointer to field2, ...)
Returns in functions where a pointer is returned:Return (pointer to fieldn)
It would not hurt the appearance of your pseudocode to draw a line or make your function header line "bold" in your pseudocode. Try to set off your functions.
Try to use scope terminators in your pseudocode and source code too. It really hels the readability of the text.
- Call FunctionName (arguments: field1, field2, etc.)
- Return (field1)
- FunctionName (parameters: field1, field2, etc. )
- Call FunctionName (arguments: pointer to fieldn, pointer to field1, etc.)
- FunctionName (parameters: pointer to field1, pointer to field2, ...)
- Return (pointer to fieldn)
Source Code
EVERY function should have a flowerbox PRECEDING IT. This flower box is to include the functions name, the main purpose of the function, parameters it is expecting (number and type), and the type of the data it returns. All of these listed items are to be on separate lines with spaces in between each explanatory item.
FORMAT of flowerbox should be
********************************************************
Function: ( cryptic text describing single function
....... (indented like this)
.......
Calls: Start listing functions "this" function calls
Show these functions: one per line, indented
Called by: List of functions that calls "this" function
Show these functions: one per line, indented.
Input Parameters: list, if appropriate; else None
Returns: List, if appropriate.
****************************************************************
INDENTATION is critically important in Source Code. Follow standard examples given in class. If in doubt, ASK. Always indent statements within IFs, FOR loops, WILLE loops, SWITCH statements, etc. a consistent number of spaces, such as four. Alternatively, use the tab key. One or two spaces is insufficient.
Use scope terminators at the end of if statements, for statements, while statements, and at the end of functions. It will make your program much more readable.SPELLING ERRORS ARE NOT ACCEPTABLE
******************************************************** Function: ( cryptic text describing single function ....... (indented like this) ....... Calls: Start listing functions "this" function calls Show these functions: one per line, indented Called by: List of functions that calls "this" function Show these functions: one per line, indented. Input Parameters: list, if appropriate; else None Returns: List, if appropriate. ****************************************************************
No comments:
Post a Comment