Structured Programming

In a high-level, procedural language such as Pascal, Visual Basic, Python or C#, an algorithm can be implemented using just three basic structures:

• Sequence
• Selection
• Iteration

Sequence

A sequence consists of one or more statements following one after the other (all programs use sequence, you write them in a specific order).

Here is an example written in pseudocode:

hoursWorked = USERINPUT
hourlyRate = USERINPUT
totalCharge = hoursWorked * hourlyRate
OUTPUT “Total charge: ”, totalCharge


Selection

Selection is implemented using an IF…THEN…ELSE statement, it essentially makes a choice between one path or another.

Here is a pseudocode example:

IF sunIsShining THEN
takeSunhat
ELSE
takeUmbrella
ENDIF


The IF statement can also use ELSE IF to create more complex selection statements.

Here is a pseudocode example:

IF sunIsShining THEN
takeSunhat
ELSE if Raining
takeUmbrella
ELSE
takeCoat
ENDIF


Some languages also have a CASE statement (switch case in C#). This allows you to replicate complex IF statements in a more straight forward way.

Here is a pseudocode example:

SWITCH (sun)
CASE Shining:
TakeSunHat
CASE NotShining
TakeUmbrella
END SWITCH


Iteration / Repetition

Iteration means repetition. Most high level languages have three iterative structures:

Unknown number of iterations, even potentially none

WHILE condition
statements
ENDWHILE


Given number of iterations

FOR x = n to m
statements
ENDFOR


Unknown number of iterations, but definitely once

REPEAT
statements
UNTIL condition


Structured Programming

Structured programming is only possible because the structures are built in to programming languages like Python, Java, VB and C#.

Early programming languages had no iterative statements and a selection statement could only be written like this:

IF (condition) GO TO label


This made it difficult to follow as your program jumped from one place to another. Each goto command jumped to a new place in the program without having any way to get back. In some languages GOSUB was also possible, this jumped to a label but would return once the code for the label was completed. This was achieved using the RETURN command.

An example of this approach is:

    n = 1
LABEL1
a = USERINPUT
b = a * a
OUTPUT “Square = ”, b
n = n + 1
IF n < 5 GOTO LABEL1


Structured programming is a method of writing a computer program which uses:

• Top-down analysis for problem-solving
• Modularization for program structure and organisation
• Structured code for the individual modules.