Gce 2019 CSC P3 PDF

Download as pdf or txt
Download as pdf or txt
You are on page 1of 4

For more free past questions, solutions and notes, visit http://www.gcerevision.

com or
download “kawlo” app on play store
0795 Computer Science 3

CAMEROON GENERAL CERTIFICATE OF EDUCATION BOARD


General Certificate of Éducation Examination

JUNE 2019 ADVANCED LEVEL

Subject Title Computer Science


Paper No. 3 - Practical
Subject Code No. 0795

Two Hours
Carry out ALL the tasks given. For your guidance, the approximate mark for each part of a task is indicated in brackets.

Great importance is attached to the accuracy, layout and labelling of drawings and computer generated outputs.
You are reminded of the necessity for good English and orderly presentation of your answers.
Write algorithms in the answer booklet provided. Also record in your answer booklet any information requested or that
you believe would make it easier to understand how you carried out tasks or answered questions.

You are expected to print out a single copy of relevant fragments of your program at different times. Please notify the
instructor of any required printout that was not done!

When an imperative programming language is required to write program code, either Standard [ISO] Pascal or the
[ANSI] C or C11 programming languages may be used.

If need be, supervisors will assist you in recording details of intermediate work carried out on the computer.
Do not write on the first page of your answer booklet. It is reserved for administrative purposes.
Where information is provided as soft copy, notify the instructors if it is not found in your machine or has not been made
available to you.

Turn Over
For more free past questions, solutions and notes, visit http://www.gcerevision.com or
00/0795/3/B/Q download “kawlo” app on play store
For more free past questions, solutions and notes, visit http://www.gcerevision.com or
download “kawlo” 2 app on play store

Task 1
A two-dimensional array, A, has N rows and N columns, where N is a positive integer.
The following algorithm is written to fill array A with the numbers 1,2,3,,.., N2.
N=input(‘Enter an integer greater than zero’)
K=1
loop for ROW=O to N-1
loop for COLUMNS to N-1
A[ROW][COLUMN]=K
K=K+1
end loop
end loop
Figure 1.

1 In your answer booklet, give the values laid out in a 2 - D array, for N=3, as obtained from the algorithm.
In other words, use the algorithm to insert values in the array, and give a trace of the order in which the values are
inserted into the array.
(5 marks)

Task 2
2. There are many different ways of placing the numbers 1 to N2 into an N x N two-dimensional array. The
following two-dimensional array, with dimensions 5X5, has been filled in a circular (spiral) pattern with
numbers 1 to 52.
An algorithm to fill an NXN two-dimensional array, in a circular (spiral) pattern,
with numbers from 1 to N2 is given as follows:
• initialize Z= 1,
• initialize TOP, BOTTOM, LEFT and RIGHT.
• iterate until the whole array is filled.
• each time Z is placed correctly increase the value of Z by 1.
• fill the elements of the TOP row starting from LEFT to RIGHT.
• increase TOP by 1 before filling the elements of the RIGHT column.
• fill the elements of the RIGHT column starting from TOP to BOTTOM.
• decrease RIGHT by 1 before filling the elements of the BOTTOM row.
• and continue filling the BOTTOM row and LEFT column in a similar
way. adjusting TOP, RIGHT, BOTTOM and LEFT accordingly.

Figure 2

For more free past questions, solutions and notes, visit http://www.gcerevision.com or
download “kawlo” app on play store
For more free past questions, solutions and notes, visit http://www.gcerevision.com or
download “kawlo”3 app on play store

(i) your answer booklet, State the initial values for TOP, BOTTOM, LEFT and RIGHT. (1 mark)
(ii) State the consequence of not increasing TOP by 1 before starting to fill the elements of the
RIGHT column. (1 mark)
(iii) In the algorithm described above, state the indices (subscripts) of the first and the last element
to be filled in the BOTTOM row. (1 mark)

Task 3 (18 marks)


