« previous | next» |

**3.3 Pseudocode and Flowcharts**

Good, logical programming is developed through good pre-code planning and organization. This is assisted by the use of pseudocode and program flowcharts.

** Flowcharts** are written with
program flow from the top of a page to the bottom. Each command is
placed in a box of the appropriate shape, and arrows are used to direct
program flow. The following shapes are often used in flowcharts:

**Pseudocode **is a method of describing
computer algorithms using a combination of natural language and programming
language. It is essentially an intermittent step towards the development
of the actual code. It allows the programmer to formulate their thoughts
on the organization and sequence of a computer algorithm without the need
for actually following the exact coding syntax. Although pseudocode
is frequently used there are no set of rules for its exact implementation.
In general, here are some rules that are frequently followed when writing
pseudocode:

- The usual Fortran symobols are used for arithmetic operations (+, -, *, / , **).
- Symbolic names are used to indicate the quantities being processed.
- Certain Fortran keywords can be used, such as PRINT, WRITE, READ, etc.
- Indentation should be used to indicate branches and loops of instruction.

Here is an example problem, including a flowchart,
pseudocode, and the final Fortran 90 program. This problem and solution
are from Nyhoff, pg 206:

For a given value, *Limit*, what is the smallest
positive integer *Number* for which the sum

* Sum *= 1 + 2 + ... + *Number*

is greater than *Limit*. What is the value
for this *Sum*?

Pseudocode:

Input: An integer
*Limit*

Ouput: Two integers: *Number*
and *Sum*

1. Enter *Limit*

2. Set *Number* = 0.

3. Set *Sum* = 0.

4. Repeat the following:

a. If *Sum *> *Limit*,
terminate the repitition, otherwise.

b. Increment *Number *by
one.

c. Add *Number *to *Sum
*and
set equal to *Sum*.

5. Print *Number* and *Sum*.

Flowchart:

Fortran 90 code:

PROGRAM Summation

! Program to find the smallest
positive integer Number

! For which Sum = 1 + 2 + ...
+ Number

! is greater than a user input
value Limit.

IMPLICIT NONE

! Declare variable names and types

INTEGER :: Number, Sum, Limit

! Initialize Sum and Number

Number = 0

Sum = 0

! Ask the user to input Limit

PRINT *, "Enter the value for which
the sum is to exceed:"

READ *, Limit

! Create loop that repeats until the smallest value for Number is found.

DO

IF (Sum >
Limit) EXIT ! Terminate repetition once Number
is found

! otherwise
increment number by one

Number = Number
+ 1

Sum = Sum
+ 1

END DO

! Print the results

PRINT *, "1 + ... + ", Number, "=", Sum, ">", Limit

END PROGRAM

« previous | next» |