12 original exam-style questions - 8 pages of questions with a full mark scheme - free printable PDF.
FUNCTION Factorial(n)
IF n = 0 THEN
RETURN 1
ELSE
RETURN n * Factorial(n - 1)
ENDIF
ENDFUNCTIONFUNCTION SolveMaze(grid, row, col, target, visited)
IF row < 0 OR row >= LEN(grid) OR col < 0 OR col >= LEN(grid[0]) THEN
RETURN FALSE
ENDIF
IF grid[row][col] = 1 OR visited[row][col] = TRUE THEN
RETURN FALSE
ENDIF
IF row = target[0] AND col = target[1] THEN
RETURN TRUE
ENDIF
____(i)____
IF SolveMaze(grid, row + 1, col, target, visited) = TRUE THEN
RETURN TRUE
ENDIF
IF SolveMaze(grid, row - 1, col, target, visited) = TRUE THEN
RETURN TRUE
ENDIF
IF SolveMaze(grid, row, col + 1, target, visited) = TRUE THEN
RETURN TRUE
ENDIF
IF SolveMaze(grid, row, col - 1, target, visited) = TRUE THEN
RETURN TRUE
ENDIF
____(ii)____
RETURN FALSE
ENDFUNCTIONFUNCTION Fib(n)
IF n <= 1 THEN
RETURN n
ELSE
RETURN Fib(n - 1) + Fib(n - 2)
ENDIF
ENDFUNCTIONFUNCTION BinarySearch(list, target, low, high)
IF low > high THEN
RETURN -1
ENDIF
mid <- (low + high) DIV 2
IF list[mid] = target THEN
RETURN mid
ELSE
IF list[mid] < target THEN
RETURN BinarySearch(list, target, mid + 1, high)
ELSE
RETURN BinarySearch(list, target, low, mid - 1)
ENDIF
ENDIF
ENDFUNCTIONPROCEDURE DFS(graph, vertex, visited)
visited[vertex] <- TRUE
OUTPUT vertex
FOR EACH neighbour IN graph[vertex]
IF visited[neighbour] = FALSE THEN
CALL DFS(graph, neighbour, visited)
ENDIF
ENDFOR
ENDPROCEDUREPROCEDURE InOrder(node)
IF node <> NULL THEN
CALL InOrder(node.left)
OUTPUT node.value
CALL InOrder(node.right)
ENDIF
ENDPROCEDURE| n | returns |
|---|---|
| 1 | 1 |
| 2 | 2 |
| 3 | 6 |
| 4 | 24 |
| 5 | 120 |
FUNCTION SumList(list, n)
IF n = 0 THEN
RETURN 0
ELSE
RETURN SumList(list, n - 1) + list[n - 1]
ENDIF
ENDFUNCTIONFUNCTION FibMemo(n, memo)
IF n <= 1 THEN
RETURN n
ENDIF
IF memo[n] <> -1 THEN
RETURN memo[n]
ENDIF
memo[n] <- FibMemo(n - 1, memo) + FibMemo(n - 2, memo)
RETURN memo[n]
ENDFUNCTIONPROCEDURE Hanoi(n, source, destination, spare)
IF n > 0 THEN
CALL Hanoi(n - 1, source, spare, destination)
OUTPUT "Move disk ", n, " from ", source, " to ", destination
CALL Hanoi(n - 1, spare, destination, source)
ENDIF
ENDPROCEDURE