Skip to content

Information Technology Grade 12 P1 NSC June 2025 QP (Eng)

Question paperInformation TechnologyGrade 12202529 pages

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

Free to read online, no sign-up needed

Answer online

Loading document…

Loading document…

NSC June Exam 2025

Questions in this paper

Document textSearch extracted text and jump to a page.
Confidential SENIOR CERTIFICATE EXAMINATIONS/ NATIONAL SENIOR CERTIFICATE EXAMINATIONS INFORMATION TECHNOLOGY P1 MAY/JUNE 2025 MARKS: 150 TIME: 3 hours This question paper consists of 24 pages, 2 data pages, 2 pages for planning and a separate information sheet. Copyright reserved Please turn over
Information Technology/P1 2 DBE/May/June 2025 SC/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 centre. 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. 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 Copyright reserved Please turn over
Information Technology/P1 3 DBE/May/June 2025 SC/NSC Confidential 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: DataJUN2025.exe • Click on the 'Extract' button. • Enter the following password: GAMES@J2025 Once extracted, the following list of files will be available in the folder DataJUN2025: Question 1: Question 3: DataQ1_3.txt Game_U.pas Question1_P.dpr Question3_P.dpr Question1_P.dproj Question3_P.dproj Question1_P.res Question3_P.res Question1_U.dfm Question3_U.dfm Question1_U.pas Question3_U.pas Question 2: Question 4: CompGamesDB - Copy.mdb Question4_P.dpr CompGamesDB.mdb Question4_P.dproj ConnectDB_U.pas Question4_P.res Question2_P.dpr Question4_U.dfm Question2_P.dproj Question4_U.pas Question2_P.res Question2_U.dfm Question2_U.pas Copyright reserved Please turn over
Information Technology/P1 4 DBE/May/June 2025 SC/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
Information Technology/P1 5 DBE/May/June 2025 SC/NSC Confidential 1.1 Button [1.1 - Display shape] The user must select a shape from the radio group rgpQ1_1. Code has been provided in the OnCreate event handler to set the visibility property of the shpQ1_1 component to true. Write code to do the following: • Extract the selected shape option from the radio group rgpQ1_1. • Display the selected shape in the shape component shpQ1_1. Example of output if the 'Circle' option is selected from rgpQ1_1: Example of output if the 'Rectangle' option is selected from rgpQ1_1: (5) 1.2 Button [1.2 - Display colour] The user is required to select a colour from each of the provided combo boxes, cmbColour1 and cmbColour2, respectively. Code has been provided to do the following: • Set the colour of the panel pnlQ1_2 to clBtnFace • Clear the caption of the panel pnlQ1_2 Copyright reserved Please turn over
Information Technology/P1 6 DBE/May/June 2025 SC/NSC Confidential Write code to do the following: • Extract and store the colours selected from the combo boxes, cmbColour1 and cmbColour2. • Determine the colour combination based on the following conditions: o If the combination of colours includes both 'Red' and 'Blue', set the colour of the panel pnlQ1_2 to purple. o Otherwise, set the panel caption of pnlQ1_2 to 'No colour'. Example of output if the colours 'Red' and 'Blue' are selected. The colour of the panel changes to purple: Example of output if any combination of colours, which excludes both 'Red' and 'Blue', are selected: (8) 1.3 Button [1.3 - Average] A text file called DataQ1_3.txt has been provided. The text file contains an unknown number of integer values. Example of the first five lines of data in the text file DataQ1_3.txt: 22 21 23 42 124 Copyright reserved Please turn over
Information Technology/P1 7 DBE/May/June 2025 SC/NSC Confidential The average of the numbers in the text file must be calculated and displayed. Write code to do the following: Check whether or not the text file DataQ1_3.txt exists. • If the file does NOT exist, display a suitable message in the memo component memQ1_3 and close the program. • If the file exists: o Use a conditional loop to read the numbers from the text file. o Determine the average of the numbers read from the text file. o Display the average rounded to TWO decimal places in the memo component memQ1_3. Example of output: (10) 1.4 Button [1.4 - Display pattern] A pattern consisting of digits starting with the value of 1 in row 1, the value 2 in row 2, the value 3 in row 3 and so on, must be displayed. The number of rows and the number of digits per row will depend on the value selected by the user from the spin edit spnQ1_4. Example of the pattern if the user selects the value of 4: 1 22 333 4444 Code has been provided to clear the rich edit component redQ1_4. Write code to do the following: • Extract the number of rows selected from the spin edit spnQ1_4. • Use nested loops and the selected number of rows to compile and display the pattern described above, in the redQ1_4 component. Copyright reserved Please turn over
Information Technology/P1 8 DBE/May/June 2025 SC/NSC Confidential Example of input and output if the number of rows selected was three: Example of input and output if the number of rows selected was six: (8) 1.5 Button [1.5 - Sum of ASCII values] A user must select a string from the provided list box lstQ1_5. The sum of the ASCII values associated with only the uppercase letters in the string must be calculated and displayed. Write code to do the following: • Declare a variable to store the sum of the values. • Extract and store the string selected from the list box lstQ1_5. • Use a loop to step through the characters in the string. If a character is an uppercase letter: o Determine the ASCII value of the uppercase letter o Add the value to the sum variable • Display the sum of the ASCII values of the uppercase letters in the label lblQ1_5. Copyright reserved Please turn over
Information Technology/P1 9 DBE/May/June 2025 SC/NSC Confidential Example of output if the string 'PGw#33' was selected from the list box: Example of output if the string 'jhy&^js' was selected from the list box: (9) • 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
Information Technology/P1 10 DBE/May/June 2025 SC/NSC Confidential SECTION B QUESTION 2: DATABASE PROGRAMMING A gaming company requires assistance in generating queries using a comprehensive database consisting of popular video games. A database called CompGamesDB.mdb, which contains information about popular video games released before the year 2020, has been created. The database contains two tables called tblCompanies and tblGames. The data pages attached at the end of the question paper provide information on the design of the database CompGamesDB.mdb 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 unit file. • Compile and execute the program. The program has no 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
Information Technology/P1 11 DBE/May/June 2025 SC/NSC Confidential • 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. • The content of the database is password protected, i.e. you will NOT be able to gain access to the content of the database using Microsoft Access. • Code is provided to link the GUI components to the database. Do NOT change any of the code provided. • TWO variables are declared as public variables, as described in the table below. Variable Data type Description tblCompanies TADOTable Refers to the table tblCompanies tblGames TADOTable Refers to the table tblGames 2.1 Tab sheet [2.1 - SQL] Example of the graphical user interface (GUI) for QUESTION 2.1: Copyright reserved Please turn over
Information Technology/P1 12 DBE/May/June 2025 SC/NSC Confidential 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 is 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 - USA companies] Display ALL the fields of ALL the companies in the tblCompanies table, that were founded in the USA. Example of output of the first four records: (3) 2.1.2 Button [2.1.2 - Year released] Display the GameTitle, Genre and the DateReleased of all games from the tblGames table that were released since the year 2019. Example of output of the first five records: (4) 2.1.3 Button [2.1.3 - Genre] The user must enter the genre of a game to search for, using an input dialogue box. Code has been provided to extract the genre entered by the user and store the genre in a variable called sGenre. Display the GameTitle and DateReleased of all games that match the genre entered by the user, sorted according to the date released, from the latest to the oldest game. Copyright reserved Please turn over
Information Technology/P1 13 DBE/May/June 2025 SC/NSC Confidential Example of output if the genre 'Sports' was entered: (4) 2.1.4 Button [2.1.4 - Average Income per year] Determine and display the average income per year, considering the year in which the company was founded. HINT: Divide the total income of all the games developed by the company by the number of years since the company was founded. NOTE: The values in the Income field in the tblGames table is in millions. Example: The income from the game 'Among Us' is represented as 500, which means R500 000 000. Display the name of the company and the average income per year in millions. The calculated average income per year must be displayed in currency format in a new field called AverageIncomePerYear. Example of output of the first four companies: (8) 2.1.5 Button [2.1.5 - Remove game] Write code to remove the game called Apex Legends from the tblGames table. HINT: Click Button 2.1.2 to see whether the record has been removed or not. NOTE: Restore the database to be able to use the original data when testing your code. (2) Copyright reserved Please turn over
Information Technology/P1 14 DBE/May/June 2025 SC/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.1 and QUESTION 2.2.2. • NO marks will be awarded for SQL statements in QUESTION 2.2. 2.2.1 Button [2.2.1 - Update genre] There are various Tetris games available such as Tetris 1, Tetris 2, Tetris 99, etc. The Genre of all the Tetris games have been stored incorrectly and will need to be changed. Write code to change the genre of all games that have 'Tetris' as part of the GameTitle field, to 'Puzzle'. (7) Copyright reserved Please turn over
Information Technology/P1 15 DBE/May/June 2025 SC/NSC Confidential 2.2.2 Button [2.2.2 - Show detail] The user must select a title of a game from the combo box cmbQ2_2_2. Code has been provided to extract the title of the game selected by the user and store the title in a variable called sGame. Display the game title selected, the genre, the company that developed the game and the country that the company is from, in a ShowMessage dialogue box. The GameTitle and Genre of the game must be displayed in the first line and the CompanyName and Country in the second line in the ShowMessage dialogue box, as shown in the example below. Example of input: Example of output: (12) • 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
Information Technology/P1 16 DBE/May/June 2025 SC/NSC Confidential SECTION C QUESTION 3: OBJECT-ORIENTED PROGRAMMING Gamers use an application that provide them with information about exclusive online/ offline games that are available for a single platform only. Do the following: • Open the incomplete program in the Question 3 folder. • Open the incomplete object class Game_U.pas. • Enter your examination number as a comment in the first line of the Question3_U.pas file and the Game_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. NOTE: You are NOT allowed to add any additional attributes or user-defined methods, unless instructed to do so in the question. Copyright reserved Please turn over
Information Technology/P1 17 DBE/May/June 2025 SC/NSC Confidential 3.1 The provided incomplete object class (TGame) contains the declaration of four attributes which describe a Game object. The UML class diagram for the TGame class is given below. TGame object - fName: String // Name of game - fOnline: Boolean // True if internet access is required to play and false if not - fDownloadCount: Integer // Number of times the game was downloaded - fPlatform: String // Which platform the game runs on (Xbox/PlayStation/PC) + constructor create(sName: String, bOnline: Boolean, iDownloadCount: Integer, sPlatform: String) + onlineStatus: String + updateDownloadCount(iNumberDownloads: Integer) + determinePopularity: String + getName: String (provided) + getOnline: Boolean (provided) + getPlatform: String (provided) + toString : String (provided - incomplete) Complete the code in the object class, as described in QUESTION 3.1.1 to QUESTION 3.1.5. Use the UML diagram provided to answer QUESTION 3.1.1 to QUESTION 3.1.5. 3.1.1 Write code for the constructor create method as defined in the provided class diagram. The attributes must be initialised using the received parameter values. (5) 3.1.2 Write code for the onlineStatus method that will return a String value, 'Yes' or 'No' to indicate whether the game requires internet access or not. (4) 3.1.3 Write code for the updateDownloadCount method, which will increase the value of the fDownloadCount attribute using the value received as a parameter. (3) Copyright reserved Please turn over
Information Technology/P1 18 DBE/May/June 2025 SC/NSC Confidential 3.1.4 Write code for a method called determinePopularity that uses the information below to determine the popularity of a game, only if it is an online game. Return the result (popularity) as a String value, based on the information in the table below. Return the string 'Not an online game' if the game is not an online game. The popularity of an online game is determined by the download count, e.g. a game with a download count of 500 000 or more is considered 'Very popular'. Download count Popularity Less than 100 000 'Not popular' Greater than or equal to 100 000 'Popular' and smaller than 500 000 Greater than or equal to 500 000 'Very popular' (10) 3.1.5 An incomplete toString method has been provided. Complete the code for the toString method to indicate whether internet access is required or not for the game ('Yes'/'No'). Format of the toString method: Name: <Name of the game> Internet required: <Yes/No> Number of downloads: <Download count> Platform: <Platform> (2) 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 objGame. Write code to perform the tasks described in QUESTION 3.2.1 to QUESTION 3.2.4. 3.2.1 Button [3.2.1 - Instantiate object] Code has been provided to extract and store the name, online status, number of downloads and the platform of a game from the components in variables. Write code to do the following: • Use the variables sName, bOnline, iNumberOfDownloads and sPlatform to instantiate a new objGame object. • Call the toString method to display the information of the Game object in the rich edit redQ3. Copyright reserved Please turn over
Information Technology/P1 19 DBE/May/June 2025 SC/NSC Confidential Example of input: Example of output: (5) 3.2.2 Button [3.2.2 - Game compatibility] The check box cbxQ3_2_2 must be ticked if the user has access to the internet, and the platform being used must be selected from the combo box cmbQ3_2_2. Code has been provided to extract and store the values selected by the user in variables bOnline and sPlatform. Write code to do the following: • Call the getOnline and getPlatform methods to check whether the user is able to play the game or not. • Use a message dialogue box to display an appropriate message indicating whether the user can play the game or not. Example of input: Copyright reserved Please turn over
Information Technology/P1 20 DBE/May/June 2025 SC/NSC Confidential Example of output: Example of input: Example of output: (4) 3.2.3 Button [3.2.3 - Update downloads] When a game is downloaded, the relevant attribute of the Game object must be updated accordingly. The user must enter the number of new downloads of the game using an input dialogue box. Write code to do the following: • Call the updateDownloadCount method using the value extracted from the input dialogue box as an argument. • Call the toString method to display the updated information of the Game object in the rich edit redQ3. Example of output for the game Elden Ring that had 650 000 downloads, and another 50 000 downloads were added: (5) Copyright reserved Please turn over
Information Technology/P1 21 DBE/May/June 2025 SC/NSC Confidential 3.2.4 Button [3.2.4 - Popularity] Write code to call the relevant methods to display the name and popularity level of the game in the rich edit redQ3. Example of output for the game Elden Ring that has 700 000 downloads: Example of output for the game Orange Box that has 50 000 downloads: (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
Information Technology/P1 22 DBE/May/June 2025 SC/NSC Confidential SECTION D QUESTION 4: PROBLEM-SOLVING PROGRAMMING 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 no functionality currently. Complete the code for each section of QUESTION 4, as described in QUESTION 4.1, QUESTION 4.2 and QUESTION 4.3. Example of graphical user interface (GUI) for QUESTION 4: A list box, lstQ4_2, which contains several sentences, has been provided in the program: Example of the sentences in list box lstQ4_2: • The clown is very fascinating • Six quick brown bytes jumped over lazy free algorithms • Five or six big jet planes zoomed quickly by the tower Copyright reserved Please turn over
Information Technology/P1 23 DBE/May/June 2025 SC/NSC Confidential 4.1 Function isPangram A pangram is a string that contains all the letters of the alphabet at least once. An example of a pangram: The quick brown fox jumped over the lazy dog. Create a function called isPangram that will receive a sentence as a parameter and determine if the sentence is a pangram or not. Return the value TRUE if the sentence is a pangram, or otherwise, return the value FALSE. (8) 4.2 Button [4.2 - Execute] Each of the sentences provided in the list box lstQ4_2 must be read and evaluated to determine if each sentence is a pangram or not. Write code to display the sentences and the results of the pangrams in the rich edit redQ4_2, as shown in the example below. NOTE: Your code must work for any set of sentences, not only for the sentences provided in the list box. Example of output: (8) 4.3 Button [4.3 - Distinct numbers] You have been provided with the following global array: arrNumbers: array [1 .. 20] of Real = (10.39, 5.33, 5.48, 9.53, 5.82, 4.21, 5.33, 2.26, 4.21, 8.48, 4.82, 9.53, 2.17, 5.33, 9.53, 8.46, 9.53, 10.26, 5.33, 9.21); The array arrNumbers contains twenty real numbers. Some of the numbers in the array appear more than once. A distinct/unique element in an array is an element that is not repeated. Copyright reserved Please turn over
Information Technology/P1 24 DBE/May/June 2025 SC/NSC Confidential Write code to do the following: • Identify the distinct/unique numbers in the arrNumbers array and display these numbers in the rich edit redQ4_3, as shown in the example of output below. • Determine which two of the distinct/unique numbers have the lowest difference between them, and display the two numbers in the labels lblNum1 and lblNum2 and the difference between them in the label lblDifference, formatted to TWO decimal places. Example of output: (14) • 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
Information Technology/P1 1 DBE/May/June 2025 SC/NSC Confidential INFORMATION TECHNOLOGY P1 DATABASE INFORMATION QUESTION 2: The design of the database tables is as follows: Table: tblCompanies This table contains the details of each company: Field name Data type Description CompanyID Text(10) Unique ID of the company CompanyName Text(30) Name of the company Country Text(15) Country where the company is from YearFounded Number Year when the company was established Example of the first ten records of the tblCompanies table: Table: tblGames This table contains the details of the games developed by each company: Field name Data type Description GameID Number Unique ID for the game GameTitle Text(40) Title of the game Genre Text(20) Genre of the game DateReleased DateTime Date the game was released Income Number Total income since the release date in millions CompanyID Text(10) The ID of the company that developed the game Copyright reserved Please turn over
Information Technology/P1 2 DBE/May/June 2025 SC/NSC Confidential Example of the first ten records of the tblGames 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
Information Technology/P1 DBE/May/June 2025 SC/NSC Confidential PLANNING PAGE 1 Copyright reserved
Information Technology/P1 DBE/May/June 2025 SC/NSC Confidential PLANNING PAGE 2 Copyright reserved
Information Technology/P1 DBE/May/June 2025 SC/NSC Confidential Examination sticker _______ 150 INFORMATION TECHNOLOGY P1 – MAY/JUNE 2025 INFORMATION SHEET (to be completed by the candidate AFTER the 3-hour exam session) CENTRE NUMBER: ______________________________________________________ EXAMINATION NUMBER: _________________________________________________ WORK STATION NUMBER: ________________________________________________ Version of Delphi used during the INFORMATION TECHNOLOGY SC/NSC May/June 2025 Examinations: Mark appropriate Other: box with a Delphi Delphi Delphi Delphi Delphi Delphi (Specify) cross (X) 10 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 Saved Attempted Maximum Mark Marker Filename number () () Mark Achieved Code Question1_P. 1 dproj 40 Question2_P. 2 dproj 40 MGame_U. 24 pas 3 Question3_P. 16 dproj Question4_P. 4 dproj 30 TOTAL 150 Comment: (for office/marker use only) ______________________________________________________________________ ______________________________________________________________________ Copyright reserved

Study this subject

More from Grade 12 Information Technology

View all