Downloaded from hlayiso.com
SENIOR CERTIFICATE EXAMINATIONS
INFORMATION TECHNOLOGY P1
2018
MARKS: 150
TIME: 3 hours
This question paper consists of 18 pages.
Copyright reserved Please turn over
Skip to contentAll 2018 papers 





View all





Information Technology Grade 12 P1 NSC June 2018 QP (Eng)
Grade 12 Information Technology Paper 1 question paper from the NSC June Exam 2018 (English), 18 pages. Read online or download the free PDF.
Information Technology · Grade 12 · NSC June Exam · 2018. Question paper, 18 pages. Read online or download the PDF.
- Subject
- Information Technology
- Grade
- Grade 12
- Document type
- Question paper
- Year
- 2018
- Exam period
- NSC June Exam
- Paper
- 1
- Curriculum
- CAPS
- Pages
- 18
- File size
- 621.2 KB
Free to read online, no sign-up needed
Loading document…
Loading document…
1 of 18
This exam
NSC June Exam 2018
Questions in this paper
Document textSearch extracted text and jump to a page.
Downloaded from hlayiso.com
Information Technology/P1 2 DBE/2018
SSE
INSTRUCTIONS AND INFORMATION
1. This question paper is divided into THREE sections. Candidates must answer
ALL the questions in each of the THREE sections.
2. The duration of this examination is three hours. Because of the nature of this
examination it is important to note that you will not be permitted to leave the
examination room before the end of the examination session.
3. This question paper is set with programming terms that are specific to the
Delphi programming language.
4. Make sure that you answer the questions according to the specifications that
are given in each question. Marks will be awarded according to the set
requirements.
5. Answer only what is asked in each question. For example, if the question
does not ask for data validation, then no marks will be awarded for data
validation.
6. Your programs must be coded in such a way that they will work with any data
and not just the sample data supplied or any data extracts that appear in the
question paper.
7. Routines, such as search, sort and selection must be developed from first
principles. You may NOT use the built-in features of Delphi for any of these
routines.
8. All data structures must be defined by you, the programmer, unless the data
structures are supplied.
9. You must save your work regularly on the disk/CD/DVD/flash disk you have
been given, or on the disk space allocated to you for this examination
session.
10. Make sure that your examination number appears as a comment in every
program that you code, as well as on every event indicated.
11. If required, print the programming code of all the programs/classes that you
completed. You will be given half an hour printing time after the examination
session.
12. At the end of this examination session you must hand in a disk/CD/DVD/
flash disk with all your work saved on it OR you must make sure that all your
work has been saved on the disk space allocated to you for this examination
session. Ensure that all files can be read.
Copyright reserved Please turn over
Downloaded from hlayiso.com
Information Technology/P1 3 DBE/2018
SSE
13. The files that you need to complete this question paper have been given to
you on the disk/CD/DVD/flash disk or on the disk space allocated to you. The
files are provided in the form of password-protected executable files.
NOTE:
Candidates must use the file DataENGJune2018.exe.
Do the following:
• Double click on the password-protected executable file.
• Click on the extract button.
• Enter the following password: Bks18@Lib*#?
Once extracted, the following list of files will be available in the folder
DataENGJune2018:
SUPPLIED FILES
Question1:
Question1_P.dpr
Question1_P.dproj
Question1_P.res
Question1_U.dfm
Question1_U.pas
Question2:
Book_U.pas
BooksData.txt
BooksDataBackup.txt
Question2_P.dpr
Question2_P.dproj
Question2_P.res
Question2_U.dfm
Question2_U.pas
Question3:
Question3_P.dpr
Question3_P.dproj
Question3_P.res
Question3_U.dfm
Question3_U.pas
Copyright reserved Please turn over
Downloaded from hlayiso.com
Information Technology/P1 4 DBE/2018
SSE
SECTION A
QUESTION 1: GENERAL PROGRAMMING SKILLS
Do the following:
• Open the incomplete program in the Question1 folder.
• Enter your examination number as a comment in the first line of the
Question1_U.pas file.
• Compile and execute the program. The GUI displays FIVE sections labelled
QUESTION 1.1 to QUESTION 1.5. Currently the program has no functionality.
The following user interface is displayed:
• Follow the instructions below to complete the code for EACH section of
QUESTION 1, as described in QUESTION 1.1 to QUESTION 1.5.
1.1 OnCreate Event [Question 1.1]
Write code in the 'OnCreate' event handler of the Form to change the text
displayed on the pnlQ1_1 panel as follows when the program is executed:
• Assign the existing text from the panel to a variable.
• Add a dash ('-') and use the relevant function to also add the system date
to the text.
• Change the text to upper case and display the text in bold.
Example of output:
NOTE: The format of the system date may differ from the example. (6)
Copyright reserved Please turn over
Downloaded from hlayiso.com
Information Technology/P1 5 DBE/2018
SSE
1.2 Button [1.2 - Display]
Write code using the loop counter variable cCounter and a loop to compile
a string containing the letters 'Z' to 'R' in the variable sOutput. Assign the
variable to the edit box to display.
Example of output:
(6)
1.3 The time it takes a student to read a textbook depends on the total number of
words the textbook contains and whether the content is of a technical nature
or not.
1.3.1 Button [1.3.1 - Total number of words]
The average number of words per page in a textbook of standard
size has been declared as 300 in a constant variable called
WordsPerPage.
The user needs to select the number of pages the book contains
from the spin edit component.
Complete the provided code to do the following:
• Declare an integer variable for the number of pages.
• Obtain the value of number of pages from the spin edit
component.
• Use the constant variable and the number of pages to calculate
the total number of words.
• Display the total number of words in the edit box provided.
NOTE: The variable iTotalNumWords has been declared as a
global variable to be used again in QUESTION 1.3.2.
Example of output:
(5)
Copyright reserved Please turn over
Downloaded from hlayiso.com
Information Technology/P1 6 DBE/2018
SSE
1.3.2 Radio group [1.3.2 – Type of book]
Research shows that a student can read a literature book at
the speed of 250 words per minute and a technical book at the
speed of 75 words per minute. These values have been declared
as constant values using the variables WordsLit and WordsTech
respectively. The user needs to select the type of book from the
radio buttons provided.
Write code to do the following to determine the time it should take
a student to read the book:
• Determine the type of book that has been selected.
• Use the global variable iTotalNumWords and the relevant
constant variable to calculate the time (in minutes) it would
take a student to read the book.
• Display the time in edit box edtTimeInMinutes provided.
NOTE: If you were not able to calculate the total number of
pages in QUESTION 1.3.1, assign a value of 33 600 to the
global variable iTotalNumWords to be able to do
QUESTION 1.3.2.
Example of output if the book is a technical book and has
112 pages, which results in 33 600 words, as calculated in
QUESTION 1.3.1:
Example of output if the book is a literature book and has
112 pages, which results in 33 600 words, as calculated in
QUESTION 1.3.1:
(7)
Copyright reserved Please turn over
Downloaded from hlayiso.com
Information Technology/P1 7 DBE/2018
SSE
1.4 Combo box [cmbQ1_4]
The user needs to select a password from the combo box cmbQ1_4 which
contains a number of encrypted passwords.
Write code to decrypt the selected password according to the instructions
below.
• The first two characters of the password must be moved to the end of the
password.
• If the password contains a hash character (#), replace it with a dollar
character ($), followed by a full stop (.).
Example of output if the password os3%!ko has been selected:
Example of output if the password ay7#@tod has been selected:
(13)
1.5 Button [1.5 - Coordinates]
The formula for a straight line is y = mx + c. The formula must be used to
calculate the value of the y-coordinate of the straight line if the value of x is
entered by the user.
The values of 3 and -2 will be used as the values for m and c in the
formula and has been assigned to the variables iM and iC respectively in the
code provided.
Copyright reserved Please turn over
Downloaded from hlayiso.com
Information Technology/P1 8 DBE/2018
SSE
Write code to display the (x,y) coordinates of a straight line in the output area
using the following instructions:
• Clear the output area.
• Display the heading 'Coordinates' followed by a blank line.
• Obtain the value of x that was entered from edit box edtQ1_5.
• Calculate the value of y using the formula y = mx + c.
Example of the calculation of y if the value 7 is entered for x:
y = mx + c
= 3(7) +(-2)
= 19
• Display the values of coordinates x and y in the output area in
the format shown in the example below, for example (x,y) = (7,19) for the
first coordinate.
• Decrease the value of x by 2 and repeat the previous two steps
(calculate the value of y and display the coordinates) until the value of y
is equal to zero (0) or is a negative value.
Example of output if the value of 7 was entered for the value of x:
Example of output if the value of 12 was entered for the value of x:
(13)
• Ensure that your examination number has been entered as a comment in the first
line of the program file.
• Save your program.
• Print the code if required.
TOTAL SECTION A: 50
Copyright reserved Please turn over
Downloaded from hlayiso.com
Information Technology/P1 9 DBE/2018
SSE
SECTION B
QUESTION 2: OBJECT-ORIENTATED PROGRAMMING
Students are allowed to borrow and return books in the research wing of the library
during the week that they are working on their research projects. Data has been
captured in a text file on the books that were borrowed and returned during a research
week. The librarian needs to use the captured data to see how many copies of the
books are available currently to allow books to be borrowed and returned during the
next research week.
Do the following:
• Open the incomplete project file called Question2_P.dpr in the Question2 folder.
• Add your examination number as a comment in the first line of both the
Question2_U.pas and Book_U.pas files.
• Compile and execute the program. Currently the program has limited functionality.
The following GUI is displayed when the program is executed:
• Complete the code as described in QUESTION 2.1 and QUESTION 2.2 below.
2.1 Complete the code in the TBook object class provided, as described in
QUESTION 2.1.1 to QUESTION 2.1.7 that follow.
2.1.1 Declare the attributes of the class using the information in the table
below.
NAMES OF
DESCRIPTION
ATTRIBUTES
fTitle The title of the book
fCatNum A unique catalogue number assigned to each
book in the library, e.g. D324.2
fNumBooks An integer number that indicates the number of
copies of this book that the library owns, e.g. 12
fNumBooksOut An integer number that indicates the number of
copies of this book that is currently borrowed,
e.g. 5 (4)
Copyright reserved Please turn over
Downloaded from hlayiso.com
Information Technology/P1 10 DBE/2018
SSE
2.1.2 Write code to create a constructor which receives THREE
parameter values (the title, the catalogue number of the book and
the number of copies of the book that the library owns) and
initialises the relevant attributes using the parameter values.
The attribute for the number of copies of the book out (currently
borrowed) must be initialised to zero. (5)
2.1.3 Write an accessor method getCatalogueNumber for the catalogue
number attribute of the book. (2)
2.1.4 Write an accessor method getNumBooksOut for the number of
books out attribute. (2)
2.1.5 Write code for a mutator method setNumBooksOut to receive an
integer as a parameter and set the fNumBooksOut attribute to the
parameter value. (3)
2.1.6 Write code for a method called isBookAvailable that returns
a Boolean value. This method must use the fNumBooks and
fNumBooksOut attributes to determine whether a copy of the book
is currently available in the library or not.
The return value must be true if a book is available or false if not
available. (3)
2.1.7 Write code to create a toString method to return a string formatted
as follows:
The library owns < number of copies owned> copies of the
book titled <book title> [<catalogue number>].
The number of copies currently out is <number of copies of
the book currently borrowed>. (5)
Do the following to complete the code for Buttons 2.2.1, 2.2.2 and 2.2.3 in the
main form unit, as described below.
2.2.1 Button [2.2.1 - Instantiate book object]
The user needs to select the catalogue number of the book from the
combo box. Code has been provided to show the title and the
number of copies of the selected book that the university owns in the
relevant edit boxes.
Write code to do the following:
• Extract the required data items from the relevant components
and instantiate a new objBook object.
Copyright reserved Please turn over
Downloaded from hlayiso.com
Information Technology/P1 11 DBE/2018
SSE
• Call the toString method to display the details of the object in
the output area provided.
• Activate the Update data button.
Example of output for the book if catalogue number G292.6 has
been selected and the object has been instantiated:
(8)
2.2.2 Button [2.2.2 - Update data]
A text file BooksData.txt contains the records of books that were
borrowed and returned during a research week.
The data in the text file is saved in the following format:
<catalogue number of book>#<a character indicating
whether the book was borrowed (B) or returned (R)>
Example of the first six lines of data in the BooksData.txt text file:
G292.6#B
E202.4#B
C284.3#B
D237.9#B
D237.9#B
G292.6#R
The text file must be used to determine the number of copies of the
selected book that were borrowed and returned during the research
week.
Copyright reserved Please turn over
Downloaded from hlayiso.com
Information Technology/P1 12 DBE/2018
SSE
Write code to do the following:
• Test whether the text file BooksData.txt exists or not. Display a
suitable message if the text file does not exist and exit the event
handler.
• Do the following if the text file exists:
o Use a loop and search the text file for all instances of the
catalogue number of the book object.
o Determine how many times the book has been borrowed
(''B'') and returned (''R'') and use these values to determine
the number of copies currently out of the library using the
formula:
BooksOut = Number borrowed – Number returned
o Call the setNumBooksOut method and use the BooksOut
value as the argument.
o Call the toString method to display the updated details of
the book object in the output area provided.
o Activate the Process request button.
Example of output for the Update data button if catalogue number
G292.6 has been selected by the user and an object of this book
has been instantiated:
(20)
2.2.3 Button [2.2.3 - Process request]
Special requests to borrow books from the research wing can be
granted if copies of the book are available. Students who did not
return books that they borrowed during the research week are also
allowed to return the books.
The radio group component must be used to select to either borrow
or return the selected book. If the request to borrow or return the
selected book has been granted, the text file BooksData and the
object details of the book must be updated.
Copyright reserved Please turn over
Downloaded from hlayiso.com
Information Technology/P1 13 DBE/2018
SSE
Write code for the following algorithm to process the borrow or return
request for the selected book:
Set the provided sCode variable to an empty string
If Borrow has been selected from the radio group
Test whether the book is available using the relevant method
Display a suitable message
Set sCode to 'B'
else
Display a message to indicate there are no copies available
If Return has been selected from the radio group
If number of books out is 0
Display 'Invalid request'
else
Display a message indicating that the book has been returned
Set sCode to 'R'
If sCode contains data
Write the catalogue number of the book and the value of sCode
to the BooksData.txt text file in the correct format, e.g. G292.6#R
Clear the selection from the radio group
Update the object's data by executing the code in the btnQ2_2_2
button.
NOTE: A Restore text file button has been provided that can be
used to restore the content of the BooksData text file if the
content of the BooksData text file becomes corrupted
while testing your code. This will copy the data in the
BooksDataBackup text file to the BooksData text file.
Example of output if a student requested to borrow the book titled
Basic Mathematics if copies of this book are available to be
borrowed:
The following updated data should be displayed in the output area:
Example of output if a student requested to borrow the book titled
Basic Mathematics if no copy of this book is available to be
borrowed:
Copyright reserved Please turn over
Downloaded from hlayiso.com
Information Technology/P1 14 DBE/2018
SSE
Example of output if a student requested to return the book titled
Basic Mathematics:
The following updated data should be displayed in the output area:
Example of output if there is a request to return the book titled
Coding in Objects with catalogue number C284.3. All the copies of
this book have been returned. Therefore the request is invalid.
(18)
• Ensure that your examination number has been entered as a comment in the first
line of the class file and the form.
• Save your program.
• Print the code contained in both the class file and form, if required.
TOTAL SECTION B: 70
Copyright reserved Please turn over
Downloaded from hlayiso.com
Information Technology/P1 15 DBE/2018
SSE
SECTION C
QUESTION 3: PROBLEM-SOLVING PROGRAMMING
SCENARIO
The university has three libraries. The first two libraries are open for six days of the
week and the third library is open for five days of the week. There are six staff
members who will be on duty in the libraries on the days the libraries are open. The
manager of the library requires a program to create and maintain a placement
schedule for staff members.
Do the following:
• Compile and execute the program in the Question3 folder. Currently the program
has no functionality.
• Complete the code for each section of the question as described in QUESTION 3.1
to QUESTION 3.3.
Supplied GUI:
The GUI below represents an interface used by the manager of the library to allocate
duties shifts to staff members.
The following code has been provided:
• An array called arrStaff which contains the names of the six staff members.
arrStaff: array [1 .. 6] of String =
('Trevor','Nkosi','Tamzin','Anette','Bongi','Simon');
• The declaration of a two-dimensional array called arrPlacements that will be used
to store the names of staff members according to the days they will be on duty
(columns 1 to 6) in each library (rows 1 to 3):
arrPlacements: array [1 .. 3, 1 .. 6] of String =
(('Nkosi', 'Simon','Anette', 'Bongi', 'Tamzin', 'Trevor'),
('Anette', 'Tamzin','Simon', 'Trevor', 'Bongi', 'Nkosi'),
('Bongi', 'XXXXX', 'Trevor','Nkosi', 'Nkosi', 'Tamzin'));
Copyright reserved Please turn over
Downloaded from hlayiso.com
Information Technology/P1 16 DBE/2018
SSE
• A completed Display procedure that will display the schedule of staff placements
(content of arrPlacements).
Example of the output of a schedule that will be displayed when the display
procedure is called to display the content of arrPlacements. Library 3 can be
closed on any day, as decided by the manager. For this schedule, the manager
has decided to close Library 3 on Day 2, which is represented by 'XXXXX' in array
arrPlacements.
The row and column headings are not part of the content of the two-dimensional
array provided.
NOTE:
• You are NOT allowed to modify supplied data manually. Code must be written to
manipulate the supplied data according to the requirements.
• The use of good programming techniques and modular design must be applied in
the design and coding of your solution.
• NO marks will be awarded for the use of hardcoding to populate array
arrPlacements.
3.1 Combo box [3.1 - Select name]
A staff member may request a schedule of his/her duties.
When a name is selected from the combo box cmbStaff, the following
information must be displayed in the output component provided:
• A heading with the name of the staff member
• The work schedule details of the selected staff member
The format of the work schedule details is as follows:
Day <day number>-Library#<library number>
Example of output if staff member Tamzin was selected from cmbStaff:
Copyright reserved Please turn over
Downloaded from hlayiso.com
Information Technology/P1 17 DBE/2018
SSE
Example of output if staff member Nkosi was selected from cmbStaff:
(10)
3.2 Button [3.2 - Create new schedule]
A one-dimensional array called arrStaff is provided and must be used to
create a new schedule for staff members. The new schedule must be saved in
the two-dimensional array arrPlacements.
Write code to compile a new placement schedule for staff members by
populating the arrPlacements array with the names of staff members as
follows:
Library 1: Each staff member will be placed on duty according to the order of
the appearance of their names in the array arrStaff. The first staff
member in the array will be assigned to Day 1, the second staff
member to Day 2 and so on.
Library 2: Each staff member will be placed on duty in the reverse order of
the contents of the array arrStaff. The first staff member in the
array will be assigned to Day 6, the second staff member to Day 5
and so on:
Library 3: Write code to use an input box to prompt the manager to enter
a day number (1 to 6) on which Library 3 will be closed.
Array arrPlacements must show 'XXXXX' for the day the library is
closed. The staff will be allocated randomly for the remainder of
the days to this library. A test must be done to ensure that the staff
member randomly selected for Library 3 is not already allocated to
Library 1 or Library 2 for that day.
Copyright reserved Please turn over
Downloaded from hlayiso.com
Information Technology/P1 18 DBE/2018
SSE
Example of output if the manager entered Day 3 for Library 3 to be closed:
(20)
• Ensure that your examination number has been entered as a comment in the first
line of the program file.
• Save your program.
• Print the code if required.
TOTAL SECTION C: 30
GRAND TOTAL: 150
Copyright reserved
Study this subject
Recommended for this subject

Memorandum
Information Technology Grade 12 P1 NSC June 2018 Memo (Eng)

Question paper
Information Technology Grade 12 P2 NSC June 2018 QP (Afr)

Question paper
Information Technology Grade 12 P1 Eastern Cape Mock 2018 QP

Question paper
Information Technology Grade 12 P1 Eastern Cape Mock 2018 QP

Question paper
Information Technology Grade 12 P1 Eastern Cape Mock 2018 QP

Question paper
Information Technology Grade 12 P1 Eastern Cape Mock 2018 QP
More from Grade 12 Information Technology

Memorandum
Information Technology Grade 12 P1 NSC June 2025 Memo (Eng)

Memorandum
Information Technology Grade 12 P1 2024 Memo (Eng)

Memorandum
Information Technology Grade 12 P2 2024 Memo (Eng)

Memorandum
Information Technology Grade 12 P1 2023 Memo (Afr)

Memorandum
Information Technology Grade 12 P2 2023 Memo (Afr)

Memorandum