8.2: Understanding Algorithms
Exam Board:
Eduqas / WJEC
Specification:
2020 +
What is an algorithm?
An algorithm is a set of instructions, presented in a logical sequence.
​
In an exam you may be asked to read and understand an algorithm that has been written. To prove your understanding you may be asked to respond by actions such as listing the outputs of the algorithm, correcting errors or identifying an error within it.
​
Programmers create algorithm designs as a method of planning a program before writing any code. This helps them to consider the potential problems of the program and makes it easier to start creating source code.
There are two main methods of defining algorithms:
Defining Algorithms - Pseudocode & Flowcharts
Pseudocode
Pseudocode is not a specific programming language but a more general method of describing instructions. It should be unambiguous, and it should not resemble any particular kind of programming language (e.g. Python or Java), so it can theoretically be turned into working code in any language.
​
Generally, pseudocode can be written in any way that is readable and clearly shows its purpose. However, the Eduqas exam board advises that pseudocode for the programming exam should follow the conventions below:
Annotation
{Write your comment in curly brackets}
​
Define data type
price is integer
firstname is string
​
Declare a variable's value
set price = 100
set firstname = "Marcella"
​
Input / output
output "Please enter your first name"
input firstname
Selection (must have indentation)
if firstname = "Steven" then​
output "Hello" + firstname
elif firstname = "Steve" then
output "Please use full name"
else output "Who are you?"
end if
​
Iteration (while loop)
while firstname != "Steven"
output "Guess my name."
input firstname
repeat
Iteration (for loop)
for i in range 10
input item
next i
​
Define a subroutine
Declare Sub1
[Subroutine content indented]
End Sub1
​
Call a subroutine
call Sub1
Flowcharts
A flowchart can be used to visually represent an algorithm. The flowchart symbols are:
Algorithm Examples
Below are two different methods for representing the same algorithm - a program to encourage people to buy items cheaply at a supermarket.
The program allows the price of items in a supermarket to be entered until the total reaches 100. The total price and the number of items entered are tracked as the program loops. Once the total reaches 100 or more, an if statement checks how many items have been entered and a different message is printed if there are 20 or more items, 30 or more items or less than 20 items.
Pseudocode
Flowchart
{This is a program to see how many items you can buy in a supermarket
before you spend over £100}
​
total is integer, itemsentered is integer, itemprice is integer
set total = 0
set itemsentered = 0
​
while total < 100
output "enter the price of the next item"
input itemprice
total = total + itemprice
itemsentered = itemsentered + 1
repeat
if itemsentered >= 20 then
output "You are on your way to saving money."
elif itemsentered => 30 then
output "You're a real money saver."
else output "Look for better deals next time."
end if
Reading Algorithms
In an exam you may be asked to read an algorithm and prove your understanding, most commonly by listing the outputs.
​
Start from the first line and follow the program line by line, recording the value of variables as you go.
​
When you encounter a for loop, repeat the indented code as many times as stated in the range.
Example Algorithm:
Start NewProgram
​
i is integer
maxvalue is integer
​
input maxvalue
​
for i = 1 to maxvalue
output (i * i)
???????
​
output 'program finished'
​
End NewProgram
Example Questions:
1. List the outputs produced by the algorithm if the 'maxvalue' input is 5.
​
2. State the code that has been replaced by '???????' and what the code's purpose is.
Example Answers:
1.
Outputs:
1
4
9
16
25
program finished
2.
Missing Code: next i
Purpose: Moves the loop to the next iteration.
Watch on YouTube
Questo's Questions
8.2 - Understanding Algorithms:
​
1a. Read the algorithm shown on the left and list all outputs in the correct order if the inputs are 2 for height and 72 for weight.
​
1b. Give the code that is missing from line 25.