Question 1
10 marksDid your answer earn the marks?
13 original exam-style questions - 10 pages of questions with a full mark scheme - free printable PDF.
DECLARE bookPrice : REALExplain why REAL is a more appropriate data type than INTEGER for storing the price of a book in pounds.(2)
count <- 0
total <- 0
FOR i <- 1 TO 5
INPUT fine
total <- total + fine
IF fine > 0 THEN
count <- count + 1
ENDIF
NEXT i
average <- total / count
OUTPUT average| i | fine | total | count |
|---|---|---|---|
| 1 | 0 | ___ | ___ |
| 2 | 2.50 | ___ | ___ |
| 3 | 0 | ___ | ___ |
| 4 | 1.20 | ___ | ___ |
| 5 | 3.30 | ___ | ___ |
CASE OF grade
"A" : bonus <- 50
"B" : bonus <- 30
"C" : bonus <- 10
OTHERWISE : bonus <- 0ENDCASECASE OF grade
"A" : bonus = 50
"B" : bonus <- 30
OTHERWISE : bonus <- 0ENDCASEmaxTemp <- -999
INPUT temp
WHILE temp <> -999
IF temp > maxTemp THEN
maxTemp <- temp
ENDIF
INPUT temp
ENDWHILE
OUTPUT maxTemptotal <- 0
FOR row <- 1 TO 3
FOR col <- 1 TO 4
total <- total + scores[row, col]
NEXT col
NEXT row
OUTPUT totalPROCEDURE DoubleValue(BYREF x : INTEGER)
x <- x * 2
ENDPROCEDURE
FUNCTION AddFive(y : INTEGER) RETURNS INTEGER
y <- y + 5
RETURN y
ENDFUNCTION
num1 <- 10
num2 <- 10DoubleValue(num1)num2 <- AddFive(num2) OUTPUT num1 OUTPUT num2
FUNCTION BinarySearch(list : ARRAY[1:8] OF INTEGER, target : INTEGER) RETURNS INTEGER
lower <- 1
upper <- 8
WHILE lower <= upper
mid <- (lower + upper) DIV 2
IF list[mid] = target THEN
RETURN mid
ELSE IF list[mid] < target THEN
lower <- mid + 1
ELSE
upper <- mid - 1
ENDIF
ENDWHILE
RETURN -1
ENDFUNCTIONFUNCTION Mystery(n : INTEGER) RETURNS INTEGER
IF n = 1 THEN
RETURN 1
ELSE
RETURN n * Mystery(n - 1)
ENDIF
ENDFUNCTIONIF grade = "A" THEN
bonus <- 50
ELSE
IF grade = "B" THEN
bonus <- 30
ELSE
IF grade = "C" THEN
bonus <- 10
ELSE
bonus <- 0
ENDIF
ENDIF
ENDIFREPEAT
INPUT temp
IF temp <> -999 THEN
IF temp > maxTemp THEN
maxTemp <- temp
ENDIF
ENDIF
UNTIL temp = -999
OUTPUT maxTemptotal <- 0
FOR col <- 1 TO 4
total <- total + scores[2, col]
NEXT col
average <- total / 4
OUTPUT averageFUNCTION ValidateCode(code : STRING) RETURNS BOOLEAN
valid <- true
IF LEN(code) <> 7 THEN
valid <- false
ELSE
IF MID(code, 3, 1) <> "-" THEN
valid <- false
ENDIF
FOR i <- 1 TO 2
letter <- MID(code, i, 1)
IF (ASC(letter) < ASC("A")) OR (ASC(letter) > ASC("Z")) THEN
valid <- false
ENDIF
NEXT i
FOR i <- 4 TO 7
digit <- MID(code, i, 1)
IF (ASC(digit) < ASC("0")) OR (ASC(digit) > ASC("9")) THEN
valid <- false
ENDIF
NEXT i
ENDIF
RETURN valid
ENDFUNCTIONFUNCTION DoubleValueFunc(x : INTEGER) RETURNS INTEGER
RETURN x * 2
ENDFUNCTIONFUNCTION LinearSearch(list : ARRAY[1:8] OF INTEGER, target : INTEGER) RETURNS INTEGER
FOR i <- 1 TO 8
IF list[i] = target THEN
RETURN i
ENDIF
NEXT i
RETURN -1
ENDFUNCTIONPROCEDURE BubbleSort(BYREF arr : ARRAY[1:n] OF INTEGER, n : INTEGER)
DECLARE i, j, temp : INTEGER
DECLARE swapped : BOOLEAN
swapped <- true
WHILE swapped = true
swapped <- false
FOR j <- 1 TO n - 1
IF arr[j] > arr[j + 1] THEN
temp <- arr[j]
arr[j] <- arr[j + 1]
arr[j + 1] <- temp
swapped <- true
ENDIF
NEXT j
ENDWHILE
ENDPROCEDUREFUNCTION MysteryIterative(n : INTEGER) RETURNS INTEGER
result <- 1
FOR i <- 1 TO n
result <- result * i
NEXT i
RETURN result
ENDFUNCTIONtotal <- 0
count20 <- 0
FOR i <- 1 TO 10
INPUT temp
total <- total + temp
IF temp > 20 THEN
count20 <- count20 + 1
ENDIF
NEXT i
OUTPUT "Days above 20 degrees: ", count20
average <- total / 10
IF total MOD 10 = 0 THEN
OUTPUT "The average is a whole number: ", average
ELSE
OUTPUT "The average is not a whole number: ", average
ENDIFThis checks your answers in your browser, stores nothing on a server and needs no account.