0% found this document useful (0 votes)
86 views20 pages

2nd Last File

This document is the question paper for a computer science exam focusing on fundamental problem-solving and programming skills. It contains 20 pages of questions testing students' knowledge of topics like pseudocode, arrays, abstraction, and algorithms. For each question, students must analyze code snippets, identify errors, explain concepts, and describe algorithm steps without using pseudocode. Calculators are not permitted and responses must be written on the question paper.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
86 views20 pages

2nd Last File

This document is the question paper for a computer science exam focusing on fundamental problem-solving and programming skills. It contains 20 pages of questions testing students' knowledge of topics like pseudocode, arrays, abstraction, and algorithms. For each question, students must analyze code snippets, identify errors, explain concepts, and describe algorithm steps without using pseudocode. Calculators are not permitted and responses must be written on the question paper.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 20

Cambridge International AS & A Level

* 7 3 4 4 0 3 2 3 6 4 *

COMPUTER SCIENCE 9618/21


Paper 2 Fundamental Problem-solving and Programming Skills October/November 2022

2 hours

You must answer on the question paper.

You will need: Insert (enclosed)

INSTRUCTIONS
● Answer all questions.
● Use a black or dark blue pen.
● Write your name, centre number and candidate number in the boxes at the top of the page.
● Write your answer to each question in the space provided.
● Do not use an erasable pen or correction fluid.
● Do not write on any bar codes.
● You may use an HB pencil for any diagrams, graphs or rough working.
● Calculators must not be used in this paper.

INFORMATION
● The total mark for this paper is 75.
● The number of marks for each question or part question is shown in brackets [ ].
● No marks will be awarded for using brand names of software packages or hardware.
● The insert contains all the resources referred to in the questions.

This document has 20 pages. Any blank pages are indicated.

