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
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
ANNEXURE E: SOLUTION FOR QUESTION 2
OBJECT CLASS
MAIN FORM UNIT: QUESTION2-U.PAS
ANNEXURE F: SOLUTION FOR QUESTION 3
Last modified on Wednesday, 01 September 2021 09:57