INFORMATION TECHNOLOGY
PAPER 1
GRADE 12 
NSC EXAMS
PAST PAPERS AND MEMOS NOVEMBER 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, C and D (pages 3–9) include the marking grid for each  question and a table for a summary of the learner's marks. 
  •  Annexures E, F, G and H (pages 10–23) contain examples of a programming  solution for QUESTION 1 to QUESTION 4 in programming code. 
  • Copies of Annexures A, B, C, D 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 

CENTRE NUMBER: 

EXAMINATION NUMBER: 

QUESTION 

DESCRIPTION 

MAX.  

MARKS

LEARNER'S MARKS

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

   

1.1 

Panel [1.1 – Display heading] 
Set the panel colour to lime ✔ 
Set the font colour to red ✔ 
Set the font size to 20 pt ✔ 
Set the panel caption to 'Information Technology Paper 1' ✔

4

 

1.2 

Button [1.2 – Volume] 
Declaration of radius and height variables ✔ 
Extract the height and radius from the edit ✔ 
Convert both to real values ✔ 
Calculate volume pi *✔ sqr(rRadius) ✔
* (rHeight -1) ✔ Display message ✔and value ✔ formatted to one decimal ✔
NOTE: sqr(rRadius); rRadius*rRadius; Power(rRadius,2)

9

 

1.3 

Button [1.3 – Display factors] 
Declaration of suitable variables for this solution ✔ 
Clear the rich edit output area ✔ 
Initialise factor counter  
Randomly generate number ✔ between 5 and 50 ✔ 
Loop ✔ from 1 to random number ✔(Accept variations)  Test if number modulus loop variable ✔ is 0 ✔ 
 Display the value of the loop variable ✔ 
Increment factor counter ✔  
Test if number of factors = 2 ✔ 
Display the random number ✔and a message to indicate  value is prime number ✔

13

 

1.4 

Button [1.4 – Enter line and display commands] 
Display line of instructions ✔ and a blank line  
Initialise steps counter to 0 ✔ 
While/For loop from 1✔ to length of line ✔ 
 Extract character from line at loop-index position ✔ 
 Use CASE or multiple IF's to test 3 characters  
 IF 'S' ✔ 
 Test if number of steps = 10 ✔  
 set message to "Number of forward steps more than 10" ✔  break ✔
(alternative with a while loop: AND Number of steps <=  10) 
 else✔ 
 Increment number of steps forward by 1✔ 
 Set/display message "Step forward" ✔ 
 IF 'R' set/display message to "Turn right" ✔ 
 IF 'L' set/display message to "Turn left" ✔

14

 
 

TOTAL SECTION A 

40

 

ANNEXURE B  
SECTION B 
QUESTION 2: MARKING GRID - DATABASE PROGRAMMING

CENTRE NUMBER: 

EXAMINATION NUMBER: 

QUESTION 

DESCRIPTION 

MAX.  

MARKS

LEARNER'S MARKS

2.1.1 

Button [2.1.1 – Alphabetical list]

3

 

SQL: 
SELECT * FROM tblEmployees ORDER BY Surname ASC

Concepts: 
SELECT all fields ✔ 
FROM Correct table ✔ 
ORDER BY correct field ✔ (ASC not required)

2.1.2 

Button [2.1.2 – Number of children of permanent employees]

5

 

SQL: 
SELECT Surname, FirstName, Children  
FROM tblEmployees 
WHERE Children > 3 AND Permanent = TRUE

Concepts: 
SELECT all the correct fields ✔ 
FROM correct table ✔ 
WHERE  
Conditions: Children > 3 ✔ AND ✔ Permanent = TRUE ✔

2.1.3 

Button [2.1.3 – Employees paid on selected date]

6

 

SELECT PaymentNumber,IDNumber  
FROM tblEmployees, tblPayments 
WHERE tblEmployees.EmployeeNumber =  
tblPayments.EmployeeNumber AND PaymentDate =  #2017/01/17#

