INFORMATION TECHNOLOGY
PAPER 1
GRADE 12 
AMENDED SENIOR CERTIFICATE EXAMS
PAST PAPERS AND MEMOS
MAY/JUNE 2018

GENERAL INFORMATION: 

  • These marking guidelines must be used as the basis for the marking session.  They were prepared for use by markers. All markers are required to attend a  rigorous standardisation meeting to ensure that the guidelines are consistently  interpreted and applied in the marking of candidates' work.  
  • Note that learners who provide an alternate correct solution to that given as  example of a solution in the marking guidelines will be given full credit for the  relevant solution, unless the specific instructions in the question paper were not  followed or the requirements of the question were not met. 
  • Annexures A, B and C (pages 3–9) include the marking grid for each question and a table for a summary of the learner’s marks.  
  • Annexures D,E and F (pages 10–20) contain examples of a programming  solution for QUESTION 1 to QUESTION 3 in programming code. 
  • Copies of Annexures A, B, C and the summary of learner’s marks (pages 3–9) should be made for each learner and completed during the marking session.

MEMORANDUM 
ANNEXURE A  

SECTION A 
QUESTION 1: MARKING GRID – GENERAL PROGRAMMING SKILLS

CENTRENUMBER: 

EXAMINATION NUMBER: 

QUESTION 

DESCRIPTION 

MAX. 

MARKS

LEARNER'S MARKS

 

A learner must be penalised only once if the same error is  repeated.

   

1.1 

Form [OnCreate event] 
Read the heading from the panel ✔ 
Uppercase heading✔ 
+ - ✔ + Today’s date ✔ 
Change font style to bold✔ 
Write heading back to panel✔

6

 

1.2 

Button [1.2 – Display] 
Set output string to empty string✔ 
Unconditional loop (for) ✔from ‘Z’ down to ‘R’✔ 
 Concatenate✔ cCounter to output string✔ 
Display output string in output area ✔

6

 

1.3.1 

Button [1.3.1 – Total number of words] 
Declare integer variable for number of pages✔ 
Read number of pages from spin edit✔ 
Determine total number of words✔ 
Write total number of words to edit box ✔as an integer ✔

5

 

1.3.2 

Radiogroup [1.3.2 – Type of book] 
Test if literature selected✔ 
 Divide total number of words✔ by WordsLit variable✔ Else✔ 
 Divide total number of words by WordsTech variable✔ Write total number of words to edit box ✔as an integer ✔

7

 

1.4 

Combo box [cmbQ1_4] 
Declare variables as correct type ✔ 
Read password from combo box✔ 
Copy from password, from position 3, ✔ to end✔ //Copy1 Copy from password, from position 1, to position 2✔ //Copy2 Replace password✔ with copy1 + copy2✔ 
Find position of # in password✔ 
If position > 0✔ 
 Replace # symbol with $ symbol✔ 
 Insert at position + 1✔ a ‘.’ character✔ 
Display decrypted password on label✔

13

 

1.5 

Button [1.5 – Coordinates] 
Clear the output area ✔ 
Display correct heading in output area with open line ✔
Read value for x from edit box✔ and convert to integer ✔
Repeat ✔ 
 (or while with first calculating and displaying first set of coordinates)  Calculate y:= m * x ✔ + c ✔
 Display coordinates: ✔ format (x,y✔) comma and brackets ✔  Decrease x by 2 ✔ 
Until y <= 0 ✔ 
Correct use of a conditional loop ✔

13

 
 

TOTAL SECTION A: 

50

 

ANNEXURE B  

SECTION B 
QUESTION 2: MARKING GRID – OBJECT ORIENTED PROGRAMMING

CENTRE NUMBER: 

EXAMINATION NUMBER: 

QUESTION 

DESCRIPTION 

A learner must be penalised only once if the same error is  repeated.

MAX.  

MARKS

LEARNER' S MARKS

   

2.1.1

Declare attributes 

  •  String: (fTitle, fCatNum) ✔✔ 
  • Integer: (fNumBooks, fNumBooksOut) ✔✔

4

 
       

2.1.2

CONSTRUCTOR 

  • Declaration ✔ 
  • THREE parameters (title, catalogue number, number of  books) ✔ with correct data types ✔ 
  • Assignment of parameter values to attributes ✔ 
  • Initialise attribute fNumBooksOut to 0 ✔

5

 
       

2.1.3

METHOD – getCatalogueNumber  

  •  Declaration of method – function ✔ 
  • Result statement ✔

2

 
       

2.1.4

METHOD – getNumBooksOut 

  • Declaration of method – function ✔ 
  • Result statement ✔

2

 
       

2.1.5

METHOD – setNumBooksOut 

  • Declaration of method – procedure ✔ with parameter ✔
  • Assign number books out to fNumBooksOut attribute ✔

3

 
       

2.1.6

METHOD – isBookAvailable 

  •  Return type – Boolean ✔ 
  • IF statement with correct condition 
    fNumBooks - fNumBooksOut >= 1✔
  • Return correct answer (True = if available and False if not  available) ✔

3

 
       

2.1.7

