INFORMATION TECHNOLOGY
PAPER 1
GRADE 12 
NSC PAST PAPERS AND MEMOS
FEBRUARY/MARCH 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–8) include the marking grid for each question  and a table for a summary of the learner’s marks.
  • Annexures D, E, and F (pages 9–21) contain examples of a programming  solution for QUESTION 1 to QUESTION 3 in programming code.
  • Copies of Annexures A, B and C (pages 3–8) and the summary of learner’s  marks (page 8) 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 

[Button 1.1 – Total area] 
Extract the radius ✔ convert to real✔ 
Extract the base and height ✔ from edit boxes 
Area of circle = pi * ✔ Sqr(radius) ✔ 
Area of triangles = 0.5 * base * height ✔ * number of triangles✔ Display the area of circle✔ with label ✔ 
Display the area of triangles in total ✔ 
Calculate total area of circle and triangles ✔ 
Display the total area to 2 decimal places ✔

12

 

1.2 

[Button 1.2 – Next blue moon] 
Find position of colon in label ✔ 
Extract moonYear from label ✔ and convert to integer ✔ Repeat 
 Add 3 ✔ to the moonYear ✔ 
Until moonYear > ✔ year of the current system date ✔ Display moonYear ✔ 
Correct loop example repeat...until ✔

9

 

1.3 

[Button 1.3 – Highest common factor] 
Extract number 1 from edit box ✔ convert to integer✔ Extract number 2 from edit box ✔ 
Loop x from 1 ✔ to Minimum (number1,number2) ✔  Test if (number mod x = 0) ✔
AND ✔ (number2 mod x =0) ✔  Set hcf to x ✔
Display hcf in the edit box ✔

10

 

1.4 

Button [1.4 – Remove vowels] 
Extract sentence from edit box ✔ 
Set a temp variable to first character of sentence ✔ Loop x from 2 ✔ to length of sentence ✔ 
 if (sent[x - 1] = ' ') ✔ OR ✔ 
 NOT(upcase✔ (sent[x]) ✔ in ['A', 'E', 'I', 'O', 'U']) ✔  temp = temp + sent[x] ✔  
Display temp in edit box ✔

11

 

1.5 

[Button 1.5 – Slide show] 
for initialising total and group number ✔ 
Set total = 0  
Set group number = 0  
Use a loop ✔ to test if total < SeatsAvailable(constant given) ✔  Use an input box to enter the number of people ✔
  If number of people in group ✔<= (seatsAvailable - total)✔  Increment group number ✔ 
 Increment total by the number of people ✔  Display group number and number of people✔   Else✔ 
 Display message ✔ with correct values ✔ End of loop

12

 
 

TOTAL SECTION A: 

54

 

ANNEXURE B  
SECTION B 
QUESTION 2: MARKING GRID - OBJECT-ORIENTED PROGRAMMING

CENTRE NUMBER: 

EXAMINATION NUMBER: 

QUESTION 

DESCRIPTION 

MAX.  

MARKS

LEARNER'S  MARKS

2.1.1 

Constructor: 
Heading with ONLY four values with✔ 
Three string parameters and one real ✔ 
Assign parameter values to four attributes✔ 
Assign false to fNavigationalStatus attribute✔

4

 

2.1.2 

accessor METHOD: 
Constellation: return type string✔ returns attribute✔

2

 

2.1.3 

setNavigationalStatus PROCEDURE: 
Using a procedure✔ (not function) 
Receive Boolean value✔ 
Set value of fNavigationalStatus attribute✔

3

 

2.1.4 

determineVisibility FUNCTION: 
If distance less than 80✔ 
 Clearly visible✔ 
Else✔ {distance >= 80} 
 If distance <= 900 ✔ 
 If magnitude <= 2 ✔ 
 Hardly visible to the naked eye ✔ 
 Else {magnitude >2}✔ 
 Visible by means of standard optical aid ✔  Else {distance > 900}✔ 
 Only visible by means of specialised optical aid ✔ Set result to visibility value✔