Concepts: 
SELECT correct fields ✔  
FROM tblEmployees ✔, tblPayments ✔ 
WHERE clause to link tables ✔ 
AND ✔ correct condition ✔ 
NOTE:  
PaymentDate between # # 
PaymentDate Like “2017/01/17” 
Also accept: INNERJOIN, LEFTJOIN, aliases

2.1.4 

Button [2.1.4 – Delete payment]

3

 

DELETE FROM tblPayments  
WHERE PaymentNumber = 110

Concepts: 
DELETE ✔ 
FROM correct table ✔ 
WHERE correct condition ✔ 
NOTE: 
Accept: *, all fields names, one field name

QUESTION 2: MARKING GRID – CONTINUE

Related Items

2.1.5 

Button [2.1.5 – Total net salaries per month]

8

 

SQL: 
SELECT Month(PaymentDate) AS MonthNum, 
FORMAT(SUM(GrossSalary-Deductions), "Currency")  AS TotalAmountPaid  
FROM tblPayments  
GROUP BY Month(PaymentDate)

Concepts: 
SELECT correct field, MONTH-function ✔ 
AS specified fieldname ✔ (for any one of the 2 calculated fields)
SUM ✔ calculation ✔ currency format ✔ 
FROM correct table ✔ 
GROUP BY✔ Month(PaymentDate) ✔

 

Subtotal: SQL 

[25]

 

2.2.1 

Button [2.2.1 – Temporary employees] 
Move to first record of tblEmployees table ✔ 
Loop while not end of table ✔ 
 IF Permanent = false ✔ 
Display the surname, first name, children ✔ with tabs ✔ in  richedit 
Move to next record ✔ 
NOTE: 
Also accept: IF Permanent = ‘false’

6

 

2.2.2 

Button [2.2.2 – Add an employee] 
Place table in INSERT mode ✔ 
Assign correct String values to the various data fields ✔
Assign correct boolean value to the correct data field ✔
Assign correct integer value to the correct data field ✔
POST the updated field values ✔ 
NOTE: 
Also accept: APPEND in place of INSERT 
Also accept: .UPDATERECORD or any other navigation

5

 

2.2.3 

Button [2.2.3 – Update deductions] 
Place table in EDIT mode ✔ 
Update the deductions field ✔with 1% of gross salary ✔
POST the updated field value ✔ 
NOTE: 
Also accept: .UPDATERECORD or any other navigation

4

 
 

Subtotal: Code constructs 

[15]

 
 

TOTAL SECTION B 

40

 

ANNEXURE C 
SECTION C 
QUESTION 3: MARKING GRID – OBJECT-ORIENTATED PROGRAMMING

CENTRE NUMBER: 

EXAMINATION NUMBER: 

QUESTION 

DESCRIPTION 

MAX.  

MARKS

LEARNER' S MARKS

3.1.1 

Constructor:  
Declaration/Heading ✔with three parameters ✔ 
two String parameters, ✔one integer ✔ 
Assign parameter values to attributes ✔

5

 

3.1.2 

getNumEmployees METHOD: 
Function heading with correct data type ✔ 
Result statement ✔ (result := fNumEmployees)

2

 

3.1.3 

increaseNumEmployees METHOD: 
Procedure name and parameter ✔ 
fNumEmployees:= ✔ fNumEmployees+ parameter value ✔

3

 

3.1.4 

compileCode METHOD: 
Function heading with String data type ✔ 
Correct data type for parameter ✔ 
Code 🡨 first letter of name of restaurant ✔+ last two letters ✔ of  owner name ✔ + year opened ✔ 
Result statement ✔ 
NOTE: 
Also accept:  
Procedure heading with correct parameters ✔ 
Return variable ✔with correct data type ✔ 
Code 🡨 first letter of name of restaurant ✔+ last two letters ✔ of  owner name ✔ + year opened ✔

7

 
 

Subtotal: Object class 

[17]

 

QUESTION 3: MARKING GRID – CONTINUE

QUESTION 

DESCRIPTION 

MAX.  

MARKS

