A Level Computer Science 9618 Paper 22, May/June 2024

Question paper and mark scheme75 marks8 questions

Solve it on ExamPal

Practise

Untimed. Write on the paper and check as you go.

Start

Exam

Timed, with a clock you set, like sitting the real paper.

Start

Opens full screen.

Papers open in

Opening the question paper

Read as textThe questions and the mark scheme as plain text. Easier to read on a phone.

Question paper

9618/22 · May/June 2024

Download PDF
1

Refer to the insert for the list of pseudocode functions and operators.

a

The following table contains pseudocode examples. Each example may contain statements that relate to one or more of the following: • selection • iteration (repetition) • input/output. Complete the table by placing one or more ticks (✓) in each row. Pseudocode example | Selection | Iteration | Input/Output FOR Index ← 1 TO 10 Data[Index] ← 0 NEXT Index WRITEFILE ThisFile, "****" UNTIL Level > 25 IF Mark > 74 THEN READFILE OldFile, Data ENDIF

[4]
b

Program variables have data types as follows: Variable | Data type MyChar | CHAR MyString | STRING MyInt | INTEGER Complete the table by filling in each gap with a function (from the insert) so that each expression is valid. Expression MyInt ← .......................................... (3.1415926) MyChar ← .......................................... ("Elwood", 3, 1) MyString ← .......................................... ( .......................................... (27.509)) MyInt ← .......................................... ( .......................................... ("ABC123", 3))

[4]
c

The variables given in part (b) are chosen during the design stage of the program development life cycle. The choices are to be documented to simplify program maintenance. State a suitable way of documenting the variables and give one piece of information that should be recorded, in addition to the data type.

[2]
2

A program is being developed.

Figure 1 of 4 for question 2
Figure 2 of 4 for question 2
Figure 3 of 4 for question 2
Figure 4 of 4 for question 2
a

An algorithm for part of the program will: • input three numeric values and assign them to identifiers Num1, Num2 and Num3 • assign the largest value to variable Ans • output a message giving the largest value and the average of the three numeric values. Assume the values are all different and are input in no particular order. Complete the program flowchart on page 5 to represent the algorithm.

[5]
b

A different part of the program contains an algorithm represented by the following program flowchart: [Flowchart] Write pseudocode for the algorithm.

[5]
3

A factory needs a program to help manage its production of items. Data will be stored about each item. The data for each item will be held in a record structure of type Component. The programmer has started to define the fields that will be needed as shown in the table. Field | Example value | Comment Item_Num | 123478 | a numeric value used as an array index Reject | FALSE | TRUE if this item has been rejected Stage | 'B' | a letter to indicate the stage of production Limit_1 | 13.5 | any value in the range 0 to 100 inclusive Limit_2 | 26.4 | any value in the range 0 to 100 inclusive

a(i)

Write pseudocode to declare the record structure for type Component.

[4]
a(ii)

A 1D array Item of 2000 elements will store the data for all items. Write pseudocode to declare the Item array.

[2]
b

State three benefits of using an array of records to store the data for all items. 1 ................................................................................................................................................ ................................................................................................................................................... 2 ................................................................................................................................................ ................................................................................................................................................... 3 ................................................................................................................................................ ...................................................................................................................................................

[3]
4

A triangle has sides of length A, B and C. [Diagram] In this example, A is the length of the longest side. This triangle is said to be right-angled if the following equation is true: A × A = (B × B) + (C × C) A procedure will be written to check whether three lengths represent a right-angled triangle. The lengths will be input in any sequence. The procedure IsRA() will: • prompt and input three integer values representing the three lengths • test whether the three lengths correspond to the sides of a right-angled triangle • output a suitable message. The length of the longest side may not be the first value input. Write pseudocode for the procedure IsRA().

[5]
5

A program is being designed in pseudocode. The program contains a global 1D array Data of type string containing 200 elements. The first element has the index value 1. A procedure Process() is written to initialise the values in the array: PROCEDURE Process(Label : STRING) DECLARE Index : INTEGER Index ← 0 INPUT Data[Index] WHILE Index < 200 Index ← Index + 1 CASE OF (Index MOD 2) 0 : Data[Index] ← TO_UPPER(Label) 1 : Data[Index] ← TO_LOWER(Label) OTHERWISE : OUTPUT "Alarm 1201" ENDCASE NEXT Index OUTPUT "Completed " & Index & " times" ENDPROCEDURE

