# Information Technology Grade 12 P1 NSC Supplementary 2018 QP

> Grade 12 Information Technology Paper 1 question paper from the NSC Supplementary Exam 2018 (English), 17 pages. Read online or download the free PDF.

- Page: https://www.hlayiso.com/library/information-technology-p1-feb-march-2018-eng/b597e472-66d8-4450-9eec-70e0a05da3be
- Updated: 2026-09-27
- Subject: Information Technology
- Grade: Grade 12
- Document type: Question paper
- Year: 2018
- Exam period: NSC Supplementary Exam
- Paper: 1
- Curriculum: CAPS
- Pages: 17

Breadcrumbs: [Home](https://www.hlayiso.com/) › [Library](https://www.hlayiso.com/library) › [Grade 12](https://www.hlayiso.com/library/grade-12) › [Information Technology](https://www.hlayiso.com/library/grade-12/information-technology) › [Information Technology Grade 12 P1 NSC Supplementary 2018 QP](https://www.hlayiso.com/library/information-technology-p1-feb-march-2018-eng/b597e472-66d8-4450-9eec-70e0a05da3be)

## About this document

Information Technology · Grade 12 · NSC Supplementary Exam · 2018. Question paper, 17 pages. Read online or download the PDF.

Read it free online on the page above; download the PDF from there.

## Document text

Text extracted from the PDF. Layout, diagrams and tables may not survive extraction.

### Page 1

Downloaded from hlayiso.com

                                  NATIONAL
                             SENIOR CERTIFICATE

                                    GRADE 12

                         INFORMATION TECHNOLOGY P1

                             FEBRUARY/MARCH 2018

MARKS: 150

TIME: 3 hours

                       This question paper consists of 17 pages.

Copyright reserved                                                 Please turn over

### Page 2

Downloaded from hlayiso.com
Information Technology/P1                   2                          DBE/Feb.–Mar. 2018
                                           NSC

INSTRUCTIONS AND INFORMATION

1.      This question paper is divided into THREE sections. Candidates must answer
        ALL the questions in ALL 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 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. Make sure that all files can be read.

Copyright reserved                                                         Please turn over

### Page 3

Downloaded from hlayiso.com
Information Technology/P1                    3                         DBE/Feb.–Mar. 2018
                                            NSC

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 DataENGMarch2018.exe.

        Do the following:

            Double click on the password-protected executable file.
            Click on the extract button.
            Enter the following password: Sp@cE&18

        Once extracted, the following list of files will be available in the folder
        DataENGMarch2018:

        SUPPLIED FILES

        Question 1:
        Image1.jpg
        Image2.jpg
        Question1_P.dpr
        Question1_P.dproj
        Question1_P.res
        Question1_U.dfm
        Question1_U.pas

        Question 2:
        Centaurus.jpg
        Crux.jpg
        Orion.jpg
        Question2_P.dpr
        Question2_P.dproj
        Question2_P.res
        Question2_U.dfm
        Question2_U.pas
        Scorpio.jpg
        Star_U.pas
        StarData.txt

        Question 3:
        Question3_P.dpr
        Question3_P.dproj
        Question3_P.res
        Question3_U.dfm
        Question3_U.pas

Copyright reserved                                                         Please turn over

### Page 4

Downloaded from hlayiso.com
Information Technology/P1                     4                            DBE/Feb.–Mar. 2018
                                             NSC

SECTION A

QUESTION 1: GENERAL PROGRAMMING SKILLS

Do the following:

     Open the incomplete program in the Question 1 folder.
     Enter your examination number as a comment in the first line of the
      Question1_U.pas file.
     Compile and execute the program. The program has no functionality currently.
     The program contains FIVE tab sheets with different unrelated questions.
     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       Button [1.1 – Total area]

          The user must use the edit boxes provided to enter the radius of the circle
          and the base and height of one of the triangles in the figure.

          Write code to do the following:

             Extract the values entered by the user.

             Calculate the area of the circle, the area of the eight triangles in total and
              the total area of the figure using the following formulae:

              Area of circle     = pi x radius2 where the value of pi = 3.14159
              Area of a triangle = ½ x base x height

             Display the area of the circle, area of the eight triangles in total and the
              total area of the figure in the output component provided. The total area
              must be formatted to TWO decimal places.

          Example of input:

Copyright reserved                                                              Please turn over

### Page 5

Downloaded from hlayiso.com
Information Technology/P1                    5                          DBE/Feb.–Mar. 2018
                                            NSC

          Example of output:

                                                                                               (12)

1.2       Button [1.2 – Next blue moon]

          The first blue moon was seen in the year 1862. Thereafter, a blue moon was
          seen every three years.

          Extract the year in which the first blue moon was seen from the lblInfo label.
          Use the year from the system date and the year extracted from the label to
          determine the year when the next blue moon will appear (excluding the
          current year). Display the output in the edit box provided.

          Example of output:

                                                                                               (9)

1.3       Button [1.3 – Highest common factor]

          The user must enter two integer numbers. The highest common factor is the
          largest number that can divide into the two numbers without a remainder.

          Write code to do the following:

             Extract the numbers entered by the user from the edit boxes provided.
             Determine the highest common factor of the two numbers.
             Display the highest common factor in the edit box provided.

          Example of input and output:

                                                                                               (10)

Copyright reserved                                                          Please turn over

### Page 6

Downloaded from hlayiso.com
Information Technology/P1                     6                          DBE/Feb.–Mar. 2018
                                             NSC

1.4       Button [1.4 – Remove vowels]

          The user must enter a sentence in the edit box provided.

          Write code to do the following:

             Delete ALL the vowels from the sentence entered by the user, except
              where the vowel is the first letter of the word.
             Display the sentence after deleting the vowels in the edit box provided.

          Example of output:

                                                                                                (11)

1.5       Button [1.5 – Slide show]
          A space exhibition centre presents a slide show to visitors in their conference
          centre which seats 100 people. Groups of people can attend the slide show
          as long as there are seats available for all the people in the group. Groups
          who can be accommodated will each be assigned a number, starting with the
          value 1 for the first group, 2 for the second group, and so on. If large groups
          are rejected, smaller groups can still be accommodated until all the seats are
          taken.

          Write code to do the following:

             Use an input box to prompt the user to enter the number of people in the
              group. The user must be able to keep on entering the number of people
              for new groups until the total number of attendees reaches 100.

             For each group that is accepted, display the group number and the
              number of people in the group.

             If the number of people in the group exceeds the number of seats
              available, display a suitable message indicating that the group cannot be
              accommodated. The number of seats still available must be part of the
              message.

          NOTE:       Even though some of the groups will not be accepted to attend the
                      slide show, the program must continue to allow the user to enter
                      groups until a total of 100 people are accepted to attend the slide
                      show.

Copyright reserved                                                           Please turn over

### Page 7

Downloaded from hlayiso.com
Information Technology/P1                     7                           DBE/Feb.–Mar. 2018
                                             NSC

          Example of input and output if the number of people in the first group is 27:

          Example of input and output if the number of people in the second group is 34:

          Example of output if the next group that wants to attend the slide show
          consists of 50 people:

                                                                                                 (12)

   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:             54

Copyright reserved                                                            Please turn over

### Page 8

Downloaded from hlayiso.com
Information Technology/P1                     8                        DBE/Feb.–Mar. 2018
                                             NSC

SECTION B

QUESTION 2: OBJECT-ORIENTATED PROGRAMMING

A constellation is a group of related stars that covers the night sky. Some stars are
considered to be navigational, while others are passive. A navigational star is used to
assist with direction and movement.

Do the following:

   Open the incomplete program in the Question 2 folder.
   Open the incomplete object class Star_U.pas.
   Enter your examination number as a comment in the first line of both the
    Question2_U.pas file and the Star_U.pas file.
   Compile and execute the program. Currently the program has no functionality.

The following user interface is displayed:

   Complete the code for this program, as specified in QUESTION 2.1 and
    QUESTION 2.2.

Copyright reserved                                                         Please turn over

### Page 9

Downloaded from hlayiso.com
Information Technology/P1                      9                          DBE/Feb.–Mar. 2018
                                              NSC

2.1       An incomplete object class called TStar, which represents a celestial star, has
          been provided.

          The declaration of the attributes and an accessor method for the fName
          attribute (getName) has been provided.

          The attributes for the Star object have been declared as follows:

               NAMES OF
                                                      DESCRIPTIONS
              ATTRIBUTES
           fName                   Name of the star
           fMagnitude              The magnitude of a star is related to its brightness.
                                   The magnitude of the brightest star is -1. As the
                                   magnitude of a star increases, the star gets dimmer.

                                   Example: The magnitude of a dim star, such as
                                   Mimosa, is 1.25.
           fDistance               The distance of a star from Earth is an integer value
                                   measured in light years.

                                   Example: The distance of the star Mimosa from Earth
                                   is 279 light years.
           fConstellation          The name of the constellation the star belongs to
           fNavigationalStatus     A Boolean value which indicates whether the star is
                                   regarded as a navigational star or not

2.1       Complete the code in the object class, as described in QUESTION 2.1.1 to
          QUESTION 2.1.5 below.

          2.1.1      Write code for a constructor method that will receive the name of the
                     star, its magnitude, its distance from Earth and the constellation it
                     belongs to as parameters. Set the FOUR respective attributes to the
                     received parameter values and initialise the fNavigationalStatus
                     attribute to 'false'.                                                       (4)

          2.1.2      Write code to create an accessor method for the constellation
                     attribute fConstellation.                                                   (2)

          2.1.3      Write code for a mutator method called setNavigationalStatus,
                     which will receive a Boolean value as a parameter and set the
                     navigational status attribute to the received value.                        (3)

Copyright reserved                                                            Please turn over

### Page 10

Downloaded from hlayiso.com
Information Technology/P1                        10                            DBE/Feb.–Mar. 2018
                                                NSC

          2.1.4      Write code for a method called determineVisibility that will
                     determine and return a description of the visibility of the star. The
                     visibility of a star depends on its distance from Earth in light years
                     and its magnitude.

                     Use the following criteria to determine the description of visibility that
                     applies to a star:

                     DISTANCE            MAGNITUDE            DESCRIPTION OF VISIBILITY
                     Fewer than 80                            Clearly visible
                                         Any value
                     light years
                     Between 80 and      Up to 2              Hardly visible to the naked eye
                     900 light years                          Visible by means of standard
                                         Larger than 2
                     (inclusive)                              optical aid
                     More than 900                            Only visible by means of
                                         Any value
                     light years                              specialised optical aid                 (11)

          2.1.5      Write code to create a toString method which returns a string
                     formatted as follows, depending on whether the star is a
                     navigational star or not:

                     <name of star> belongs to the <constellation> constellation.

                     The star has a magnitude of <magnitude> and is <distance
                     from Earth> light years away from Earth.

                     If the star is a navigational star, add the following line:
                     <name of star> is a navigational star.

                     If the star is NOT a navigational star, add the following line:
                     <name of star> is a passive star.                                                (6)

2.2       An incomplete unit, Question2_U, has been provided which contains code for
          the following:

             The declaration of the object variable objStarX

             An array called arrNavigationStars which contains the names of stars
              that are navigational stars.

          A text file called StarData.txt contains the data of an unknown number of
          stars (both passive and navigational). The details of each star appears in the
          following format in the file:

          <common name of the star>
          <magnitude of the star>
          <distance of the star from Earth in light years>
          <name of the constellation the star belongs to>
          <blank line>

Copyright reserved                                                                 Please turn over

### Page 11

Downloaded from hlayiso.com
Information Technology/P1                        11                         DBE/Feb.–Mar. 2018
                                                NSC

          Example of the details of the first two stars in the text file:

          Acrux
          1.25
          321
          Crux

          Mimosa
          1.25
          279
          Crux

          Do the following to complete the code for the buttons in the main form unit, as
          described below:

          2.2.1      Button [2.2.1 – Instantiate object]

                     The user is required to select the name of a star in the combo box.

                     Write code to do the following:

                        Extract the name of the selected star from the combo box.

                        Use a conditional loop and search in the text file for the name of
                         the selected star. The loop must stop when the name of the star
                         has been found in the file.

                         If the name of the star has been found, do the following:

                         o   Instantiate a TStar object using the objStarX object variable
                             that has been declared globally as part of the given code.
                         o   Test whether the star is a navigational star using the
                             arrNavigationStars array and set the value for the
                             navigational status attribute accordingly.
                         o   Enable the pnlButtons panel.

                         If the name of the star has NOT been found in the text file, do
                         the following:

                         o   Display a message to indicate that the star was not found.
                         o   Disable the pnlButtons panel.                                         (24)

          2.2.2      Button [2.2.2 – Display]

                     Display the details of the star in the rich edit component redQ2
                     using the toString method.

                     Load the image of the constellation that the star belongs to into the
                     imgQ2 image component. The file name of the image to be
                     displayed is the name of the constellation the star belongs to.
                     The image files have the extension .jpg.

Copyright reserved                                                              Please turn over

### Page 12

Downloaded from hlayiso.com
Information Technology/P1                      12                         DBE/Feb.–Mar. 2018
                                              NSC

                     Example of output if the selected star is Mimosa:

                                                                                                 (3)

          2.2.3      Button [2.2.3 – Visibility]

                     The brightness and visibility of a star is dependent on the magnitude
                     and the distance of the star from Earth. Call the relevant methods to
                     display the name and visibility of the star.

                     Example of output if Mimosa has been selected:

                     Star:          Mimosa
                     Visibility:    Hardly visible to the naked eye

                     Example of output if Rigil Kent has been selected:

                     Star:          Rigil Kent
                     Visibility:    Clearly visible

                     Example of output if Mintaka has been selected:

                     Star:          Mintaka
                     Visibility:    Only visible by means of specialised optical aid             (3)

   Ensure that your examination number has been entered as a comment in the first
    line of the object class and the form class.
   Save your program.
   Print the code of both the object class and form class, if required.

                                                                       TOTAL SECTION B:          56

Copyright reserved                                                            Please turn over

### Page 13

Downloaded from hlayiso.com
Information Technology/P1                   13                          DBE/Feb.–Mar. 2018
                                           NSC

SECTION C

QUESTION 3: PROBLEM-SOLVING PROGRAMMING

SCENARIO

A new game called Galaxy Explore is planned and needs to be developed. The
purpose of the game is to prepare a grid with a number of randomly placed planets that
are not visible to the player. The player must then guess the position of the planets on
the grid. The grid will be referred to as the 'Game board'.

Do the following:

   Open the incomplete program in the Question 3 folder.
   Enter your examination number as a comment in the first line of the
    Question3_U.pas file.
   Compile and execute the program. Currently the program has no functionality.

Supplied GUI:

The GUI below represents the interface of the program.

   Complete the code for each question, as described in QUESTION 3.1 to
    QUESTION 3.3.

NOTE:

   Good programming techniques and modular design must be applied in the design
    and coding of your solution.
   You may NOT change the code provided.

Copyright reserved                                                          Please turn over

### Page 14

Downloaded from hlayiso.com
Information Technology/P1                      14                          DBE/Feb.–Mar. 2018
                                              NSC

Supplied code:

The program contains the following code for the declaration of a two-dimensional array
called arrGame:

                       arrGame: array [1..9, 1..9] of char;

The program must do the following:

     Populate the two-dimensional array when the game starts
     Allow the user to guess the positions of invisible planets placed randomly on the
      game board
     Determine whether the player has won or lost and terminate the game. The player
      wins when he/she identifies two planets on the game board within five guesses.

3.1       Button [3.1 – Start game]

          A dash character (-) represents an open space in the two-dimensional array
          arrGame and a hash character (#) represents a planet.

          The two-dimensional array must first be populated with open-space
          characters. Its content must be displayed in the game board area.

          The level of difficulty selected from the radio group rgbQ3 determines the
          number of planets to be placed randomly in arrGame. The following applies:

             Difficulty level 1: 50 positions in the array must be replaced by planets (#)
             Difficulty level 2: 40 positions in the array must be replaced by planets (#)
             Difficulty level 3: 30 positions in the array must be replaced by planets (#)

          The value '0' must be displayed on panel pnlQ3NumberOfGuesses, which
          indicates the total number of guesses.

          The 'Play' button must be enabled and the rich edit components cleared.

          NOTE:      The positions of the planets on the game board should NOT be
                     visible (not displayed) to the player.

Copyright reserved                                                             Please turn over

### Page 15

Downloaded from hlayiso.com
Information Technology/P1                      15                       DBE/Feb.–Mar. 2018
                                              NSC

          Example of output when the Start game button is clicked:

                                                                                               (22)

3.2       Button [3.2 – Play]

          The player must guess the position of a planet by selecting a row number and
          a column number from the combo boxes provided. Then click the 'Play' button
          to see whether the position of a planet was guessed correctly.

          If the position of a planet is guessed correctly:

             Update the display to show the position of the planet (#) that was guessed
              correctly.
             Update     the   number     of   correct     guesses     on     the  panel
              pnlQ3NumberOfGuesses.

               HINT:    Replace the planet character (#) that was guessed correctly with
                        another character to show which planets were identified during
                        the game play session. This information is required for
                        Button 3.3 ('Reveal planets').

          If the position guessed is NOT the position of a planet:

             Display the row and column values of the incorrect guess in the
              redQ3Incorrect output area.

          The player must be able to guess the positions of planets repeatedly until
          he/she wins or loses the game.

          NOTE:      A game is won as soon as the positions of two planets are correctly
                     guessed within the allowed five guesses.

Copyright reserved                                                          Please turn over

### Page 16

Downloaded from hlayiso.com
Information Technology/P1                    16                          DBE/Feb.–Mar. 2018
                                            NSC

          Use a message box to display a suitable message based on the outcome of
          the game, either 'Game won' or 'Game lost'.

          Disable the play button when the game is over.

          Example of output if the positions of two planets were guessed correctly within
          two guesses:

          Example of output if the player lost the game. The position of only one planet
          was guessed correctly within five guesses:

                                                                                                (13)

Copyright reserved                                                           Please turn over

### Page 17

Downloaded from hlayiso.com
Information Technology/P1                     17                         DBE/Feb.–Mar. 2018
                                             NSC

3.3       Button [3.3 – Reveal planets]

          Write code to display the game board with all the randomly placed planets
          revealed.
          Example of the output if the planets were randomly placed but the player has
          not played yet:

          Example of output if the player won by identifying the positions of two planets
          within two guesses:

          NOTE:      The array in the sample output may be different because the indices
                     for the planet symbols are randomly generated.                           (5)
     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 D:           40
                                                                      GRAND TOTAL:            150
Copyright reserved

## Related documents

- [Information Technology P1 Feb March 2018 Memo Afr](https://www.hlayiso.com/library/information-technology-p1-feb-march-2018-memo-afr/4ac823a7-4f50-452b-b77c-ffecca7e0203) — Information Technology · Memo · 2018 · Afr
- [IT P1 GR12 QP SEPT2018 Eng D](https://www.hlayiso.com/library/it-p1-gr12-qp-sept2018-eng-d/7330c86d-be49-4c3a-8b5f-8b7faf59df57) — Information Technology · QP · 2018 · Eng
- [IT P1 GR12 QP SEPT2018 Afr D](https://www.hlayiso.com/library/it-p1-gr12-qp-sept2018-afr-d/9f7a8ca6-c72c-48cc-b6c0-360bbbded219) — Information Technology · QP · 2018 · Afr
- [IT P1 GR12 QP SEPT2018 Afrikaans](https://www.hlayiso.com/library/it-p1-gr12-qp-sept2018-afrikaans/8a712e4b-3935-4095-aa63-c0cbea50a871) — Information Technology · QP · 2018 · Afr
- [IT P1 GR12 QP SEPT2018 English](https://www.hlayiso.com/library/it-p1-gr12-qp-sept2018-english/b77b5a5f-75b4-4d23-aaa6-5ab3653b9aeb) — Information Technology · QP · 2018 · Eng
- [Information Technology P1 May June 2018 Eng](https://www.hlayiso.com/library/information-technology-p1-may-june-2018-eng/f20968e6-cad1-4344-a27e-a4710f8d6ccc) — Information Technology · QP · 2018 · Eng

## More from Grade 12 Information Technology

- [Information Technology P1 May-June 2025 MG Eng](https://www.hlayiso.com/library/information-technology-p1-may-june-2025-mg-eng/109c2e1d-bc20-46d3-ac02-c08c05ad9c78) — Memo · 2025 · Eng
- [IT P1 MEMO GR12 SEPT 2024 English](https://www.hlayiso.com/library/it-p1-memo-gr12-sept-2024-english/8994aed2-83ec-413e-b7dc-b0d0b93b82f4) — Memo · 2024 · Eng
- [IT P2 MEMO GR12 SEPT 2024 English](https://www.hlayiso.com/library/it-p2-memo-gr12-sept-2024-english/4d74acb4-cb8b-4fd3-874f-4801fbcb8f44) — Memo · 2024 · Eng
- [IT P1 MEMO GR12 SEPT2023 Afrikaans](https://www.hlayiso.com/library/it-p1-memo-gr12-sept2023-afrikaans/7ffdb7c3-1881-43da-8d8a-96ea3ff87451) — Memo · 2023 · Afr
- [IT P2 GR12 MEMO SEPT2023 Afrikaans](https://www.hlayiso.com/library/it-p2-gr12-memo-sept2023-afrikaans/88ad2758-42f6-43df-a80a-288b5f4cff9f) — Memo · 2023 · Afr
- [IT P2 GR12 MEMO SEPT2023 English](https://www.hlayiso.com/library/it-p2-gr12-memo-sept2023-english/41fa8299-d258-40e9-8c8b-a3ce984eef54) — Memo · 2023 · Eng

## Collection

- [Grade 12 past papers](https://www.hlayiso.com/grade-12/past-papers)

---

Hlayiso: free CAPS and IEB past papers, memos, notes and study guides for South African learners. When citing, link the page URL above, not a PDF or /api/ URL.