METHOD – toString 

  • Declaration of method – function with return type string ✔
  • Concatenate string with attributes ✔ 
  • Correct labels ✔ 
  • Correct conversion of integer values ✔ 
  • Return Result ✔

5

 

2.2.1

Button [2.2.1– Instantiate book object] 

  • Extract the title ✔ and number of copies owned from the edit boxes ✔
  • Extract the catalogue number from the combo box ✔ 
  • Instantiate object: objBook := TBook.Create✔(correct order of parameters✔)
  • Use toString method ✔ to display objects' information ✔ in  output area 
  • Make Update data button active ✔

8

 
       

2.2.2 

Button [2.2.2 – Update data] 

  • Test IFBooksData text file exists (FileExists()) ✔
  • If text file does not exists: 
    • Display a suitable message and Exit event ✔ 

IF the BooksData file exists: 

  •  AssignFile ✔ Reset ✔ 
  • Initialise books borrowed counter to zero ✔ 
  • Initialise books returned counter to zero ✔ 
  • Use a WHILE Loop through text file ✔
    • Read a single line of text from text file ✔ 
    • Extract the catalogue number ✔ using a suitable  method ✔ 
    • Test if correct catalogue number ✔ 
  • Extract the action B/R ✔✔ {get last char of string}
  • Increase the respective counter ✔ using case or if  statements ✔ 
  • Calculate books out using counter values ✔ 
  • Call the setNumBooksOut method ✔ with the correct  argument ✔ 
  • Use toString method to display objects' information in  output area ✔ 
  • Make the group box grpProcess active ✔

20

 
       

2.2.3 

Button [2.2.3 – Borrow book] 
Set sCode to '' ✔ 
Test if radiogroup itemIndex = 0✔ 
Test if the isBookAvailable method✔ returns TRUE ✔

  • Display a message that the book was borrowed  successfully ✔
  • Set sCode to 'B'✔ 

Else 
Display a message there are no books available✔

Else 
If getNumberBooksOut = 0 ✔ 
Display ‘Invalid request’ ✔ 

Else 

  • Display a message that the book was returned ✔
  • Set sCode to 'R' ✔ 

Test if sCode is not an empty string ✔ 
AssignFile – BooksData.txt file ✔ 
Append ✔ to text file 
Write a line of text✔ in correct format  
(getCatalogue number#sCode) ✔ 
CloseFile ✔ 
Call button btnQ2_2_2✔

18

 
       
 

TOTAL SECTION B 

70

 

ANNEXURE C 

SECTION C 
QUESTION 3: MARKING GRID – PROBLEM SOLVING

QUESTION 

DESCRIPTION 

MAX.  

MARKS

LEARNER' S MARKS

3.1 

Combo box [3.1 – Select name] 
Extract staff name from combo box cmbStaff ✔ 
Display name as part of heading ✔ 
Loop from 1 to MaxRow✔ 
 Loop from 1 to MaxCol✔ 
 Test if arrPlacements[row,col] ✔ = name✔ 
Display in output area  
 ‘Day’ ✔+ day number (column)+ ‘-‘ + ✔ 
‘Library#’ ✔+ library number (row) ✔

10

 

3.2 

Button [3.2 – Create new schedule] 
Input the day library 3 is closed✔ 
Loop from 1 to MaxRow ✔ 
 Loop from 1 to MaxCol ✔ 
 Test if row = 1✔ (or test using case providing for all 3) 
Assign arrPlacements [r,c] = arrStaff[c] ✔ 
 Test if row = 2 ✔ 
 Assign arrPlacements [r,c] = arrStaff[(MaxCol + 1)✔ -c]✔ 
Test if row = 3 ✔ 
 Test if column value = day closed ✔ 
 Set arrPlacements [r,c] = ‘XXXXX’ ✔ 
 Else ✔ 
 Repeat ✔ 
 Generate a random column from 1 to 6 ✔ 
Until ✔value in  
 array (arrPlacements [row1,col] <> arrStaff[random  number] ✔
 AND ✔ 
 array (arrPlacements [row2,col] <> arrStaff[random  number])✔
 Set arrPlacements [row,col] ✔= arrStaff[random  number] ✔

20

 
 

TOTAL 

30

 

SUMMARY OF LEARNER'S MARKS:

CENTRE NUMBER: 

EXAMINATION NUMBER:

 

SECTION A 

SECTION B 

SECTION C

 
 

QUESTION 1 

QUESTION 2 

QUESTION 3 

GRAND TOTAL

MAX. MARKS 

50 

70 

30 

150

LEARNER'S  

MARKS

       

ANNEXURE D: SOLUTION FOR QUESTION 1 
1 SADFSAD
2 FSFSFSFS
3 SFSGSAdA
ANNEXURE E: SOLUTION FOR QUESTION 2

OBJECT CLASS
4 KJGHJGADJB
5 JHGHGFAGHDVA
MAIN FORM UNIT: QUESTION2-U.PAS
6 KJGJGAD
7 KUHJUYAGDUA
8 KJHGJGAJDG
ANNEXURE F: SOLUTION FOR QUESTION 3
9 KJBJAGD
10 MJBJGVAD
11 KJHJGHAGJ

Last modified on Wednesday, 01 September 2021 09:57