Computer-science_A-level_Cie
-
computers-and-components6 主题
-
logic-gates-and-logic-circuits2 主题
-
central-processing-unit-cpu-architecture6 主题
-
assembly-language-4 主题
-
bit-manipulation1 主题
-
operating-systems3 主题
-
language-translators2 主题
-
data-security3 主题
-
data-integrity1 主题
-
ethics-and-ownership3 主题
-
database-concepts3 主题
-
database-management-systems-dbms-1 主题
-
data-definition-language-ddl-and-data-manipulation-language-dml1 主题
-
computational-thinking-skills1 主题
-
algorithms14 主题
-
data-types-and-records2 主题
-
arrays2 主题
-
files1 主题
-
introduction-to-abstract-data-types-adt1 主题
-
programming-basics1 主题
-
constructs2 主题
-
structured-programming1 主题
-
program-development-life-cycle2 主题
-
program-design-2 主题
-
program-testing-and-maintenance3 主题
-
user-defined-data-types1 主题
-
file-organisation-and-access-3 主题
-
floating-point-numbers-representation-and-manipulation3 主题
-
protocols2 主题
-
circuit-switching-packet-switching1 主题
-
processors-parallel-processing-and-virtual-machines5 主题
-
boolean-algebra-and-logic-circuits4 主题
-
purposes-of-an-operating-system-os3 主题
-
translation-software3 主题
-
encryption-encryption-protocols-and-digital-certificates3 主题
-
artificial-intelligence-ai4 主题
-
recursion1 主题
-
programming-paradigms4 主题
-
object-oriented-programming7 主题
-
file-processing-and-exception-handling2 主题
-
data-representation5 主题
-
multimedia3 主题
-
compression2 主题
-
networks-and-the-internet11 主题
imperative-programming
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 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 |
Responses