Note AcademyNote Academy

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:

AO2 (maximum 9 marks)
AO3 (maximum 6 marks)

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:

evaluating computer systems
making reasoned judgements
presenting conclusions

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.