Imperative Programming (Cambridge (CIE) A Level Computer Science): Revision Note

Exam code: 9618

Robert Hampton

Written by: Robert Hampton

Reviewed by: James Woodhouse

Updated on

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

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 communication

  • Additional 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!

Join the 100,000+ Students that ❤️ Save My Exams

the (exam) results speak for themselves:

Did this page help you?

Robert Hampton

Author: Robert Hampton

Expertise: Computer Science Content Creator

Rob has over 16 years' experience teaching Computer Science and ICT at KS3 & GCSE levels. Rob has demonstrated strong leadership as Head of Department since 2012 and previously supported teacher development as a Specialist Leader of Education, empowering departments to excel in Computer Science. Beyond his tech expertise, Robert embraces the virtual world as an avid gamer, conquering digital battlefields when he's not coding.

James Woodhouse

Reviewer: James Woodhouse

Expertise: Computer Science & English Subject Lead

James graduated from the University of Sunderland with a degree in ICT and Computing education. He has over 14 years of experience both teaching and leading in Computer Science, specialising in teaching GCSE and A-level. James has held various leadership roles, including Head of Computer Science and coordinator positions for Key Stage 3 and Key Stage 4. James has a keen interest in networking security and technologies aimed at preventing security breaches.