Computer Science · Oct / Nov 2025 · Paper 21 · Question 11
0478
As printed in the paper
The question as text
The scores for each competitor in an archery competition are recorded. The one-dimensional (1D) array uÄØ´°¾wÄ´çè is used to store the names of the competitors. The maximum number of competitors is 30. There are 10 rounds in the competition with a maximum score of 30 per round. The two-dimensional (2D) array uÄØ´°¾{µ¾´çè stores the score in each of the 10 rounds for each competitor. The first index of the array uÄØ´°¾{µ¾´çè is the same as the index of the competitor in uÄØ´°¾wÄ´çè After the 10 rounds have been completed, the highest score and the lowest score for each competitor are discarded. The overall score for each competitor is the total of the remaining 8 scores (after discarding the highest and lowest scores) . A competitor with an overall score of 210 or more moves onto the next competition. A competitor with an overall score between 180 and 209 inclusive becomes a reserve competitor. A competitor with an overall score below 180 does not qualify. Write a program that meets the following requirements: • inputs the total score (out of 30) for each competitor in each round • validates each input is between 0 and 30 inclusive • calculates the overall score for each competitor discarding the highest and lowest scores • outputs the name of each competitor and if they move onto the next competition, are a reserve or do not qualify • calculates and outputs the number of competitors who: é have qualified for the next competition é are reserve competitors é do not qualify. You must use pseudocode or program code and add comments to explain how your code works. You do not need to declare any arrays or variables; assume that this has already been done. All inputs and outputs must contain suitable messages.
Read automatically from the paper; the printed page above is exact.
Show the answer and mark scheme
Use the tables for A02 and A03 below to award a mark in a suitable band using a best fit approach
Then add up the total.
Marks are available for:
Data Structures required names shown underlined must be used as given in the scenario Arrays or lists:
CompetitorName, CompetitorScore
Requirements (techniques)
R1 inputs the score for each round validating the input is in the range 0 to 30 inclusive (input, output, nested iteration, validation)
R2 calculates the score of each competitor discarding the highest and lowest scores of the 10 rounds (nested iteration, output and selection)
R3 outputs the name of the competitor and whether they have qualified, are a reserve or not qualified, output the number of competitors who have qualified, are reserve and not qualified (totalling, output and selection)
Example 15-mark answer in pseudocode.
// programming techniques of iteration, selection, counting, totalling and output are used
// Candidates did not need to declare any arrays or variables.
DECLARE Score : INTEGER
DECLARE Highest : INTEGER
DECLARE Lowest : INTEGER
DECLARE Qualified : INTEGER
DECLARE Reserve : INTEGER
DECLARE NotQualified : INTEGER
Qualified ← 0
Reserve ← 0
NotQualified ← 0
FOR X ← 1 TO 30 //looping for number of competitors
FOR Round ← 1 TO 10 //looping for number of rounds
OUTPUT CompetitorName[X]
OUTPUT "Enter the score for the round: ", Round
INPUT Score
// validation of input for between 0 and 30 inclusive
WHILE Score < 0 OR Score > 30 DO
OUTPUT "The score must be between 0 and 30 inclusive. Please try again." INPUT Score
ENDWHILE
CompetitorScore[X, Round] ← Score // adding score to 2-D array
NEXT Round
NEXT X
// or suitable method of determining how many competitors
FOR X ← 1 TO 30
Count ← 0
Highest ← 0
Score ← 0
Lowest ← 999 // resetting variables for each competitor
FOR Y ← 1 TO 10 // loop through rounds
Score ← Score + CompetitorScore[X, Y]
IF CompetitorScore[X, Y] > Highest // finds highest score
THEN
Highest ← CompetitorScore[X, Y]
ENDIF
IF CompetitorScore[X, Y] < Lowest // finds lowest score
THEN
Lowest ← CompetitorScore[X, Y]
ENDIF
NEXT Y
Score ← Score – Highest – Lowest // calculating score to subtract highest and lowest IF Score >= 210 // competitor has qualified
THEN
OUTPUT "Competitor ", CompetitorName[X], " has qualified"
Qualified ← Qualified + 1
ELSE
IF Score >= 180 AND Score <= 209 // competitor is a reserve competitor
THEN
OUTPUT "Competitor ", CompetitorName[X], " are a reserve"
Reserve ← Reserve + 1
ELSE
OUTPUT "Competitor ", CompetitorName[X], " has not qualified" // competitor not qualified NotQualified ← NOTQualified + 1
ENDIF
NEXT X
OUTPUT "The number of competitors qualified is ", Qualified // output of results OUTPUT "The number of competitors who are a reserve is ", Reserve
OUTPUT "The number of competitors not qualified is ", NotQualified
Marking Instructions in italics
AO2: Apply knowledge and understanding of the principles and concepts of computer science to a given context, including the analysis and design of computational or programming problems
1–3
4–6
7–9
0
No
At least one programming
Some programming techniques
The range of programming creditable
technique has been used.
used are appropriate to the
techniques used is appropriate to response.
Any use of selection, iteration,
problem.
the problem.
counting, totalling, input and
More than one technique seen
All criteria stated for the scenario output.
applied to the scenario, check
have been covered by the use of the list of techniques needed.
appropriate programming techniques, check the list of techniques needed.
Some data has been stored but
Some of the data structures
The data structures chosen are not appropriately.
chosen are appropriate and store
appropriate and store all the data Any use of variables or arrays or
some of the data required.
required.
other language dependent data
More than one data structure
The data structures used store all structures e.g. Python lists.
used to store data required by
the data required by the scenario. the scenario.
Marking Instructions in italics
AO3: Provide solutions to problems by:
1–2
3–4
5–6
0
No
Program seen without relevant
Program seen with some
The program has been fully creditable
comments.
relevant comment(s).
commented.
response.
Some identifier names used are
The majority of identifiers used
Suitable identifiers with names appropriate.
are appropriately named.
meaningful to their purpose have Some of the data structures used
Most of the data structures used
been used throughout. have meaningful names.
have meaningful names.
All of the data structures used have meaningful names. The solution is illogical.
The solution contains parts that
The program is in a logical order. may be illogical.
The solution is inaccurate in
The solution contains parts that
The solution is accurate. many places.
are inaccurate.
Solution logically performs all the Solution contains few lines of
Solution contains lines of code
tasks given in the scenario. Ignore code with errors that attempt to
with some errors that logically
minor syntax errors.
perform a task given in the
perform tasks given in the
scenario.
scenario. Ignore minor syntax
errors.
The solution attempts at least
The solution meets most of the
The solution meets all the one of the requirements.
requirements.
requirements given in the Solution contains lines of code
Solution contains lines of code
question.
that attempt at least one task
that attempts most tasks given in
Solution performs all the tasks given in the scenario.
the scenario.
given in the scenario.
Make a free account to save your answers and see your weak topics and ask the AI why a wrong answer is wrong.