a(i)

The pseudocode contains two syntax errors and one other error. Identify the errors. Syntax error 1 .................................................................................................................... ........................................................................................................................................... Syntax error 2 .................................................................................................................... ........................................................................................................................................... Other error ......................................................................................................................... ...........................................................................................................................................

[3]
a(ii)

The procedure contains a statement that is not needed. Identify the pseudocode statement and explain why it is not needed. Statement .......................................................................................................................... Explanation ....................................................................................................................... ...........................................................................................................................................

[2]
b

After correcting all syntax errors, the pseudocode is translated into program code which compiles without generating any errors. When the program is executed it unexpectedly stops responding. Identify the type of error that has occurred.

[1]
6

A music player stores music in a digital form and has a display which shows the track being played.

a

Up to 16 characters can be displayed. Track titles longer than 16 characters will need to be trimmed as follows: • Words must be removed from the end of the track title until the resulting title is less than 14 characters. • When a word is removed, the space in front of that word is also removed. • Three dots are added to the end of the last word displayed when one or more words have been removed. The table below shows some examples: Original title | Display string (1 to 16) Bat out of Hull | Bat out of Hull Bohemian Symphony | Bohemian... Paperbook Writer | Paperbook Writer Chris Sings the Blues | Chris Sings... Green Home Alabama | Green Home... A function Trim() will: • take a string representing the original title • return the string to be displayed. Assume: • Words in the original title are separated by a single space character. • There are no spaces before the first word or after the last word of the original title. • The first word of the original title is less than 14 characters. Write pseudocode for the function Trim().

[7]
b(i)

Music is stored as a sequence of digital samples. Each digital sample is a denary value in the range 0 to 99999999 (8 digits). The samples are to be stored in a text file. Each sample is converted to a numeric string and 32 samples are concatenated (joined) to form a single line of the text file. Each numeric string is 8 characters in length; leading ‘0’ characters are added as required. Example: Sample | Denary value | String 1 | 456 | "00000456" 2 | 48 | "00000048" 3 | 37652 | "00037652" ... 32 | 673 | "00000673" The example samples will be stored in the text file as a single line: "000004560000004800037652...00000673" Identify one drawback of adding leading ‘0’ characters to each numeric string.

[1]
b(ii)

Suggest an alternative method of storing the samples which does not involve adding leading ‘0’ characters but which would still allow each individual sample to be extracted.

[1]
b(iii)

State one drawback of the alternative method given in part (b)(ii).

[1]
7

A fitness club has a computerised membership system. The system stores information for each club member: name, home address, email address, mobile phone number, date of birth and exercise preferences. Many classes are full, and the club creates a waiting list for each class. The club adds details of members who want to join a class that is full to the waiting list for that class. When the system identifies that a space is available in one of the classes, a new module will send a text message to each member who is on the waiting list.

Figure 1 of 2 for question 7
Figure 2 of 2 for question 7
a

Decomposition will be used to break the new module into sub-modules (sub-problems). Identify three sub-modules that could be used in the design and describe their use. Sub-module 1 ........................................................................................................................... Use ........................................................................................................................................... ................................................................................................................................................... ................................................................................................................................................... ................................................................................................................................................... Sub-module 2 ........................................................................................................................... Use ........................................................................................................................................... ................................................................................................................................................... ................................................................................................................................................... ................................................................................................................................................... Sub-module 3 ........................................................................................................................... Use ........................................................................................................................................... ................................................................................................................................................... ................................................................................................................................................... ...................................................................................................................................................

[3]
b(i)

A different part of the program is represented by the following state-transition diagram. [Diagram] Complete the table to show the inputs, outputs and next states. Assume that the current state for each row is given by the ‘Next state’ on the previous row. For example, the first Input-A is made when in state S1. If there is no output for a given transition, then the output cell should contain ‘none’. The first two rows have been completed. Input | Output | Next state | | S1 Input-A | none | S3 | Output-W | | none | Input-B | | Input-A | | | | S4

[5]
b(ii)

Identify the input sequence that will cause the minimum number of state changes in the transition from S1 to S4.

[1]
8

A teacher is designing a program to process pseudocode projects written by her students. Each student project is stored in a text file. The process is split into a number of stages. Each stage performs a different task and creates a new file. For example: File name | Comment MichaelAday_src.txt | Student project file produced by student Michael Aday MichaelAday_S1.txt | File produced by stage 1 MichaelAday_S2.txt | File produced by stage 2