DC (PQ) 302745/3
© UCLES 2022 [Turn over
2

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

1 (a) An algorithm includes a number of complex calculations. A programmer is writing a program


to implement the algorithm and decides to use library routines to provide part of the solution.

State three possible benefits of using library routines in the development of the program.

1 ................................................................................................................................................

...................................................................................................................................................

2 ................................................................................................................................................

...................................................................................................................................................

3 ................................................................................................................................................

...................................................................................................................................................
[3]

(b) The following pseudocode is part of a program that stores names and test marks for use in
other parts of the program.

DECLARE Name1, Name2, Name3 : STRING


DECLARE Mark1, Mark2, Mark3 : INTEGER
INPUT Name1
INPUT Mark1
INPUT Name2
INPUT Mark2
INPUT Name3
INPUT Mark3

(i) The pseudocode needs to be changed to allow for data to be stored for up to 30 students.

Explain why it would be good practice to use arrays to store the data.

...........................................................................................................................................

...........................................................................................................................................

...........................................................................................................................................

...........................................................................................................................................

...........................................................................................................................................

..................................................................................................................................... [3]

© UCLES 2022 9618/21/O/N/22


3

(ii) The following pseudocode statement includes array references:

OUTPUT "Student ", Name[Count], " scored ", Mark[Count]

State the purpose of the variable Count and give its data type.

Purpose .............................................................................................................................

...........................................................................................................................................

Data type ...........................................................................................................................


[2]

(c) The pseudocode statements in the following table may contain errors.

State the error in each case or write ‘NO ERROR’ if the statement contains no error.

Assume that any variables used are of the correct type for the given function.

Statement Error

IF EMPTY ← "" THEN


Status ← IS_NUM(-23.4)
X ← STR_TO_NUM("37") + 5
Y ← STR_TO_NUM("37" + "5")
[4]

© UCLES 2022 9618/21/O/N/22 [Turn over


4

2 A system is being developed to help manage a car hire business. A customer may hire a car for a
number of days.

An abstract model needs to be produced.

(a) Explain the process of abstraction and state four items of data that should be stored each
time a car is hired.

Explanation ...............................................................................................................................

...................................................................................................................................................

Item 1 ........................................................................................................................................

Item 2 ........................................................................................................................................

Item 3 ........................................................................................................................................

Item 4 ........................................................................................................................................
[3]

(b) Identify two operations that would be required to process the car hire data.

Operation 1 ...............................................................................................................................

...................................................................................................................................................

Operation 2 ...............................................................................................................................

...................................................................................................................................................
[2]

© UCLES 2022 9618/21/O/N/22


5

3 A 1D array Data of type integer contains 200 elements. Each element has a unique value.

An algorithm is required to search for the largest value and output it.

Describe the steps that the algorithm should perform.

Do not include pseudocode statements in your answer.

..........................................................................................................................................................

..........................................................................................................................................................

..........................................................................................................................................................

..........................................................................................................................................................

..........................................................................................................................................................

..........................................................................................................................................................

..........................................................................................................................................................

..........................................................................................................................................................

..........................................................................................................................................................

..........................................................................................................................................................

..........................................................................................................................................................

.................................................................................................................................................... [5]

© UCLES 2022 9618/21/O/N/22 [Turn over


6

4 (a) The following diagram shows an Abstract Data Type (ADT) representation of an ordered
linked list. The data item stored in each node is a single character. The data will be accessed
in alphabetical order.

The symbol Ø represents a null pointer.

Start pointer

'C' 'J' 'L' Ø

(i) Nodes with data 'A' and 'K' are added to the linked list. Nodes with data 'J' and 'L' are
deleted.

After the changes, the data items still need to be accessed in alphabetical order.

Complete the diagram to show the new state of the linked list.

Start pointer

'C' 'J' 'L'

[4]

(ii) The original data could have been stored in a 1D array in which each element stores a
character.

For example:

'C' 'J' 'L'

Explain the advantages of making the changes described in part (a)(i) when the data is
stored in the linked list instead of an array.

...........................................................................................................................................

...........................................................................................................................................

...........................................................................................................................................

..................................................................................................................................... [2]
© UCLES 2022 9618/21/O/N/22
7

(iii) Explain the disadvantages of making the changes described in part (a)(i) when the data
is stored in the linked list instead of an array.

...........................................................................................................................................

...........................................................................................................................................

...........................................................................................................................................

..................................................................................................................................... [2]

(b) A program will store data using a linked list like the one shown in part (a).

Explain how the linked list can be implemented.

...................................................................................................................................................

...................................................................................................................................................

...................................................................................................................................................

...................................................................................................................................................

...................................................................................................................................................

...................................................................................................................................................

...................................................................................................................................................

............................................................................................................................................. [4]

© UCLES 2022 9618/21/O/N/22 [Turn over


8

5 A program uses two 1D arrays of type integer. Array1 contains 600 elements and Array2
contains 200 elements.

Array1 contains sample values read from a sensor. The sensor always takes three consecutive
samples and all of these values are stored in Array1.

A procedure Summarise() will calculate the average of three consecutive values from Array1
and write the result to Array2. This will be repeated for all values in Array1.

The diagram below illustrates the process for the first six entries in Array1.

}
Array1 Array2 Comment

10 15 average of first three values

20 41 average of next three values

}
15

40

41

42

Write pseudocode for the procedure Summarise().

..........................................................................................................................................................

..........................................................................................................................................................

..........................................................................................................................................................

..........................................................................................................................................................

..........................................................................................................................................................

..........................................................................................................................................................

..........................................................................................................................................................

..........................................................................................................................................................

..........................................................................................................................................................

..........................................................................................................................................................

..........................................................................................................................................................

..........................................................................................................................................................

..........................................................................................................................................................

..........................................................................................................................................................

..........................................................................................................................................................

.................................................................................................................................................... [5]

© UCLES 2022 9618/21/O/N/22


9

BLANK PAGE

© UCLES 2022 9618/21/O/N/22 [Turn over


10

6 The following pseudocode algorithm attempts to check whether a string is a valid email address.

FUNCTION IsValid(InString : STRING) RETURNS BOOLEAN


DECLARE Index, Dots, Ats, Others : INTEGER
DECLARE NextChar : CHAR
DECLARE Valid : BOOLEAN

Index ← 1
Dots ←0
Ats 0←
Others ← 0
Valid ← TRUE

REPEAT
NextChar ←
MID(InString, Index, 1)
CASE OF NextChar
'.' : Dots Dots + 1 ←
'@' : Ats Ats + 1 ←
IF Ats > 1 THEN
Valid FALSE ←
ENDIF
OTHERWISE : Others Others + 1 ←
ENDCASE

IF Dots > 1 AND Ats = 0 THEN


Valid FALSE ←
ELSE
Index ←
Index + 1
ENDIF

UNTIL Index > LENGTH(InString) OR Valid = FALSE

IF NOT (Dots >= 1 AND Ats = 1 AND Others > 8) THEN


Valid FALSE ←
ENDIF

RETURN Valid

ENDFUNCTION

(a) Part of the validation is implemented by the line:

IF NOT (Dots >= 1 AND Ats = 1 AND Others > 8) THEN

State the values that would result in the condition evaluating to TRUE.

...................................................................................................................................................

...................................................................................................................................................

............................................................................................................................................. [1]

© UCLES 2022 9618/21/O/N/22


11

(b) (i) Complete the trace table by dry running the function when it is called as follows:

Result ← IsValid("Liz.123@big@net")
Index NextChar Dots Ats Others Valid

[5]

(ii) State the value returned when IsValid() is called using the expression shown in
part (b)(i).

..................................................................................................................................... [1]

© UCLES 2022 9618/21/O/N/22 [Turn over


12

7 A simple arithmetic expression is stored as a string in the format:

<Value1><Operator><Value2>

An operator character is one of the following: '+' '−' '*' '/'

Example arithmetic expression strings:


"803+1904"
"34/7"

(a) A procedure Calculate() will:

• take an arithmetic expression string as a parameter


• evaluate the expression
• output the result.

Assume:

• the string contains only numeric digits and a single operator character
• Value1 and Value2 represent integer values
• Value1 and Value2 are unsigned (they will not be preceded by ' + ' or ' − ').

(i) Write pseudocode for the procedure Calculate().

...........................................................................................................................................

...........................................................................................................................................

...........................................................................................................................................

...........................................................................................................................................

...........................................................................................................................................

...........................................................................................................................................

...........................................................................................................................................

...........................................................................................................................................

...........................................................................................................................................

...........................................................................................................................................

...........................................................................................................................................

...........................................................................................................................................

...........................................................................................................................................

...........................................................................................................................................

...........................................................................................................................................

...........................................................................................................................................

© UCLES 2022 9618/21/O/N/22


13

...........................................................................................................................................

...........................................................................................................................................

...........................................................................................................................................

...........................................................................................................................................

...........................................................................................................................................

...........................................................................................................................................

...........................................................................................................................................

...........................................................................................................................................

...........................................................................................................................................

...........................................................................................................................................

...........................................................................................................................................

..................................................................................................................................... [7]

(ii) Calculate() is changed to a function that returns the value of the evaluated
expression.

Write the header for the function in pseudocode.

...........................................................................................................................................

..................................................................................................................................... [1]

(b) A string representing an arithmetic expression could be in the correct format but be impossible
to evaluate.

Give an example of a correctly formatted string and explain why evaluation would be
impossible.

Example string ..........................................................................................................................

Explanation ...............................................................................................................................

...................................................................................................................................................

...................................................................................................................................................
[2]

© UCLES 2022 9618/21/O/N/22 [Turn over


14

8 A teacher is designing a program to perform simple syntax checks on programs written by


students. Student programs are submitted as text files, which are known as project files.

A project file may contain blank lines.

The teacher has defined the first program module as follows:

Module Description
• takes the name of an existing project file as a parameter of type
string
CheckFile()
• returns TRUE if the file is valid (it contains at least 10 non-blank
lines), otherwise returns FALSE

(a) Write pseudocode for module CheckFile().

...................................................................................................................................................

...................................................................................................................................................

...................................................................................................................................................

...................................................................................................................................................

...................................................................................................................................................

...................................................................................................................................................

...................................................................................................................................................

...................................................................................................................................................

...................................................................................................................................................

...................................................................................................................................................

...................................................................................................................................................

...................................................................................................................................................

...................................................................................................................................................

...................................................................................................................................................

...................................................................................................................................................

...................................................................................................................................................

...................................................................................................................................................

...................................................................................................................................................

...................................................................................................................................................

...................................................................................................................................................

© UCLES 2022 9618/21/O/N/22


15

...................................................................................................................................................

...................................................................................................................................................

...................................................................................................................................................

............................................................................................................................................. [7]

© UCLES 2022 9618/21/O/N/22 [Turn over


16

Further modules are defined as follows:

Module Description
• takes a line from a project file as a parameter of type string
CheckLine() • returns zero if the line is blank or contains no syntax error,
otherwise returns an error number as an integer
• takes two parameters:
○ the name of a project file as a string
○ the maximum number of errors as an integer
• uses CheckFile() to test the project file. Outputs an error
CountErrors() message and ends if the project file is not valid
• calls CheckLine() for each line in the project file
• counts the number of errors
• outputs the number of errors or a warning message if the
maximum number of errors is exceeded

(b) CountErrors() is called to check the project file Jim01Prog.txt and to stop if more than
20 errors are found.

Write the pseudocode statement for this call.

...................................................................................................................................................

............................................................................................................................................. [2]

(c) Write pseudocode for module CountErrors(). Assume CheckFile() and CheckLine()
have been written and can be used in your solution.

...................................................................................................................................................

...................................................................................................................................................

...................................................................................................................................................

...................................................................................................................................................

...................................................................................................................................................

...................................................................................................................................................

...................................................................................................................................................

...................................................................................................................................................

...................................................................................................................................................

...................................................................................................................................................

...................................................................................................................................................

...................................................................................................................................................

...................................................................................................................................................
© UCLES 2022 9618/21/O/N/22
17

...................................................................................................................................................

...................................................................................................................................................

...................................................................................................................................................

...................................................................................................................................................

...................................................................................................................................................

...................................................................................................................................................

...................................................................................................................................................

...................................................................................................................................................

...................................................................................................................................................

...................................................................................................................................................

...................................................................................................................................................

...................................................................................................................................................

...................................................................................................................................................

...................................................................................................................................................

...................................................................................................................................................

............................................................................................................................................. [8]

(d) Module CheckLine() includes a check for syntax errors.

Two examples of syntax error that cannot be detected from examining a single line are
those involving selection and iteration.

Give two other examples.

1 ................................................................................................................................................

...................................................................................................................................................

...................................................................................................................................................

2 ................................................................................................................................................

...................................................................................................................................................

...................................................................................................................................................
[2]

© UCLES 2022 9618/21/O/N/22


18

BLANK PAGE

© UCLES 2022 9618/21/O/N/22


19

BLANK PAGE

© UCLES 2022 9618/21/O/N/22


20

BLANK PAGE

Permission to reproduce items where third-party owned material protected by copyright is included has been sought and cleared where possible. Every
reasonable effort has been made by the publisher (UCLES) to trace copyright holders, but if any items requiring clearance have unwittingly been included, the
publisher will be pleased to make amends at the earliest possible opportunity.

To avoid the issue of disclosure of answer-related information to candidates, all copyright acknowledgements are reproduced online in the Cambridge
Assessment International Education Copyright Acknowledgements Booklet. This is produced for each series of examinations and is freely available to download
at www.cambridgeinternational.org after the live examination series.

Cambridge Assessment International Education is part of Cambridge Assessment. Cambridge Assessment is the brand name of the University of Cambridge
Local Examinations Syndicate (UCLES), which is a department of the University of Cambridge.

© UCLES 2022 9618/21/O/N/22

You might also like