How do I answer an OCR A Level Computer Science programming question?
- Programming questions can appear in both papers
- Paper 1 may include questions that test understanding and interpretation of algorithms and computational thinking principles
- Paper 2 is the dedicated component for assessing the ability to actively design, write, test, and refine programs
- Section A questions can be answered using either pseudocode, flowcharts, bullet points, OCR Exam Reference Language or a high-level programming language
- Section B questions must be answered using either OCR Exam Reference Language or a high-level programming language
- To attempt a programming question that requires the writing of a new program, you should always ask yourself the following five key questions:
- What are the inputs?
- What are the outputs?
- What processes take place?
- What constructs will I need to use?
- Do I need to use subprograms?
Example
Question
Octal is a base 8 number system.
To convert a denary number to base 8:
- the denary value is divided by 8 and the remainder is stored
- the integer value after division is divided by 8 repeatedly until 0 is reached
- the remainders are then displayed in reverse order.
Example 1:
Denary 38
38 / 8 = 4 remainder 6 6
4 / 8 = 0 remainder 4 4
Octal = 46
Example 2:
Denary 57
57 / 8 = 7 remainder 1 1
7 / 8 = 0 remainder 7 7
Octal = 71
Write an algorithm to:
- take a denary value as input from the user
- convert the number to octal
- output the octal value.
You do not need to validate the input from the user.
Write your algorithm using pseudocode or program code.
[6 marks]
What are the inputs? What are the outputs? What processes take place?
- take a denary value as input from the user
- the denary value is divided by 8 and the remainder is stored
- the integer value after division is divided by 8 repeatedly until 0 is reached
- the remainders are then displayed in reverse order.
- output the octal value.
What constructs will I need to use?
- Sequence
- Calculating the remainder after division by 8 (
MOD) - Calculating integer after division by 8 (
DIV) - Ensure remainders are displayed in reverse order
- Calculating the remainder after division by 8 (
- Iteration
- the number of divisions needed depends on the size of the input
- You don’t know how many remainders to generate in advance
- You need a repeat-until-0 process, which is best represented by a
WHILEloop
Do I need to use subprograms?
- This program can be written without the need to use a subprogram (function or procedure)
Pseudocode
number = input(“Enter a number”)
endResult = ""
while number != 0
remainder = number MOD 8
number = number DIV 8
endResult = str(remainder) + str(endResult)
endwhile
print endResult