LEARNER' S MARKS

3.2.1 

Button [3.2.1 – Instantiate and display object] 
Instantiate object 
Object name = ✔classname.create ✔ with arguments name of  restaurant, ✔ year opened, ✔ 
and number of employees ✔  
Display the object 
RichEdit component for display✔ Object name ✔toString ✔
NOTE: 
Check order and type of arguments 
Check constructor name

8

 

3.2.2 

Button [3.2.2 – Identification code] 
Call compile code method with correct object name ✔ Owner name as parameter ✔ 
Display the code ✔ in the edit box 

3

 

3.2.3 

Button [3.2.3 – Add employees] 
Extract the number of employees to add ✔ 
Test if the current number of employees ✔ (value from  getMethod) + employees to add ✔<= max number of employees  ✔
 Call the increaseNumEmployees method ✔ with   correct parameter value ✔ 
 Display the updated value ✔ for the number of  employees in the edit box ✔ 
Else ✔ 
 Display a suitable message ✔ in the edit box 

10

 
 

Subtotal: Form class 

[21]

 
 

TOTAL SECTION C 

38

 

ANNEXURE D 
SECTION D 
QUESTION 4: MARKING GRID – PROBLEM-SOLVING

CENTRE NUMBER: 

EXAMINATION NUMBER: 

Question 

DESCRIPTION 

MAX 

MARKS

LEARNER'S  MARKS

4.1 

Button [4.1 – Populate Customer array] 
Read the month from combo box ✔ 
Initialise counter for days in month ✔ 
Assign ✔ and reset file ✔ 
Loop through file ✔ 
Read line ✔ 
Test if the line has the selected month ✔ 
 Increment counter ✔ 
 Find the position of # ✔ Copy number of customers ✔ 
 (retrieving number of customers (2 marks)) 
 Convert to integer ✔and store number of customes in arrCustomers ✔ 
using the days in month variable(counter) as index ✔
Display message to indicate array were successfully populated✔ 
NOTE: 
The counter (initialising,incrementing) can be replaced by using character  manipulation to extract the index from the line of text

14

 

4.2 

Button [4.2 – Display] 
Concepts: 
Extract day of week/column (1) 

  • Read index from combo box (add 1) ✔ 

Filling up spaces/incomplete first week (5) 

  • Initialize output string ✔
  • Loop from 1 ✔ to dayOfWeek index -1 ✔ 
  • Add to output string ✔ tab (#9) ✔ 

Looping through array (2) 

  •  Loop from 1 ✔ to number of days of selected month ✔ 

 Counting the days (1) 

  •  Increase the number of days in the week ✔ using a  nested loop or a separate counter  

 Constructing line to be displayed (4) 

  •  Add to output string ✔ 
  • The day of the month and ✔ 
  • The number of customers in brackets ✔ and 
  • A tab (#9) ✔ 

 Test if line is full and display/end of week (4) 

  •  Test if last day of week reached ✔/or after nested  loop 
    • Display the compiled output line ✔ 
    • Clear the output line ✔ 
    • Reset day of week ✔ 

Display remaining week(1) 

  •  Display the compiled output line ✔

18

 
 

TOTAL SECTION D 

32

 

SUMMARY OF LEARNER'S MARKS:

CENTRE NUMBER: 

 

EXAMINATION NUMBER:

 

SECTION A 

SECTION B 

SECTION C 

SECTION D

 
 

QUESTION 1 

QUESTION 2 

QUESTION 3 

QUESTION 4 

GRAND TOTAL

MAX. MARKS 

40 

40 

38 

32 

150

LEARNER'S  

MARKS

         

1 khiuhyhad
2 kguygs
3 uygyugD

4 iuhguykahd
5 jhguygad
6 kyguygaudg
7 khuauigdui
8 ghuhauihgd
9 kguyguygsd
10 jhbjgayuhgd
11 jhguyjgauyd
12 kjgkyjigaudh
13 jyguyguad
14 jyguygaugd

Last modified on Tuesday, 21 September 2021 09:40