Year 11 Mark Scheme Paper 2
for Mock Examinations 2023
1 Averaging numbers
Oct/Nov 2017 0478/22
2 Selection type
Oct/Nov 2017 0478/22
3 Inefficient code
0478/22/M/J/16
4 2d Arrays question
Max 7
9608/21/M/J/18
This question has been adapted from an AS level question, so there can be more flexibility in
terms of pseudocode. Marking notes: Use Next instead of ENDFOR & unlikely to be asked to
declare variables (So mark removed)
5
0478/22/O/N/20 [
6
9608/41 May/June 2018
8 Logic Gate Question
0478/12/F/M/20
9 Scenario based question.
Read the whole answer, award a mark from both of the following tables and add up the total.
Marks are available for:
• AO2 (maximum 9 marks) • AO3 (maximum 6 marks).
The techniques and the data structures required are listed below. The requirements may be
met using a suitable built-in function from the programming language used (e.g. Python,
VB.NET or Java).
Techniques required:
R1 Calculate health for each card (iteration and totalling)
R2 Outputs for each card (output with appropriate messages).
R3 Description (selection & iteration)
R4 Best attribute (selection)
R5 Calculate, store and output the cards with the strongest attack, defence and health.
(iteration, counting and output with appropriate messages).
Data structures required:
The names underlined must be used as provided in the scenario.
Arrays or lists Monsters & Best_monster (Highest attack, defence & health
may be seen)
Variables Maxattack,maxdefence and maxhealth could be an array or list
Constants Total_Value is 70 could be stored as a constant
Example 15 mark answer in Python
Monsters = [["Aatxe","Basque","Spirit that takes the form of a
bull.",36,17],
["Abaasy","Yakuts","Demons with teeth of iron.",24,21],
["Abada","African","Small type of unicorn reported to live in the lands of
the African Congo.",20,29]]
# To enable storage of maximum attack, defence & health
MaxAttack = ["","","",0,0,0]
MaxDefence = ["","","",0,0,0]
MaxHealth = ["","","",0,0,0]
# Calculates and then adds health to the list
for i in range (len(Monsters)):
health = 70 - (Monsters[i][3] + Monsters[i][4])
Monsters[i].append(health)
#Printing out monster cards
for i in range(len(Monsters)):
print("Name:",Monsters[i][0])
print("Origin:",Monsters[i][1])
# Splits lines
if len(Monsters[i][2])>30:
print(Monsters[i][2][0:30])
print(Monsters[i][2][30::])
else: print(Monsters[i][2])
print("Attack:",Monsters[i][3])
print("Defence:",Monsters[i][4])
print("Health:",Monsters[i][5])
# Calculates best attribute and outputs it
if Monsters[i][3] > Monsters[i][4] and Monsters[i][3] > Monsters[i][5]:
print("Best Attribute is Attack")
elif Monsters[i][4] > Monsters[i][3] and Monsters[i][4] > Monsters[i]
[5]:
print("Best attribute is Defence")
else: print("Best attribute is health")
print("")
#Works out which is the strongest monster and adds to the relevant list
for current_monster in Monsters:
if current_monster[3] > MaxAttack[3]:
MaxAttack=current_monster
if current_monster[4] > MaxDefence[4]:
MaxDefence=current_monster
if current_monster[5] > MaxHealth[5]:
MaxHealth=current_monster
#Prints out strongest monster
print("Strongest Attack")
print(*MaxAttack,sep=',')
print("\nStrongest Defence")
print(*MaxDefence,sep=',')
print("\nBest Health")
print(*MaxHealth,sep=',')