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
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
******************************************************** 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. ****************************************************************
SPELLING ERRORS ARE NOT ACCEPTABLE