a

Suggest a reason why the teacher’s program has been split into a number of stages and give the benefit of producing a different file from each stage. Reason ..................................................................................................................................... ................................................................................................................................................... Benefit ...................................................................................................................................... ...................................................................................................................................................

[2]
b

The teacher has defined the first program module as follows: Module | Description DeleteSpaces() | • called with a parameter of type string representing a line of pseudocode from a student’s project file • returns the line after removing any leading space characters The following example shows a string before and after the leading spaces have been removed: Before: " IF X2 > 13 THEN" After: "IF X2 > 13 THEN" Complete the pseudocode for module DeleteSpaces(). FUNCTION DeleteSpaces(Line : STRING) RETURNS STRING

[6]
c

Two modules are defined: Module | Description DeleteComment() (already written) | • called with a parameter of type string representing a line of pseudocode from a student’s project file • returns the line after removing any comment Stage_2() | • called with two parameters: ○ a string representing an input file name ○ a string representing an output file name • copies each line from the input file to the existing output file having first removed all leading spaces and comments from that line • does not write blank lines to the output file • outputs a final message giving the number of blank lines removed Write pseudocode for module Stage_2(). Modules DeleteComment() and DeleteSpaces() must be used in your solution.

[8]

Mark scheme

9618/22 · May/June 2024

Download PDF

1a · 4 marks

  • 1 mark

    FOR Index ← 1 TO 10 ... NEXT Index: Iteration

  • 1 mark

    WRITEFILE ThisFile, "****": Input/Output

  • 1 mark

    UNTIL Level > 25: Iteration

  • 1 mark

    IF Mark > 74 THEN READFILE OldFile, Data ENDIF: Selection and Input/Output

1b · 4 marks

  • 1 mark

    MyInt ← INT (3.1415926)

  • 1 mark

    MyChar ← MID ("Elwood", 3, 1)

  • 1 mark

    Any of: - MyString ← NUM_TO_STR (INT (27.509)) - MyString ← CHR (INT (27.509)) - MyString ← TO_UPPER( NUM_TO_STR( 27.509)) - MyString ← TO_LOWER( NUM_TO_STR( 27.509))

  • 1 mark

    Any of: - MyInt ← STR_TO_NUM ( RIGHT ("ABC123", 3)) - MyInt ← LENGTH ( RIGHT ("ABC123", 3)) - MyInt ← LENGTH ( LEFT ("ABC123", 3))

1c · 2 marks

  • 1 mark

    stating a suitable way of documenting: - Identifier table

  • 1 mark

    giving one piece of information that should be recorded. examples include: Explanation of what (each) variable is used for The purpose of (each) variable An example of data values stored // Initialisation value

2a · 5 marks

  • 1 mark

    Condition for selecting one of the input numbers as largest value

  • 1 mark

    … and assign to Ans

  • 1 mark

    Condition for selecting largest number for all three number input and assigning to Ans

  • 1 mark

    Average calculated using Num1, Num2 and Num3 and stored in a variable. Reject use of DIV

  • 1 mark

    Output of Ans and average in output symbol / parallelogram

2b · 5 marks

  • 1 mark

    (Outer) conditional loop testing Flag

  • 1 mark

    Correct assignment of Flag from GetStat() in a loop

  • 1 mark

    (Inner) loop checking / counting port // Check if Port is different to 4

  • 1 mark

    … loop for 3 iterations

  • 1 mark

    a call to Reset() in a loop

3a(i) · 4 marks

  • 1 mark

    One mark for TYPE and ENDTYPE statements

  • 1 mark

    One mark for __Item_Num and Reject__ fields

  • 1 mark

    One mark for Stage field

  • 1 mark

    One mark for Limit fields as REAL

3a(ii) · 2 marks

  • 1 mark

    DECLARE Item : ARRAY [1:2000] OF Component (first part: ARRAY dimension)

  • 1 mark

    OF Component (second part: OF data type)

3b · 3 marks

  • 1 mark

    Allows for iteration / can use a loop to access the records / data items

  • 1 mark

    Use of index to directly access a record in the array // Example of simplification of code e.g. use of dot notation Item[1].Stage

  • 1 mark

    Simplifies the code / algorithm // Reduces duplication of code // Program easier to write / understand / maintain / test / debug // Data items/record easier to search / sort / manipulate

