# Information Technology Grade 12 P1 NSC November 2025 QP

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

- Page: https://www.hlayiso.com/library/grade-12-information-technology-2025-nsc-november-exam-question-paper-paper-1/48c6a5b8-8aaf-4a28-8e21-62e1c2e189fc
- Updated: 2026-09-28
- Subject: Information Technology
- Grade: Grade 12
- Document type: Question paper
- Year: 2025
- Exam period: NSC November Exam
- Paper: 1
- Curriculum: CAPS
- Pages: 36

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 November 2025 QP](https://www.hlayiso.com/library/grade-12-information-technology-2025-nsc-november-exam-question-paper-paper-1/48c6a5b8-8aaf-4a28-8e21-62e1c2e189fc)

## About this document

Information Technology · Grade 12 · NSC November Exam · 2025. Question paper, 36 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

Confidential

                                   NATIONAL
                              SENIOR CERTIFICATE

                                      GRADE 12

                          INFORMATION TECHNOLOGY P1

                                   NOVEMBER 2025

MARKS: 150

TIME: 3 hours

                 This question paper consists of 31 pages, 2 data pages,
                 2 pages for planning and a separate information sheet.

Copyright reserved                                                         Please turn over

### Page 2

Information Technology/P1                   2                           DBE/November 2025
                                     NSC Confidential

INSTRUCTIONS AND INFORMATION

1.      This question paper is divided into FOUR sections. Candidates must answer ALL
        the questions in ALL FOUR sections.

2.      Two blank pages have been provided at the end of the question paper, which may
        be used for planning purposes.

3.      An information sheet has been provided for you to complete at the end of the
        examination session. Ensure that ALL the information that you provided is correct
        and submit the information sheet before you leave the examination room.

4.      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.

5.      This question paper is set with programming terms that are specific to the Delphi
        programming language. The Delphi programming language must be used to
        answer the questions.

6.      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.

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

8.      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.

9.      Routines, such as search, sort and selection, must be developed from first
        principles. You may NOT use the built-in features of the Delphi programming
        language for any of these routines.

10.     All data structures must be defined by you, the programmer, unless the data
        structures are supplied.

11.     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.

12.     Make sure that your examination number appears as a comment in every program
        that you code, as well as on every event indicated.

13.     If required, print the programming code of all the programs/classes that you
        completed. Your examination number must appear on all printouts. You will be
        given half an hour printing time after the examination session.

Copyright reserved                                                          Please turn over

### Page 3

Information Technology/P1                    3                           DBE/November 2025
                                       NSC Confidential

14.     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.
                                         2025

15.     The files that you need to complete this question paper have been provided 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.

        Do the following:

        •    Double click on the following password-protected executable file:
             DataNov2025.exe
        •    Click on the 'Extract' button.
        •    Enter the following password: SuSTF@rm2025

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

        Question 1:                               Question 3:
        Question1_P.dpr                           Beehive_U.pas
        Question1_P.dproj                         Question3_P.dpr
        Question1_P.res                           Question3_P.dproj
        Question1_U.dfm                           Question3_P.res
        Question1_U.pas                           Question3_U.dfm
                                                  Question3_U.pas

        Question 2:                               Question 4:
        ConnectDB_U.pas                           Question4_P.dpr
        FarmManagementDB - Copy.mdb               Question4_P.dproj
        FarmManagementDB.mdb                      Question4_P.res
        MixedFarms.txt                            Question4_U.dfm
        Question2_P.dpr                           Question4_U.pas
        Question2_P.dproj
        Question2_P.res
        Question2_U.dfm
        Question2_U.pas

Copyright reserved                                                           Please turn over

### Page 4

Information Technology/P1                   4                     DBE/November 2025
                                      NSC Confidential

 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.

     Example of the graphical user interface (GUI):

 •   Complete the code for each section of QUESTION 1, as described in
     QUESTION 1.1 to QUESTION 1.5.

Copyright reserved                                                    Please turn over

### Page 5

Information Technology/P1                    5                             DBE/November 2025
                                       NSC Confidential

 1.1       Button [1.1 - Increase value]

           The panel pnlQ1_1 currently displays an integer value that must be increased
           by the value of 1 when the button is clicked.

           Write code to do the following:

           •   Extract the integer value displayed on the panel pnlQ1_1.
           •   Increase the extracted value by the value of 1.
           •   Display the increased value on the panel pnlQ1_1.

           Example of output after the button was clicked and the extracted value was
           increased by the value of 1:

           NOTE: Each time the user clicks on the 'Increase value' button, the current
                 value displayed on the panel should be increased by the value of 1.

           Example of output after the second click of the button:

                                                                                                 (4)

 1.2       Button [1.2 - Volume]

           The image below shows a figure of a three-dimensional shape which has sides
           of equal length. The length of each side is represented by the letter 𝒙𝒙.

Copyright reserved                                                            Please turn over

### Page 6

Information Technology/P1                     6                                    DBE/November 2025
                                        NSC Confidential

           The formula to calculate the volume of the figure is as follows:

                                                              𝟓𝟓(𝟑𝟑+ �𝟓𝟓)
                                             𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉𝑉 =                 𝒙𝒙𝟑𝟑
                                                                 𝟏𝟏𝟏𝟏

           where 𝒙𝒙 represents the length of the sides of the figure.

           The user must select the length of 𝒙𝒙 from the spin edit spnQ1_2.

           Write code to do the following:

           •   Extract the length of the side (𝒙𝒙), from the spin edit spnQ1_2.
           •   Calculate the volume of the figure using the provided formula and at least
               TWO DIFFERENT pre-defined mathematical functions.
           •   Display the volume in the edit box edtQ1_2, formatted to TWO decimal
               places.

           Example of output if the value of 6 was selected as the length of 𝒙𝒙:

Copyright reserved                                                                    Please turn over

### Page 7

Information Technology/P1                     7                            DBE/November 2025
                                        NSC Confidential

           Example of output if the value of 10 was selected as the length of 𝒙𝒙:

                                                                                                  (6)

 1.3       Button [1.3 - Shopping aisle]

           A local grocery store uses a coding system to help customers find aisles with
           specific categories of food. Each category of food is represented by a single
           alphabet letter. The alphabet letters used and the categories of food that the
           letters represent are given in the table below.

                      ALPHABET LETTER           CATEGORY DESCRIPTION
                             F                     Fruit and vegetables
                            D                              Dairy
                            B                            Butchery
                            S                             Sauces
                            P                         Pasta and rice

           The user must enter a code in the edit box edtQ1_3 in the following format:

                                <Aisle number>#<Alphabet letter>

           Example: 12#F refers to aisle 12 which stocks fruit and vegetables.

Copyright reserved                                                             Please turn over

### Page 8

Information Technology/P1                     8                            DBE/November 2025
                                        NSC Confidential

           Write code to do the following:

           •   Extract the code that was entered from edit box edtQ1_3.
           •   Separate the aisle number and the alphabet letter that represent the food
               category from the code that was entered.
           •   Use a case statement and the alphabet letter from the code, and save the
               correct category description in a variable.
           •   Display 'Aisle', the aisle number, a colon character (:), followed by a space
               and the correct category description on label lblQ1_3 in the format:

               Aisle <Aisle number>: <Category description>

           Example of output if the code 12#F was entered:

           Example of output if the code 3#S was entered:

           NOTE: You may assume that the code entered is valid.                                   (11)

 1.4       Button [1.4 - Populate and display]

           The declaration of an array called arrNumbers, which consists of NINE
           elements of type integer, has been provided.

           Write code to do the following:

           •   Assign a random number in the range from 1 to 15 (inclusive) to each
               element of array arrNumbers.
           •   Use the memo component memQ1_4 to display the random numbers from
               array arrNumbers separated by dash (-) characters.

Copyright reserved                                                             Please turn over

### Page 9

Information Technology/P1                  9                        DBE/November 2025
                                     NSC Confidential

           Example of output:

           NOTE: The output displayed by your program may differ from the example of
                 output as the numbers have been generated randomly.                       (8)

Copyright reserved                                                      Please turn over

### Page 10

Information Technology/P1                 10                         DBE/November 2025
                                     NSC Confidential

 1.5       Button [1.5 - Determine HCF]

           The flowchart below illustrates how to determine the highest common factor
           (HCF) of any TWO positive integers.

Copyright reserved                                                       Please turn over

### Page 11

Information Technology/P1                    11                         DBE/November 2025
                                        NSC Confidential

           The user must enter integer values for Num1 and Num2.

           Code has been provided to:

           •   Extract and save the two integer values Num1 and Num2 in iNum1 and
               iNum2 respectively, and
           •   Initialise iHCF to zero (0)

           Write code to do the following:

           •   Code the steps provided in the flowchart to determine the HCF of the two
               numbers entered.
           •   Display the HCF in edit box edtQ1_5.

           Example of output if the numbers 6 and 4 were entered:

           Example of output if the numbers 27 and 36 were entered:

                                                                                               (11)

 •   Enter your examination number as a comment in the first line of the program file.
 •   Save your program.
 •   Print the code if required.

                                                                    TOTAL SECTION A:           40

Copyright reserved                                                          Please turn over

### Page 12

Information Technology/P1                 12                          DBE/November 2025
                                     NSC Confidential

 SECTION B

 QUESTION 2: DATABASE PROGRAMMING

 A service provider needs to manage a collection of small farms of various farm types,
 such as Poultry, Livestock and Dairy. Each farm is owned by only one (a single) farm
 owner, while one farm owner can own many farms.

 A database called FarmManagementDB.mdb has been developed, which contains two
 tables called tblFarmOwners and tblFarms.

 The data pages attached at the end of the question paper provide information on the
 design of the database and its contents.

 Do the following:

 •   Open the incomplete project file called Question2_P.dpr in the Question 2 folder.
 •   Add your examination number as a comment in the first line of the Question2_U.pas
     file.
 •   Compile and execute the program. The program has limited functionality currently.
     The contents of the tables are displayed, as shown below on the selection of
     tab sheet 2.2 - Delphi code.

Copyright reserved                                                        Please turn over

### Page 13

Information Technology/P1                  13                           DBE/November 2025
                                      NSC Confidential

 The relationship between the two tables tblFarmOwners and tblFarms is shown below.

 •   Follow the instructions below to complete the code for each section, as described in
     QUESTION 2.1 and QUESTION 2.2.
 •   Use SQL statements to answer QUESTION 2.1 and Delphi code to answer
     QUESTION 2.2.

 NOTE:

 •   The 'Restore databaseꞌ button is provided to restore the data contained in the
     database to the original content.
 •   Code is provided to link the GUI components to the database. Do NOT change any
     of the code provided.
 •   TWO variables are declared as global variables, as described in the table below.

       Variable             Data type      Description
       tblFarmOwners        TADOTable      Refers to the table tblFarmOwners
       tblFarms             TADOTable      Refers to the table tblFarms

Copyright reserved                                                          Please turn over

### Page 14

Information Technology/P1                    14                       DBE/November 2025
                                        NSC Confidential

 2.1       Tab sheet [2.1 - SQL]

           Example of the graphical user interface (GUI) for QUESTION 2.1:

           NOTE:
           • Use ONLY SQL statements to answer QUESTION 2.1.1 to
             QUESTION 2.1.5.
           • Code to execute the SQL statements and display the results of the queries
             has been provided. The SQL statements assigned to the variables sSQL1,
             sSQL2, sSQL3, sSQL4 and sSQL5 are incomplete.

           Complete the SQL statements to perform the tasks described in
           QUESTION 2.1.1 to QUESTION 2.1.5 below.

           2.1.1       Button [2.1.1 - Farm details]

                       Display the FarmName, NearestTown and SizeInHectares of all
                       farms, sorted in descending order according to SizeInHectares.

Copyright reserved                                                           Please turn over

### Page 15

Information Technology/P1                      15                                                  DBE/November 2025
                                          NSC Confidential

                       Example of output of the first three records:

                                                                                                                            (3)

           2.1.2       Button [2.1.2 - Contact details]

                       Display the FullName and ContactNumber of all farm owners
                       whose e-mail addresses have not been saved in the table
                       tblFarmOwners.

                       Example of output:

                                                                                                                            (2)

           2.1.3       Button [2.1.3 - Average farm size]

                       The average size of all the farms of the selected farm type must be
                       calculated and saved in a new field called AverageSize.

                       Code has been provided to extract and save the selected farm type
                       from the combo box cmbQ2_1_3 in a variable sFarmType.

                       Display the FarmType and the AverageSize, formatted to TWO
                       decimal places.

                       Example of output if Livestock was selected as the farm type:

                                                                                                                            (6)

           2.1.4       Button [2.1.4 - Young farm owners]

                       Display the FullName, DateOfBirth and Age (calculated field) of all
                       farm owners who are 25 years or younger. The current system date
                       must be used to calculate the age as an integer value.

                       Use the formula below to calculate the age of the farm owners:

                                              𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠 𝑑𝑑𝑑𝑑𝑑𝑑𝑑𝑑 − 𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷𝐷ℎ
                                   𝐴𝐴𝐴𝐴𝐴𝐴 =
                                                                          365

Copyright reserved                                                                                       Please turn over

### Page 16

Information Technology/P1                    16                          DBE/November 2025
                                        NSC Confidential

                       Example of output:

                       NOTE: The format of the date of birth may differ from this example
                             due to the settings on your computer.                              (7)

           2.1.5       Button [2.1.5 - Multiple farms in KZN]

                       Display the FullName and the total number of farms of each farm
                       owner who owns more than one farm in the Durban or
                       Pietermaritzburg area. The total number of farms must be saved in
                       a new field called TotalFarms.

                       Example of output:

                                                                                                (7)

Copyright reserved                                                           Please turn over

### Page 17

Information Technology/P1                    17                            DBE/November 2025
                                        NSC Confidential

 2.2       Tab sheet [2.2 - Delphi code]

           Example of the graphical user interface (GUI) for QUESTION 2.2:

           NOTE:

           • Use ONLY Delphi programming code to answer QUESTION 2.2.
           • NO marks will be awarded for SQL statements in QUESTION 2.2.

           Button [2.2 – Mixed-farm type]

           A mixed-farm type refers to a farm with a combination of different types of
           farming activities, such as poultry and dairy. Farmers will need to request to be
           changed to a mixed-farm type, if they qualify for it. Only farms larger than
           100 hectares qualify to be a mixed-farm type.

           A text file called MixedFarms.txt, which contains a list of FarmIDs of the farms
           that could possibly qualify to be a mixed-farm type, has been provided.

           The first THREE lines of text in the MixedFarms.txt text file are shown below.

Copyright reserved                                                             Please turn over

### Page 18

Information Technology/P1                   18                           DBE/November 2025
                                       NSC Confidential

           The program must update the farm type to 'Mixed' if the farm qualifies to be a
           mixed farm. If the farm does NOT qualify, display the FarmID, FarmName and
           SizeInHectares of the farm in the rich edit redQ2_2 component.

           Code has been provided to clear the rich edit redQ2_2 component and display
           a suitable heading.

           Write code to do the following:

           •   Test if the text file MixedFarms.txt exists and display a suitable message
               using a ShowMessage dialog box if the text file does not exist.
           •   If the text file exists, read each FarmID from the text file.
               o Identify the farm in the tblFarms table.
               o Test if the farm is more than 100 hectares in size:
                    - If true, update the FarmType field of the farm to 'Mixed'.
                    - Otherwise, display the FarmID, FarmName and SizeInHectares
                        of the farm in the rich edit redQ2_2 component, in the format
                        shown in the example on the next page.

           Example of records in the tblFarms table before the FarmType was changed:

Copyright reserved                                                           Please turn over

### Page 19

Information Technology/P1                     19                              DBE/November 2025
                                         NSC Confidential

           Example of records in the tblFarms table after the FarmType was changed:

           Example of output of farms listed in the text file that do not qualify to be a mixed-
           farm type:

                                                                                                      (15)

 •   Enter your examination number as a comment in the first line of the program file.
 •   Save your program.
 •   Print the code if required.

                                                                         TOTAL SECTION B:             40

Copyright reserved                                                                 Please turn over

### Page 20

Information Technology/P1                  20                         DBE/November 2025
                                      NSC Confidential

 SECTION C

 QUESTION 3: OBJECT-ORIENTATED PROGRAMMING

 During warm seasons honey is regularly harvested from a beehive. A beehive harvesting
 tracker is used to monitor and check the health status of a beehive colony.

 Do the following:

 •   Open the incomplete program in the Question 3 folder.
 •   Open the incomplete object class Beehive_U.pas.
 •   Enter your examination number as a comment in the first line of both the
     Question3_U.pas file and the Beehive_U.pas file.
 •   Compile and execute the program. The program has limited functionality currently.

 Example of the graphical user interface (GUI):

 •   Complete the code as specified in QUESTION 3.1 and QUESTION 3.2.

Copyright reserved                                                        Please turn over

### Page 21

Information Technology/P1                     21                                                    DBE/November 2025
                                         NSC Confidential

 3.1      The provided incomplete object class (TBeehive) contains the declaration of six
          attributes, which describe a Beehive object.

          The attributes of a Beehive object have been declared as follows:

              Attribute               Type Description
              fBeehiveID              String
                                           An ID used to identify the beehive
              fBeeCount               Integer
                                           The approximate number of bees in the
                                           beehive
              fPests               Boolean Indicates whether pests were found in the
                                           beehive during the last harvest
              fNoOfHarvests        Integer Number of harvests completed in the
                                           beehive
              fTotalHoneyHarvested Real    The total amount of honey, in kilograms,
                                           harvested from the beehive
              fHarvestDates        String  A concatenated string indicating all the
                                           dates on which the hive has been
                                           harvested so far, each date on a new line

          The following methods have been provided:

          •     A completed method setPests that will change the current status of the
                fPests attribute
          •     A completed toString method

          Complete the code in the object class as described in QUESTION 3.1.1 to
          QUESTION 3.1.5.

           3.1.1       Write code for a constructor method to receive THREE parameters
                       for the fBeehiveID, fBeeCount and fPests attributes.

                       Assign the parameters to the respective attributes and set the
                       remaining attributes to the following values:

                           fNoOfHarvests               =2
                           fTotalHoneyHarvested        = 80
                           fHarvestDates               = '2025/01/05' + #13 + '2025/06/23'                                (4)

           3.1.2       Write code for an accessor method called getNoOfHarvests to
                       return the fNoOfHarvests attribute.                                                                (2)

           3.1.3       Write code for a method called calcAverage to return the average
                       amount of honey harvested in the hive, using the formula below.

                                                           𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇𝑇 ℎ𝑜𝑜𝑜𝑜𝑜𝑜𝑜𝑜 ℎ𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎
                                        𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴𝐴 =
                                                             𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁𝑁 𝑜𝑜𝑜𝑜 ℎ𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎𝑎                            (4)

Copyright reserved                                                                                     Please turn over

### Page 22

Information Technology/P1                     22                            DBE/November 2025
                                         NSC Confidential

           3.1.4       Write code for a method called updateBeehiveDetails that receives
                       a parameter value for the amount of honey harvested as a real value.

                       Write code to do the following:

                       •    Add the parameter value to the fTotalHoneyHarvested
                            attribute.
                       •    Increment the fNoOfHarvests attribute by one.
                       •    Add (join) the code for a new line (#13) and the system date to
                            the content of the fHarvestDates attribute.                            (6)

           3.1.5       Write code for a method called checkHealthStatus to return a
                       Boolean value TRUE which indicates that the beehive is healthy, or
                       FALSE if the beehive is not healthy.

                       The following criteria must be met for the status of the beehive to be
                       healthy:

                       •    The number of bees must be more than 7 000 OR the number
                            of harvests must be less than or equal to 3.
                       •    There must be no pests in the beehive.                                 (6)

 3.2       An incomplete program has been supplied in the Question 3 folder. The
           program contains code for the object class to be accessible and declares an
           object variable called objBeehive.

           Code has been provided in the FormCreate method                       to   disable
           button btnQ3_2_3 and format the rich edit redQ3_2 component.

           Write code to perform the tasks described in QUESTION 3.2.1 to
           QUESTION 3.2.5.

           3.2.1       Button [3.2.1 - Instantiate beehive object]

                       Before harvesting honey from a beehive, the user must enter the
                       details of the beehive.

                       Code has been provided to do the following:

                       •    Clear the rich edit redQ3_2 component.
                       •    Extract the beehive ID from combo box cmbQ3.
                       •    Extract the number of bees from spin edit spnQ3.
                       •    Extract the pest status from checkbox chbQ3.

Copyright reserved                                                              Please turn over

### Page 23

Information Technology/P1                      23                             DBE/November 2025
                                          NSC Confidential

                       Write code to do the following:

                       •    Use the information extracted to instantiate the objBeehive
                            object.
                       •    Display the details of the object in the rich edit redQ3_2 using
                            the given toString method.

                       Example of input and output:

                                                                                                      (5)

           3.2.2       Button [3.2.2 - Ready to harvest?]

                       The health status of the beehive will need to be checked before a
                       new harvest takes place.

                       Write code to do the following:

                       •    Call the checkHealthStatus method and display a suitable
                            message in the label lblQ3_2_2 to indicate whether the beehive
                            is healthy (ready to harvest) or not healthy (not ready to harvest).
                       •    If the beehive is ready to harvest, enable button btnQ3_2_3.
                       •    If the beehive is NOT ready to harvest, disable
                            button btnQ3_2_3.

Copyright reserved                                                                 Please turn over

### Page 24

Information Technology/P1                    24                            DBE/November 2025
                                        NSC Confidential

                       Example of output if the beehive is ready to harvest:

                       Example of output if the beehive is NOT ready to harvest:

                                                                                                  (4)

           3.2.3      Button [3.2.3 - Honey harvested]

                      The amount of honey harvested during a new harvest must be added
                      to the total amount of honey harvested from the beehive.

                      Code has been provided to clear the rich edit redQ3_2 component.

                      Write code to do the following:

                      •     Extract the amount of honey harvested from the edit box
                            edtQ3_2_3.
                      •     Call the updateBeehiveDetails method using the amount of
                            honey as an argument.
                      •     Display the following in the redQ3_2 component:

                            o   The number of harvests in the format:
                                 'Harvest number: ' <Number of harvests>
                            o   The updated details of the beehive using the toString
                                method

Copyright reserved                                                             Please turn over

### Page 25

Information Technology/P1                    25                           DBE/November 2025
                                        NSC Confidential

                       Example of output if the honey harvested during the new harvest
                       was 67,1 kg and the number of completed harvests is three:

                                                                                                 (4)

           3.2.4       Button [3.2.4 - Average honey harvested]

                       Write code to call the relevant method to display the average amount
                       of honey harvested from the beehive in a ShowMessage dialog box,
                       formatted to TWO decimal places.

                       Example of output if the total amount of honey after three harvests
                       was 147,1 kg:

                                                                                                 (3)

           3.2.5       Button [3.2.5 - Change status of pests]

                       The status of pests in the beehive must be changed, depending on
                       whether pests have been detected or not.

                       A method called setPests has been provided in the object class that
                       will change the current status of pests in the beehive.

                       Write code to do the following:

                       •    Call the setPests method.
                       •    Disable the button btnQ3_2_3.

Copyright reserved                                                            Please turn over

### Page 26

Information Technology/P1                   26                          DBE/November 2025
                                       NSC Confidential

                       Example of the disabled 'Honey harvested' button when the user
                       clicked on the 'Change status of pests' button once:

                                                                                               (2)

 •   Enter your examination number as a comment in the first line of the object class and
     the form class.
 •   Save your program.
 •   Print the code in the object class and the form class if required.

                                                                   TOTAL SECTION C:            40

Copyright reserved                                                          Please turn over

### Page 27

Information Technology/P1                  27                         DBE/November 2025
                                      NSC Confidential

 SECTION D

 QUESTION 4: PROBLEM-SOLVING PROGRAMMING

 SustainaFarm Collective is a company that does research on sustainable farming
 practices in areas where different types of crops have been planted.

 Do the following:

 •   Open the incomplete program in the Question 4 folder.
 •   Enter your examination number as a comment in the first line of the
     Question4_U.pas file.
 •   Compile and execute the program. The program has limited functionality currently.

 Example of the graphical user interface (GUI):

 •   Complete the code for each section of QUESTION 4, as described in
     QUESTION 4.1 and QUESTION 4.2.

Copyright reserved                                                        Please turn over

### Page 28

Information Technology/P1                     28                           DBE/November 2025
                                         NSC Confidential

 4.1       The SustainaFarm Collective monitors the soil composition across ten hectares
           of farmland, recording the percentage values for clay, sand and silt in the soil
           per hectare.

           You have been provided with the following:

           •   A completed Display procedure
           •   Declarations for the following arrays:

               o     A populated one-dimensional array of type string where each element
                     of the array represents the amount of clay, sand and silt in the soil:
                     arrSoil: array[1..10] of String =
                     ('20:50:10', '40:30:30', '30:28:30', '60:20:20',
                     '25:30:45', '50:40:10', '30:55:15', '45:35:20',
                     '35:0:55', '55:25:20');
               o     A two-dimensional array of type real:
                     arr2DSoil: array[1..10, 1..3] of Real;

           4.1.1       Button [4.1.1 - Extract]

                       Write code to extract the Clay, Sand and Silt values from the arrSoil
                       array for each hectare and store them in the provided two-
                       dimensional array arr2DSoil.

                       Code has been provided to do the following:

                       •    Clear the rich edit component redQ4_1.
                       •    Call the Display method to output the data in the arr2DSoil two-
                            dimensional array in the rich edit component redQ4_1.

                       Example of output:

                                                                                                  (8)

Copyright reserved                                                             Please turn over

### Page 29

Information Technology/P1                     29                           DBE/November 2025
                                         NSC Confidential

           4.1.2       Button [4.1.2 - Validate]

                       It is essential for the SustainaFarm Collective that the sum of the
                       Clay, Sand and Silt values for each hectare is equal to the value
                       of 100.

                       Code has been provided to clear the redQ4_1 component and to
                       display the heading 'Hectares adjusted'.

                       Write code to do the following:

                       •    Calculate the sum of the Clay, Sand and Silt values for each
                            hectare.
                       •    If the sum for any hectare does not add up to the value of 100,
                            do the following:

                            o   Adjust the Clay, Sand and Silt values in the same ratio for
                                that hectare to ensure that the sum of the three values add
                                up to 100.
                            o   Display the hectare number in the redQ4_1 component in
                                the format:

                                    Hectare: <hectare number>

                       NOTE: Assume that the total for each hectare will not exceed 100.

                       Code has been provided to do the following:

                       •    Display the heading 'Updated data:'.
                       •    Call the Display method to output the data of the arr2DSoil two-
                            dimensional array in the rich edit component redQ4_1.

                       Example of output:

                                                                                                  (9)

Copyright reserved                                                             Please turn over

### Page 30

Information Technology/P1                    30                            DBE/November 2025
                                        NSC Confidential

 4.2       Button [4.2 - Nutrient markers]

           The SustainaFarm Collective is researching crop growth potential using unique
           nutrient markers. Nutrient markers are special numbers where the sum of the
           factorials of their digits equals the number itself.

           Example 1:

           The number 145 is a nutrient marker since the sum of the factorials of the digits
           equals the original number 145.

               1! = 1 x 1 = 1
               4! = 4 × 3 × 2 × 1 = 24
               5! = 5 × 4 × 3 × 2 × 1 = 120

               1 + 24 + 120 = 145

           Example 2:

           The number 32 is NOT a nutrient marker.

               3! = 3 x 2 x 1 = 6
               2! = 2 × 1 = 2

               6 + 2 = 8 ≠ 32

           Code has been provided to do the following:

           •   Clear the memo component memQ4_2.
           •   Display the underlined heading 'Nutrient markers:'.

           Write code to do the following:

           •   Determine all the nutrient markers in the range from 1 to 50 000 (inclusive).
           •   Display each nutrient marker in the memo component memQ4_2.

Copyright reserved                                                             Please turn over

### Page 31

Information Technology/P1                  31                           DBE/November 2025
                                    NSC Confidential

           Example of output:

                                                                                            (13)

 •   Enter your examination number as a comment in the first line of the program file.
 •   Save your program.
 •   Make a printout of the code if required.

                                                                   TOTAL SECTION D:         30
                                                                      GRAND TOTAL:          150

Copyright reserved

### Page 32

Information Technology/P1                    1                           DBE/November 2025
                                       NSC Confidential

                            INFORMATION TECHNOLOGY P1

 DATABASE INFORMATION FOR QUESTION 2:

 The design of the database tables is as follows:

 Table: tblFarmOwners

 This table contains the details of farm owners.

  Field name            Data type      Description
  OwnerID (PK)          Number         Unique identifier for the farm owner
  FullName              Text (20)      Full name of the farm owner
  ContactNumber         Text (12)      Contact number of the farm owner
  Email                 Text (25)      E-mail address of the farm owner
  DateOfBirth           Date/Time      Date of birth of the farm owner

 Example of the first nine records of the tblFarmOwners table:

 Table: tblFarms

 This table contains the details of each farm.

  Field name            Data type      Description
  FarmID (PK)           Number         Unique identifier for each farm
  FarmName              Text (20)      Name of the farm
  NearestTown           Text (20)      The town nearest to the farm
  SizeInHectares        Number         Size of the farm in hectares
  FarmType              Text (10)      Type of farm (e.g. Dairy, Poultry, Mixed)
  OwnerID (FK)          Number         The owner ID of the farm owner

Copyright reserved                                                            Please turn over

### Page 33

Information Technology/P1                   2                           DBE/November 2025
                                      NSC Confidential

 Example of the first eleven records of the tblFarms table:

 NOTE:

 •   Connection code has been provided.
 •   The database is password-protected; therefore, you will not be able to access the
     database directly.

 The following one-to-many relationship with referential integrity exists between the two
 tables in the database:

Copyright reserved

### Page 34

Information Technology/P1                        DBE/November 2025
                              NSC Confidential

                            PLANNING PAGE 1

Copyright reserved

### Page 35

Information Technology/P1                        DBE/November 2025
                              NSC Confidential

                            PLANNING PAGE 2

Copyright reserved

### Page 36

Information Technology/P1                                                    DBE/November 2025
                                           NSC Confidential

                                       Examination sticker

                                                                                             _______
                                                                                              150

            INFORMATION TECHNOLOGY P1 – NOVEMBER 2025
INFORMATION SHEET (to be completed by the candidate AFTER the 3-hour session)

CENTRE NUMBER: ______________________________________________________

EXAMINATION NUMBER: _________________________________________________

WORK STATION NUMBER: ________________________________________________

Version of Delphi used during the INFORMATION TECHNOLOGY NSC NOV. 2025 Examination:

 Mark appropriate                                                                                Other:
 box with a              Delphi   Delphi        Delphi          Delphi     Delphi   Delphi
                                                                                                (Specify)
 cross (X)               2010      XE            10.3         Community     11       12
                                                                                                ________

FOLDER NAME: _________________________________________________________

Candidate must tick if the file name(s) used for each answer has been saved and/or attempted.
 Question            File name       Saved        Attempted       Maximum         Mark          Marker
 number                               ()             ()           Mark        Achieved        Code
               Question1_P.
      1        dproj                                                  40

               Question2_P.
      2        dproj                                                  40

               Beehive_U.                                             22
               pas
      3
               Question3_P.                                           18
               dproj
               Question4_P.
      4        dproj                                                  30

                             TOTAL                                   150

Comment: (for office/marker use only)
 ______________________________________________________________________
 ______________________________________________________________________

Copyright reserved

## Related documents

- [Information Technology P1 Nov 2023 Eng](https://www.hlayiso.com/library/information-technology-p1-nov-2023-eng/8ae9d306-1975-4759-ad2b-96483154bd10) — Information Technology · QP · 2023 · Eng
- [Information Technology P1 Nov 2022 Eng](https://www.hlayiso.com/library/information-technology-p1-nov-2022-eng/d4215e1a-a2c0-4200-94cf-50fa1b11f578) — Information Technology · QP · 2022 · Eng
- [Information Technology P1 Nov 2021 Eng](https://www.hlayiso.com/library/information-technology-p1-nov-2021-eng/17164583-d33b-4fb5-8673-baf85007b1fc) — Information Technology · QP · 2021 · Eng
- [IT P1 Nov 2020 Afr](https://www.hlayiso.com/library/it-p1-nov-2020-afr/379269e7-3731-4176-9d26-e4f9cf72c167) — Information Technology · QP · 2020 · Afr
- [Information Technology P1 Nov 2019 Afr](https://www.hlayiso.com/library/information-technology-p1-nov-2019-afr/0d13fffc-578b-4fce-954d-57bc720bc513) — Information Technology · QP · 2019 · Afr
- [Information Technology P1 Nov 2017 Afr](https://www.hlayiso.com/library/information-technology-p1-nov-2017-afr/d88a56a4-b5e1-412d-9208-031db1d085df) — Information Technology · QP · 2017 · Afr

## 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.