3. Write, in a programming language (PL), a program to fill an NxN two-dimensional array, in a
circular (spiral) pattern, with numbers from 1 to N2 as described above.
You can do that by writing first the following functions/procedures which you will call in the main
program.

(i) The procedure FillRowForward(A, top, left, right, z) which takes the array A the top, left and right as
parameters and iterates through top row from left to right to fill the row. z is as used in the algorithm.
(3 marks)
(ii) The procedure Fill RowBacward(A, bottom, left, right, z) which takes the array A the bottom, left and
right as parameters and iterates through bottom row from right to left to fill the row. (3 marks)

(iii) The procedure Fill Column Downward(A, top, bottom, right, z) which takes the array A the top, bottom
and right as parameters and iterates through the right column from top to bottom to fill the column.
(3 marks)
(iv) The procedure FillColumnUpward (A, top, bottom, left, z) which takes the array A the top, bottom and
left as parameters and iterates through the left column from bottom to top to fill the column. (3 marks)

4. Write the PL function/procedure that calls the functions above appropriately, while adjusting variables top,
bottom, left and right accordingly; these four variables and the 2-D array should be global variables. The
end result should be the array (matrix) filled in a spiral manner. You may use the pseudo-code in figure 2.
(6 marks)

SpiralOrder *
Begin
k=1; initialise top, bottom, left and right;
while k<N*N do
call FillRowForward(A, top, left, right, k);
increment Top by 1;
call FillColumnDownward(A, top, bottom, right, k);
decrement right by 1;
call FillRowBacward(A, bottom, left, right, k);
decrementBottom by 1;
call FillColumnUpward (A, top, bottom, left, k);
incrementLeft by 1;
Endwhile
End

Figure 3.

For more free past questions, solutions and notes, visit http://www.gcerevision.com or
download “kawlo” app on play store
For more free past questions, solutions and notes, visit http://www.gcerevision.com or
download “kawlo” app on play store

Task 4
To test your program;
5. Modify and implement the algorithm in Figure 1, such that instead of inserting the numbers into the matrix,
it should print the numbers already inserted in the matrix, line after line, with equal spaces between the
numbers. After each line is printed the cursor should go to the next line. (4
marks)

6. Save and print your code, run the program and print the output. (2 marks)
7. Adapt the PL procedures in 3i, ii, iii and iv such that instead of inserting the number z into the array cells,
they should rather print the values found in the cells. That is:
• Adapt FillRowForward(A, top,left,right, z) to PrintRowForward(A, top,left,right) so that it prints the
top row. (2 marks)

• Adapt FillRowBacward(A, bottom, left, right, z) to PrintRowBacward(A, bottom, left, right) so that it
prints the bottom row. (2 marks)

• Adapt FillColumnDownward(A, top, bottom, right, z) to PrintColumnDownward(A, top, bottom,


right) so that it prints the right column. (2 marks)

• Adapt FillColumnUpward(A, top, bottom, left, z) to PrintColumnUpward(A, top, bottom, left) so that
it prints the left column. (2 marks)

8. Adapt the PL function (SpiralOrder), implemented in (4) above to PrintSpiralOrder such that it rather
calls the adapted functions PrintRow Forward, PrintRowBacward, PrintColumnDownward,
PrintColumn Upward respectively in places where their Fillprocedure/functions were called. (5 marks)

9. Save and print the code of PrintSpiralOrder. Run the program once more and do a screenshot of the
output when PrintSpiralOrder is called. Print output. (2 marks)
Task 5
10. In your answer booklet, explain briefly how you would adapt each of the printprocedures:
PrintRowForward, PrintRowBacward, PrintColumnDownward, PrintColumnUpward such that printing is
done in the reverse order of insertion. (4 marks)

11. Put the print procedures mentioned in(10) in the order in which they should be called to the procedure
PrintSpiralOrder, such that the printing effectively is in the reverse order when the program runs.
(1 mark)

END
For more free past questions, solutions and notes, visit http://www.gcerevision.com or
download “kawlo” app on play store

You might also like