Back to 课程

Computer-science_A-level_Cie

0% Complete
0/0 Steps
  1. computers-and-components
    6 主题
  2. logic-gates-and-logic-circuits
    2 主题
  3. central-processing-unit-cpu-architecture
    6 主题
  4. assembly-language-
    4 主题
  5. bit-manipulation
    1 主题
  6. operating-systems
    3 主题
  7. language-translators
    2 主题
  8. data-security
    3 主题
  9. data-integrity
    1 主题
  10. ethics-and-ownership
    3 主题
  11. database-concepts
    3 主题
  12. database-management-systems-dbms-
    1 主题
  13. data-definition-language-ddl-and-data-manipulation-language-dml
    1 主题
  14. computational-thinking-skills
    1 主题
  15. algorithms
    14 主题
  16. data-types-and-records
    2 主题
  17. arrays
    2 主题
  18. files
    1 主题
  19. introduction-to-abstract-data-types-adt
    1 主题
  20. programming-basics
    1 主题
  21. constructs
    2 主题
  22. structured-programming
    1 主题
  23. program-development-life-cycle
    2 主题
  24. program-design-
    2 主题
  25. program-testing-and-maintenance
    3 主题
  26. user-defined-data-types
    1 主题
  27. file-organisation-and-access-
    3 主题
  28. floating-point-numbers-representation-and-manipulation
    3 主题
  29. protocols
    2 主题
  30. circuit-switching-packet-switching
    1 主题
  31. processors-parallel-processing-and-virtual-machines
    5 主题
  32. boolean-algebra-and-logic-circuits
    4 主题
  33. purposes-of-an-operating-system-os
    3 主题
  34. translation-software
    3 主题
  35. encryption-encryption-protocols-and-digital-certificates
    3 主题
  36. artificial-intelligence-ai
    4 主题
  37. recursion
    1 主题
  38. programming-paradigms
    4 主题
  39. object-oriented-programming
    7 主题
  40. file-processing-and-exception-handling
    2 主题
  41. data-representation
    5 主题
  42. multimedia
    3 主题
  43. compression
    2 主题
  44. networks-and-the-internet
    11 主题
课 Progress
0% Complete

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

您的邮箱地址不会被公开。 必填项已用 * 标注