12 original exam-style questions - 7 pages of questions with a full mark scheme - free printable PDF.
PROCEDURE CalculateTotal(price, quantity)
total <- price * quantity
RETURN total
ENDPROCEDURE
PROCEDURE PrintReceipt(item, price, quantity)
total <- CalculateTotal(price, quantity)
OUTPUT item, " x ", quantity, " = GBP ", total
ENDPROCEDURE
CALL PrintReceipt("Weekly Puzzle Magazine", 2.50, 4)CLASS ExamResult PRIVATE mark : INTEGER
mark <- startingMark ENDPROCEDURE
RETURN mark ENDFUNCTION ENDCLASS
CLASS Employee PRIVATE name : STRING PRIVATE salary : REAL
name <- n
salary <- s
ENDPROCEDURERETURN name + ", salary GBP " + STR(salary) ENDFUNCTION ENDCLASS
CLASS Teacher ______ PRIVATE subject : STRING ... ENDCLASS(2)
CLASS Shape
PUBLIC FUNCTION CalculateArea() RETURNS REAL
RETURN 0
ENDFUNCTION
ENDCLASS
CLASS Circle INHERITS Shape
PRIVATE radius : REAL
PUBLIC PROCEDURE NEW(r)
radius <- r
ENDPROCEDURE
PUBLIC FUNCTION CalculateArea() RETURNS REAL
RETURN pi * radius ^ 2
ENDFUNCTION
ENDCLASS
CLASS Rectangle INHERITS Shape
PRIVATE width : REAL
PRIVATE height : REAL
PUBLIC PROCEDURE NEW(w, h)
width <- w
height <- h
ENDPROCEDURE
PUBLIC FUNCTION CalculateArea() RETURNS REAL
RETURN width * height
ENDFUNCTION
ENDCLASSFOR EACH s IN shapes OUTPUT s.CalculateArea() NEXT s
CLASS Vehicle PROTECTED make : STRING
make <- m ENDPROCEDURE
RETURN make + ": generic vehicle"
ENDFUNCTION
ENDCLASS
CLASS Car INHERITS Vehicle
PUBLIC FUNCTION Describe() RETURNS STRING
RETURN make + ": car, 4 wheels"
ENDFUNCTION
ENDCLASS
CLASS Motorbike INHERITS Vehicle
PUBLIC FUNCTION Describe() RETURNS STRING
RETURN make + ": motorbike, 2 wheels"
ENDFUNCTION
ENDCLASSfleet <- []fleet.APPEND(NEW Vehicle("Generic Co"))
FOR EACH v IN fleet OUTPUT v.Describe() NEXT v
globalTotal <- 0 FUNCTION AddToGlobalTotal(x) RETURNS REAL globalTotal <- globalTotal + x RETURN globalTotal ENDFUNCTION FUNCTION CelsiusToFahrenheit(c) RETURNS REAL RETURN (c * 9 / 5) + 32 ENDFUNCTION
IF newMark >= 0 AND newMark <= 100 THEN
mark <- newMark
ELSE
OUTPUT "Error: mark must be between 0 and 100"
ENDIF
ENDPROCEDURECLASS LibraryBook PRIVATE title : STRING PRIVATE author : STRING PRIVATE isbn : STRING PRIVATE isOnLoan : BOOLEAN
title <- t
author <- a
isbn <- i
isOnLoan <- FALSE
ENDPROCEDURE
ENDCLASS IF isOnLoan = FALSE THEN
isOnLoan <- TRUE
OUTPUT "Book borrowed successfully"
ELSE
OUTPUT "This book is already on loan"
ENDIF
ENDPROCEDUREsubject <- subj ENDPROCEDURE
CLASS Vehicle PRIVATE annualMileage : REAL
annualMileage <- miles ENDPROCEDURE
RETURN 0 ENDFUNCTION ENDCLASS
CLASS ElectricCar INHERITS Vehicle
PUBLIC FUNCTION CalculateRunningCost() RETURNS REAL
RETURN annualMileage * 0.04
ENDFUNCTION
ENDCLASSPROCEDURE PrintTotalRunningCost(vehicles)
total <- 0
FOR EACH v IN vehicles
total <- total + v.CalculateRunningCost()
NEXT v
OUTPUT "Total running cost: GBP ", total
ENDPROCEDURE