Procedural programming is a method of writing software where tasks are broken down into a sequence of step-by-step instructions
Modular design:
It focuses on grouping code into functions and procedures to promote reuse and improve clarity
State and control:
Variables are used to hold the program’s state, while control structures (like selection and iteration) determine the flow of execution throughout the program
Core programming concepts
Variables
Explanation: Storing data values that can change.
x = 10print(x)
Output
10
Constants
Explanation: Storing values that remain unchanged.
Pi = 3.1415print(Pi)
Output
3.1415
Selection
Explanation: Decision-making constructs.
x = 7if x > 5: print("Greater")else: print("Smaller")
name = "Alice"upper_name = name.upper()print(upper_name)
Output
ALICE
File Handling
Explanation: Reading from and writing to files.
with open('file.txt', 'w') as file: file.write("Hello, World!")with open('file.txt', 'r') as file: content = file.read()print(content)
Output
Hello, World!
Boolean Operators
Explanation: Logical operations.
x = 7y = 5is_valid = x > 5 and y < 10print(is_valid)
Output
True
Arithmetic Operators
Explanation: Basic mathematical operations.
x = 5y = 3sum_value = x + yproduct = x * yprint(sum_value, product)
Output
8 15
If you want, I can also add collapsible sections, keywords summaries, or exam-style notes.
Full example
This script greets the user, asks for two numbers, and multiplies them if they are both greater than 10
It gives the user three attempts to provide suitable numbers and asks if they want to continue after each attempt
Finally, it writes the greeting and the last multiplication result to a file
# ConstantsMAX_ATTEMPTS = 3FILENAME = 'output.txt'# Subroutine to greet a userdef greet(name): return "Hello, " + name# Subroutine to multiply two numbersdef multiply(x, y): return x * y# Main programdef main(): name = input("Please enter your name: ") print(greet(name)) # Iteration to allow multiple attempts for attempt in range(MAX_ATTEMPTS): x = int(input("Enter the first number: ")) y = int(input("Enter the second number: ")) # Selection if x > 10 and y > 10: result = multiply(x, y) print(f"The product of {x} and {y} is {result}") else: print("Both numbers should be greater than 10.") # Asking user if they want to continue continue_choice = input("Do you want to continue? (y/n): ") if continue_choice.lower() != 'y': break # File Handling with open(FILENAME, 'w') as file: file.write(greet(name) + "\n") file.write(f"Last multiplication result: {result}") print(f"Results have been saved to {FILENAME}")# Sequence: Calling the main programif __name__ == "__main__": main()
Worked Example
You are working for a library and need to develop a program that calculates the total late fees for overdue books. Provide pseudocode that includes a function to calculate the fee for each book.
How to answer this question:
Notice that the same operation needs to take place against multiple items. This suggests iteration could be used
A function is required to calculate the fee for each book. Simple names for functions make them clear to understand
Think of some data structures to hold the bits of data for this scenario
Many numbers representing each book’s days overdue could be stored in an array
The total late fee could be stored in a variable
Use indentation to show which code is inside a code block e.g. function, if statement, for statement
Only include code comments where you think it’s necessary to explain
The example below contains comments for your understanding
Answer:
Answer that gets full marks:
const DAILY_CHARGE = 1 // Many functions can use this const if they need itfunction calculateFee(days_overdue) IF days_overdue > 0 THEN RETURN days_overdue * DAILY_CHARGE // £1 per day ELSE RETURN 0 ENDIFEND functionfunction calculateTotalFee(books) var total_fee = 0 FOR each days_overdue IN books // days_overdue is an identifier that represents each item in books total_fee = total_fee + calculateFee(days_overdue) // adding the result of the function to the total_fee variable ENDFOR RETURN total_fee // returning the variable back to callerEND functionvar books = [7, 3, 0, 10] // Array of numbers representing each book's overdue daysvar total_fee = calculateTotalFee(books) PRINT "Total Late Fee:", total_fee
This solution contains a function that accepts an array of books and a function that will calculate the fee for a single book
This is well-designed because two smaller functions are better than 1 larger function