Imperative Programming (Cambridge (CIE) A Level Computer Science): Revision Note
Exam code: 9618
Imperative programming (Procedural)
How do I write imperative (procedural) code?
High-level languages such as Python, Java, and Visual Basic support the imperative style
Imperative code can be made more organised and readable by using structured programming principles, such as dividing code into functions and procedures
Before continuing, ensure you’re confident with the basics of programming logic and have a good understanding of structured programming
Imperative programming – pseudocode (no procedures or functions)
Task: Convert a temperature to:
Fahrenheit from Celsius
Celsius from Fahrenheit
Kelvin from Celsius
Rules:
No procedures or functions
Use only global variables
Use a top-down, sequential flow (basic imperative structure)
Imperative pseudocode
// Global variables
DECLARE inputTemp : REAL
DECLARE convertedTemp : REAL
DECLARE choice : INTEGER
OUTPUT "Select conversion type:"
OUTPUT "1. Celsius to Fahrenheit"
OUTPUT "2. Fahrenheit to Celsius"
OUTPUT "3. Celsius to Kelvin"
INPUT choice
OUTPUT "Enter the temperature:"
INPUT inputTemp
IF choice = 1 THEN
SET convertedTemp = (inputTemp * 9 / 5) + 32
OUTPUT "Temperature in Fahrenheit: ", convertedTemp
ELSE IF choice = 2 THEN
SET convertedTemp = (inputTemp - 32) * 5 / 9
OUTPUT "Temperature in Celsius: ", convertedTemp
ELSE IF choice = 3 THEN
SET convertedTemp = inputTemp + 273.15
OUTPUT "Temperature in Kelvin: ", convertedTemp
ELSE
OUTPUT "Invalid option selected."
ENDIF
Walkthrough – What’s happening?
All variables are declared globally
The entire program is written as one long block
There is no reusability (e.g. if you want to convert again, you'd have to rerun the whole thing)
Changes to the program will likely lead to code duplication and harder maintenance
Structured (procedural) programming – pseudocode
Goal: Rewrite the above code using procedures or functions, local variables, and modular logic
// Global variable
DECLARE choice : INTEGER
PROCEDURE main()
OUTPUT "Select conversion type:"
OUTPUT "1. Celsius to Fahrenheit"
OUTPUT "2. Fahrenheit to Celsius"
OUTPUT "3. Celsius to Kelvin"
INPUT choice
IF choice = 1 THEN
CALL convertCtoF()
ELSE IF choice = 2 THEN
CALL convertFtoC()
ELSE IF choice = 3 THEN
CALL convertCtoK()
ELSE
OUTPUT "Invalid option selected."
ENDIF
ENDPROCEDURE
PROCEDURE convertCtoF()
DECLARE inputTemp : REAL
DECLARE result : REAL
OUTPUT "Enter temperature in Celsius:"
INPUT inputTemp
SET result = (inputTemp * 9 / 5) + 32
OUTPUT "Temperature in Fahrenheit: ", result
ENDPROCEDURE
PROCEDURE convertFtoC()
DECLARE inputTemp : REAL
DECLARE result : REAL
OUTPUT "Enter temperature in Fahrenheit:"
INPUT inputTemp
SET result = (inputTemp - 32) * 5 / 9
OUTPUT "Temperature in Celsius: ", result
ENDPROCEDURE
PROCEDURE convertCtoK()
DECLARE inputTemp : REAL
DECLARE result : REAL
OUTPUT "Enter temperature in Celsius:"
INPUT inputTemp
SET result = inputTemp + 273.15
OUTPUT "Temperature in Kelvin: ", result
ENDPROCEDURE
// Start program
CALL main()
Walkthrough – what’s improved?
Logic is divided into reusable blocks (procedures)
Each procedure has local variables
The program is easier to read, maintain, and extend
Only one global variable (
choice
) is used for communicationAdditional features (like repeating conversions or logging) can be added more easily
Summary
Feature | Imperative | Structured (Procedural) |
---|---|---|
Reusability | No reuse | Easy to reuse procedures |
Modularity | All logic in one block | Code divided into named units |
Readability | Can become unclear in longer code | Easier to understand each part |
Variables | All global | Mix of global and local |
Maintenance | Changes affect entire block | Easier to update specific parts |
Ideal for real-world apps? | Not ideal | Industry standard approach |
You've read 0 of your 5 free revision notes this week
Unlock more, it's free!
Did this page help you?