11

 

2.1.5 

toString METHOD 
Add attributes to output string - name, constellation,  magnitude and light years✔ with correct labels ✔ 
If star is navigational star ✔ 
 Add star name ‘ is a navigational star.’ to message✔ Else 
 Add star name ‘ is a passive star.’ to message✔ Set result to concatenated string ✔

6

 

2.2.1 

Button – [2.2.1 - Search holder]: 
Extract the name of the star from the combo box✔ Assign ✔ and reset ✔ 
Initialise Flag/Counter ✔ 
Conditional loop (while/repeat) NOT EOF✔ & NOT Found✔ Read line from text file ✔ 
Compare if line = name of star ✔ 
Read THREE lines from text file ✔ 
Instantiate star object - Create objStarX ✔ (param) ✔ Correct number and order of parameters✔
 objStarX := TStar.Create(parameters) 
 Boolean variable set to false to search array✔  Loop from 1 to length of array✔ 
 Test if star name contained in array✔✔  Set Boolean variable to true✔ 
Call set method for navigational star, ✔ using result of  Boolean variable as parameter ✔ 
Change flag to true ✔ 
Enable panel pnlButtons ✔ 
Test if star is NOT found: 
Display message ✔ 
Activate tab sheet 2 ✔ 
CloseFile✔

24

 

2.2.2 

Button – [2.2.2 - Display]: 
Using toString method to display object✔ 
Load constellation picture from file ✔and display✔

3

 

2.2.3 

Button – [2.2.3 - Visibility]: 
Use the star object to call methods: 
 objStar.getName✔ 
 objStar.determineVisibility✔ 
Display in correct format ✔

3

 
 

TOTAL SECTION B: 

56

 

ANNEXURE C 
SECTION C 
QUESTION 3: MARKING GRID – PROBLEM SOLVING PROGRAMMING

CENTRE NUMBER: 

EXAMINATION NUMBER: 

QUESTION 

DESCRIPTION 

MAX.  

MARKS

LEARNER'S  MARKS

3.1 

Button [3.1 – Start game] 
Read level of difficulty from radio group✔ 
Test for level ✔and assign number of planets to variable✔  Level 1 (50); Level 2 (40); Level 3 (30)  
Display 0 on panel; set ItemIndex of combo boxes to 0 ✔ Clear output area for incorrect guesses ✔ 
Initialise variables for counters✔ 
Populate: 
Populate array with - ✔using loops for rows and columns✔ Repeat correct number of times (while/repeat) ✔ to: Determine random position row ✔and column✔ Test if position does not contain planet ✔ and..   place # in position✔ 
decrease planets to be placed✔ 
Display: 
Clear game board output area✔ 
Loop through rows✔ 
Create output string✔ 
Loop through columns✔ 
If it is a planet, add #✔ to output string 
Else add -✔ to output string  
Display output string in game board✔ 
Enable play button ✔

22

 

3.2 

Button [3.2 - Play] 
Accept row and column from combo box✔ 
Increment number of guesses✔ 
Find character at the position in array✔ 
Test if character is a planet✔ 
 Replace with place holder✔ 
Else✔ 
 Display row ✔and column ✔in area for incorrect  guesses 
Update display on game board ✔ 
Display number of guesses and on panel✔ 
If two planets are found✔ 
 display ‘Won’ message✔ 
Else  
 display ’Lost’ message. ✔

13

 
3.3 Button [3.3 – Reveal planets] 
Loop through rows ✔ 
Create output string✔ 
Loop through columns✔ 
Add array value to output string✔ 
Display output string✔
5  
  TOTAL SECTION C: 40  

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 

54 

56 

40 

150

LEARNER'S  

MARKS

       

annexure 1
annexure 2
annexure 3
annexure 4
annexure 5
annexure 6
annexure 7
annexure 8
annexure 9
annexure 10
annexure 11
annexure 12
annexure 13

Last modified on Wednesday, 11 August 2021 06:48