4 · 5 marks

  • 1 mark

    Procedure heading and ending and declaration of all variables used

  • 1 mark

    Appropriate prompt and input for each length

  • 1 mark

    One correct length test

  • 1 mark

    All three length tests // selection of which test is required

  • 1 mark

    Output one of two messages following a reasonable attempt at MP3

5a(i) · 3 marks

  • 1 mark

    Syntax: NEXT Index (should be ENDWHILE)

  • 1 mark

    Syntax: '&' used to concatenate an integer (in OUTPUT statement)

  • 1 mark

    Other: Accesses element outside range // Accesses element 0

5a(ii) · 2 marks

  • 1 mark

    Statement: - The OTHERWISE statement

  • 1 mark

    Explanation: - The result of MOD 2 can only be 0 or 1

5b · 1 mark

  • 1 mark

    Run-time

6a · 7 marks

  • 1 mark

    Function heading, ending, parameter and return type

  • 1 mark

    If length of original string <= 16 then return original string

  • 1 mark

    Any Conditional loop...

  • 1 mark

    until string is short enough

  • 1 mark

    Inner conditional loop / second condition to identify word(s) to remove from the end of string // Check to identify word(s) to remove from the end of string

  • 1 mark

    Attempt to strip characters back to space

  • 1 mark

    Correct removal of word/words from end of string and remove final space

6b(i) · 1 mark

  • 1 mark

    A (very) large file is created // redundant zeroes are stored in the file

6b(ii) · 1 mark

  • 1 mark

    Values are delimited by a special character / a separator character // First character indicates sample length

6b(iii) · 1 mark

  • 1 mark

    The algorithm to store / extract / separate the individual values is more complex / takes longer to execute / run / process

7a · 3 marks

  • 1 mark

    One mark for name and use (e.g. IdentifyMember() - Identifies a club member who has expressed an interest in a given class)

  • 1 mark

    One mark for name and use (e.g. GetMemberPhoneNumber() - Gets the mobile phone number of a member)

  • 1 mark

    One mark for name and use (e.g. CreateMessage() - Generates a text message to a member / SendMessage() - Sends a text message to a member in the waiting list)

7b(i) · 5 marks

  • 1 mark

    Row 3: Input-A | Output-W | S3

  • 1 mark

    Row 4: Input-B | none | S2

  • 1 mark

    Row 5: Input-B | none | S5

  • 1 mark

    Row 6: Input-A | none | S2

  • 1 mark

    Row 7: Input-A | Output-X | S4

7b(ii) · 1 mark

  • 1 mark

    Input-B, Input-A

8a · 2 marks

  • 1 mark

    Reason: (Program is) easier to design / implement / test / debug / modify

  • 1 mark

    Benefit: Easier to check that each stage works as expected

8b · 6 marks

  • 1 mark

    Loop to length of parameter // Loop until first non-space character in Line

  • 1 mark

    Extract a character in a loop

  • 1 mark

    Identify first non-space character in a loop

  • 1 mark

    Attempt at removing leading spaces in Line

  • 1 mark

    Leading spaces removed from Line // Create new string without leading space

  • 1 mark

    Return a string following a reasonable attempt at removing leading spaces in Line

8c · 8 marks

  • 1 mark

    Procedure heading, parameters, ending

  • 1 mark

    Open both files in correct modes and subsequently close

  • 1 mark

    Loop to EOF(F1)

  • 1 mark

    Read a line from F1 in a loop

  • 1 mark

    Assign return values from DeleteComment() and DeleteSpaces() in a loop

  • 1 mark

    Check return value following both MP5 function calls is not an empty string and if so write to F2 in a loop

  • 1 mark

    Count the blank lines in a loop

  • 1 mark

    Output number of blank lines removed following a reasonable attempt after the loop

Questions

  1. 1
    Question 110 marks
    Mark scheme ›
  2. 2
    Question 210 marks
    Mark scheme ›
  3. 3
    Question 39 marks
    Mark scheme ›
  4. 4
    Question 45 marks
    Mark scheme ›
  5. 5
    Question 56 marks
    Mark scheme ›
  6. 6
    Question 610 marks
    Mark scheme ›
  7. 7
    Question 79 marks
    Mark scheme ›
  8. 8
    Question 816 marks
    Mark scheme ›

More 9618 papers

Other papers from May/June 2024

Solve it on ExamPalStart