Pseudocode
An Introduction
Flowcharts were the first design tool to be widely used, but unfortunately they do not reflect some of the concepts of structured programming very well. Pseudocode, on the other hand, is a newer tool and has features that make it more reflective of the structured concepts. The drawback is that the narrative presentation is not as easy to understand and/or follow.
Rules for Pseudocode
Write only one statement per line Capitalize initial keyword Indent to show hierarchy End multiline structures Keep statements language independent
One Statement Per Line
Each statement in pseudocode should express just one action for the computer. If the task list is properly drawn, then in most cases each task will correspond to one line of pseudocode.
Task List
Read name, hours worked, rate of pay Perform calculations gross = hours worked * rate of pay Write name, hours worked, gross
Pseudocode
READ name, hoursWorked, payRate gross = hoursWorked * payRate WRITE name, hoursWorked, gross
Capitalize Initial Keyword
In the example below note the words: READ and WRITE. These are just a few of the keywords to use, others include:
READ, WRITE, IF, ELSE, ENDIF, WHILE, ENDWHILE
Pseudocode
READ name, hoursWorked, payRate gross = hoursWorked * payRate WRITE name, hoursWorked, gross
Indent to Show Hierarchy
Each design structure uses a particular indentation pattern
Sequence:
Keep statements in sequence all starting in the same column
Selection:
Indent statements that fall inside selection structure, but not the keywords that form the selection
Loop:
Indent statements that fall inside the loop but not keywords that form the loop
READ name, grossPay, taxes IF taxes > 0 net = grossPay taxes ELSE net = grossPay ENDIF WRITE name, net
End Multiline Structures
READ name, grossPay, taxes IF taxes > 0 net = grossPay taxes ELSE net = grossPay ENDIF WRITE name, net
See the IF/ELSE/ENDIF as constructed above, the ENDIF is in line with the IF. The same applies for WHILE/ENDWHILE etc
Language Independence
Resist the urge to write in whatever language you are most comfortable with, in the long run you will save time. Remember you are describing a logic plan to develop a program, you are not programming!
The Selection Structure
yes amount < 100 no
interestRate = .06
interestRate = .10
IF amount < 100 interestRate = .06
Pseudocode
ELSE Interest Rate = .10 ENDIF
The Looping Structure
In flowcharting one of the more confusing things is to separate selection from looping. This is because each structure use the diamond as their control symbol. In pseudocode we avoid this by using specific keywords to designate looping WHILE/ENDWHILE REPEAT/UNTIL
WHILE / ENDWHILE
Start count = 0
count = 0 WHILE count < 10 ADD 1 to count WRITE count ENDWHILE WRITE The End
count <10 Write The End
add 1 to count
Mainline count = 0 WHILE count < 10 DO Process ENDWHILE WRITE The End Process ADD 1 to count WRITE count
Modular
write count
Stop
REPEAT / UNTIL
Start count = 0
count = 0 REPEAT ADD 1 to count WRITE count UNTIL count >= 10 WRITE The End Mainline count = 0 REPEAT DO Process UNTIL count >= 10 WRITE The End Process ADD 1 to count WRITE count
add 1 to count
Modular
write count
count <10
Write The End Stop
Advantages & Disadvantages
Flowchart Advantages:
Standardized Visual
Pseudocode Advantages
Easily modified Implements structured concepts Done easily on Word Processor
Flowchart Disadvantages: Pseudocode Disadvantages:
Hard to modify Structured design elements not implemented Special software required Not visual No accepted standard, varies from company to company
Access of Data
The READ statement tells the computer to get a value from an input device and store it in a memory location. How to deal with memory locations? Memory locations are identified by their addresses, we give them names (field names / variable names) using words descriptive to us such as ctr as opposed to a location addresses such as 19087.
Rules for Variable Names
Begin with lowercase letter Contain no spaces Additional words begin with capital Unique names within code Consistent use of names
Working with Fields
Calculations
+ add subtract > < = >= <= <>
Selection
greater than less than equal to greater than or equal to less than or equal to not equal to
* multiply / divide ** or ^ exponentiation () grouping