Back to 课程

Computer-Science-A-level-Ocr

0% Complete
0/0 Steps
  1. 3-3-networks
    8 主题
  2. 3-2-databases
    7 主题
  3. 3-1-compression-encryption-and-hashing
    4 主题
  4. 2-5-object-oriented-languages
    7 主题
  5. 2-4-types-of-programming-language
    4 主题
  6. 2-3-software-development
    5 主题
  7. 2-2-applications-generation
    6 主题
  8. 2-1-systems-software
    8 主题
  9. 1-3-input-output-and-storage
    2 主题
  10. 1-2-types-of-processor
    3 主题
  11. 1-1-structure-and-function-of-the-processor
    1 主题
  12. structuring-your-responses
    3 主题
  13. the-exam-papers
    2 主题
  14. 8-2-algorithms-for-the-main-data-structures
    4 主题
  15. 8-1-algorithms
    10 主题
  16. 7-2-computational-methods
    11 主题
  17. 7-1-programming-techniques
    14 主题
  18. 6-5-thinking-concurrently
    2 主题
  19. 6-4-thinking-logically
    2 主题
  20. 6-3-thinking-procedurally
    3 主题
  21. 6-2-thinking-ahead
    1 主题
  22. 6-1-thinking-abstractly
    3 主题
  23. 5-2-moral-and-ethical-issues
    9 主题
  24. 5-1-computing-related-legislation
    4 主题
  25. 4-3-boolean-algebra
    5 主题
  26. 4-2-data-structures
    10 主题
  27. 4-1-data-types
    9 主题
  28. 3-4-web-technologies
    16 主题
课 Progress
0% Complete

Procedural Programming

What is procedural programming?

  • 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

Explanation

Example

Output

Variables

Storing data values that can change

x = 10print(x)

10

Constants

Storing values that remain unchanged

PI = 3.1415print(PI)

3.1415

Selection

Decision-making constructs

x = 7if x > 5: print("Greater")else: print("Smaller")

Greater

Iteration

Using loops to repeat actions

for i in range(3): print(i)

0, 1, 2

Sequence

Executing statements sequentially

x = 5y = x + 10print(y)

15

Subroutines

Organising code into reusable parts

def greet(name): return "Hello, " + namegreeting = greet("Alice")print(greeting)

Hello, Alice

String Handling

Operations on character strings

name = "Alice"upper_name = name.upper()print(upper_name)

ALICE

File Handling

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)

Hello, World!

Boolean Operators

Logical operations

x = 7y = 5is_valid = x > 5 and y < 10print(is_valid)

True

Arithmetic Operators

Basic mathematical operations

x = 5y = 3sum_value = x + yproduct = x * yprint(sum_value, product)

8, 15

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

# Constants
MAX_ATTEMPTS = 3
FILENAME = 'output.txt' # Subroutine to greet a user
def greet(name): return "Hello, " + name # Subroutine to multiply two numbers
def multiply(x, y): return x * y # Main program
def 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 program
if __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 it function calculateFee(days_overdue) IF days_overdue > 0 THEN RETURN days_overdue * DAILY_CHARGE // £1 per day ELSE RETURN 0 ENDIF
END function function 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 caller
END function var books = [7, 3, 0, 10] // Array of numbers representing each book's overdue days
var 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

Responses

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