Skip to content

Information Technology Grade 10 P1 2026 QP (Eng)

Question paperInformation TechnologyGrade 10202620 pagesPublisher: Hlayiso

Grade 10 Information Technology Paper 1 question paper from the November Mock Exam 2 2026 (English), 20 pages. Read online or download the free PDF.

Free to read online, no sign-up needed

Loading document…

Loading document…

November Mock Exam 2 2026

Document textSearch extracted text and jump to a page.
Mock hlayiso mock exams Practice Series: Grade 10 Exam Preparation WWW.HLAYISO.COM NATIONAL SENIOR CERTIFICATE GRADE 10 INFORMATION TECHNOLOGY P1 NOVEMBER EXAMINATION 2026 (MOCK) MARKS: 120 TIME: 3 hours This question paper consists of 20 pages. Copyright reserved Please turn over
Information Technology/P1 2 Hlayiso/Mock 2026 Grade 10 Mock INSTRUCTIONS AND INFORMATION 1. This question paper consists of FOUR questions. Candidates must answer ALL the questions. 2. The duration of this examination is three hours. Because of the nature of this examination, it is important to note that you will not be permitted to leave the examination room before the end of the examination session. 3. This question paper is set with programming terms that are specific to the Delphi programming language. The Delphi programming language must be used to answer the questions. 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. Where a question asks you to display a message, use a message box (ShowMessage) unless another component is specified. 8. Routines, such as search and counting routines, must be developed from first principles. You may NOT use built-in features of the Delphi programming language that do the work for you, for example Ceil (from the Math unit) or CharInSet. 9. You must save your work regularly 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 that you completed. Your examination number must appear on all printouts. 12. The files that you need to complete this question paper have been provided to you on the disk space allocated to you, in a folder called DataNov2026. Once copied, the following list of files will be available in the folder DataNov2026: Question 1: Question 3: Question1_P.dpr Question3_P.dpr Question1_P.dproj Question3_P.dproj Question1_U.dfm Question3_U.dfm Question1_U.pas Question3_U.pas carwash.bmp Question 2: Question 4: Question2_P.dpr Question4_P.dpr Question2_P.dproj Question4_P.dproj Question2_U.dfm Question4_U.dfm Question2_U.pas Question4_U.pas Copyright reserved Please turn over
Information Technology/P1 3 Hlayiso/Mock 2026 Grade 10 Mock QUESTION 1: GENERAL PROGRAMMING SKILLS Zola Car Wash is a small business in Tembisa that washes cars, SUVs, bakkies and minibus taxis. The owner needs a program to calculate the cost of a wash, the change that must be given to customers and the amount of water in the rainwater tank that is used to wash the vehicles. 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): Question 1 - General programming skills – □ × 1.1 1.4 1.1 - Set up Diameter of tank (m): imgQ1_1 Height of water (m): Car wash 1.4 - Water in tank 1.2 Type of wash Vehicle: Basic wash (R60) Full wash (R95) Select a vehicle Full valet (R150) 1.5 Add wax polish (R35) 1.5 - Bonus numbers 1.2 - Wash cost 1.3 Amount due (R): Amount paid (R): 1.3 - Change • Complete the code for each section of QUESTION 1, as described in QUESTION 1.1 to QUESTION 1.5 below. Copyright reserved Please turn over
Information Technology/P1 4 Hlayiso/Mock 2026 Grade 10 Mock 1.1 Button [1.1 - Set up] Write code to do the following: • Change the properties of the label lblQ1_1 as follows: o Display the text ’Zola Car Wash’. o Change the font size to 16. o Change the font style to bold. o Change the font colour to blue (clBlue). • Load the picture carwash.bmp, which is supplied in the Question 1 folder, into the image component imgQ1_1 and set the properties of the image so that the picture fills the entire image component. • Add the item ’Minibus taxi’ to the list of vehicle types in the combo box cmbQ1_2. Example of output: 1.1 1.1 - Set up Zola Car Wash (7) Copyright reserved Please turn over
Information Technology/P1 5 Hlayiso/Mock 2026 Grade 10 Mock 1.2 Button [1.2 - Wash cost] The user selects the type of wash from the radio group rgpQ1_2 and the type of vehicle from the combo box cmbQ1_2. If the customer wants the vehicle to be polished with wax, the check box chkQ1_2 is ticked. The prices of the washes are shown in the radio group: Basic wash R60, Full wash R95 and Full valet R150. These prices are for a car. The price of the wash is 20% more for an SUV/Bakkie and 50% more for a minibus taxi. The wax polish costs an extra R35 for any vehicle, regardless of its type. A constant WAX_PRICE = 35 has been provided. Write code to do the following: • If the type of wash OR the type of vehicle has not been selected, display the message ’Select the type of wash and the vehicle’ and exit the procedure. • Determine the price of the selected wash. • Increase the price if the vehicle is an SUV/Bakkie or a minibus taxi, as described above. • Add the price of the wax polish if the check box has been ticked. • Display the cost of the wash in the label lblQ1_2 in currency format with TWO decimal places, in the following format: Cost of the wash: <cost> NOTE: The item ’Minibus taxi’ is added to the combo box in QUESTION 1.1. Example of input and output for a full wash of an SUV/Bakkie with wax polish: 1.2 Type of wash Vehicle: Basic wash (R60) Full wash (R95) SUV/Bakkie Full valet (R150) ✓ Add wax polish (R35) 1.2 - Wash cost Cost of the wash: R 149.00 (10) Copyright reserved Please turn over
Information Technology/P1 6 Hlayiso/Mock 2026 Grade 10 Mock 1.3 Button [1.3 - Change] Customers often pay in cash. The user enters the amount due and the amount paid by the customer (both whole rand amounts) in the edit boxes edtQ1_3_Due and edtQ1_3_Paid. Code has been provided to clear the memo memQ1_3. Write code to do the following: • Extract the amount due and the amount paid from the edit boxes. • If the amount paid is less than the amount due, display the message ’Not enough money paid’ and exit the procedure. • Calculate the change. • Use the DIV and MOD operators to determine the number of R50, R20 and R10 notes and the number of R5, R2 and R1 coins that must be given as change, using as few notes and coins as possible. • Display the change and the number of each note and coin in the memo memQ1_3, as shown in the example below. Example of input and output if the amount due is R155 and the customer paid R300: 1.3 Change: R145 Amount due (R): 155 R50 notes: 2 R20 notes: 2 Amount paid (R): 300 R10 notes: 0 R5 coins: 1 1.3 - Change R2 coins: 0 R1 coins: 0 (7) Copyright reserved Please turn over
Information Technology/P1 7 Hlayiso/Mock 2026 Grade 10 Mock 1.4 Button [1.4 - Water in tank] Rainwater is collected in a cylindrical tank. Washing one vehicle uses 85 litres of water. A constant LITRES_PER_CAR = 85 has been provided. The user enters the diameter of the tank and the height of the water in the tank, both in metres, in the edit boxes edtQ1_4_Diam and edtQ1_4_Height. The volume of a cylinder is calculated with the formula: Volume = π × radius2 × height 1 cubic metre (m3 ) of water is 1 000 litres. Write code to do the following: • Extract the diameter and the height from the edit boxes. • Calculate the number of litres of water in the tank. • Calculate the number of vehicles that can be washed completely with the water in the tank. • Display the number of litres, rounded to the nearest whole number, in the label lblQ1_4_Vol, and the number of vehicles in the label lblQ1_4_Cars, as shown below. Example of input and output for a diameter of 1.8 m and a water height of 1.5 m: 1.4 Diameter of tank (m): 1.8 Height of water (m): 1.5 1.4 - Water in tank Water in tank: 3817 litres Number of cars that can be washed: 44 (6) Copyright reserved Please turn over
Information Technology/P1 8 Hlayiso/Mock 2026 Grade 10 Mock 1.5 Button [1.5 - Bonus numbers] After every wash, the customer receives THREE random bonus numbers. Write code to do the following: • Generate THREE random numbers from 1 to 9 (both included) and display them in the label lblQ1_5_Nums as shown below. • If all three numbers are the same, display the message ’Jackpot - FREE WASH!’ in the label lblQ1_5_Result. • Otherwise, use selection statements to determine the largest of the three numbers and display it in the label lblQ1_5_Result in the format: Largest number: <number> NOTE: You may NOT use the built-in Max function. Examples of output: 1.5 1.5 - Bonus numbers Numbers: 7 3 9 Largest number: 9 1.5 1.5 - Bonus numbers Numbers: 5 5 5 Jackpot - FREE WASH! NOTE: The numbers will differ due to the nature of random numbers. (5) • Enter your examination number as a comment in the first line of the program file. • Save your program. • A printout of the code may be required. [35] Copyright reserved Please turn over
Information Technology/P1 9 Hlayiso/Mock 2026 Grade 10 Mock QUESTION 2: SELECTION AND STRING MANIPULATION The Ubuntu Reading Club meets every Saturday at the community library in Mamelodi. The club needs a program to process the details of new members and to analyse the short book reviews that members write. Do the following: • Open the incomplete program in the Question 2 folder. • Enter your examination number as a comment in the first line of the Question2_U.pas file. • Compile and execute the program. The program has no functionality currently. Example of the graphical user interface (GUI): Question 2 - Selection and string manipulation – □ × 2.1 2.3 ID number: 2.1 - ID details Review: 2.3 - Review analysis 2.2 Full name: 2.2 - Membership code Complete the code for each section of QUESTION 2, as described in QUESTION 2.1 to QUESTION 2.3 below. Copyright reserved Please turn over
Information Technology/P1 10 Hlayiso/Mock 2026 Grade 10 Mock 2.1 Button [2.1 - ID details] A new member enters his or her South African ID number in the edit box edtQ2_1. Code has been provided to clear the memo memQ2_1. A South African ID number consists of 13 digits in the format YYMMDDSSSSCAZ: Digits Meaning 1–6 (YYMMDD) Date of birth: year, month and day 7–10 (SSSS) Gender: 0000 to 4999 = female; 5000 to 9999 = male 11 (C) Citizenship: 0 = South African citizen; 1 = permanent resident 12–13 (AZ) Other digits (not used in this question) Write code to do the following: • Validate the ID number. The ID number is valid if it consists of exactly 13 characters AND every character is a digit (’0’ to ’9’). Use a loop to test the characters. If the ID number is not valid, display the message ’Invalid ID number’ and exit the procedure. • Determine the year of birth: if the first two digits (YY) are 26 or less, the person was born in 20YY, otherwise in 19YY. • Display the date of birth in the format DD/MM/YYYY, the gender and the citizenship in the memo memQ2_1, as shown in the examples below. Examples of input and output: ID number 0803155081084: ID number 9811240263188: 2.1 2.1 ID number: 0803155081084 2.1 - ID details ID number: 9811240263188 2.1 - ID details Date of birth: 15/03/2008 Date of birth: 24/11/1998 Gender: Male Gender: Female Citizenship: South African citizen Citizenship: Permanent resident (11) Copyright reserved Please turn over
Information Technology/P1 11 Hlayiso/Mock 2026 Grade 10 Mock 2.2 Button [2.2 - Membership code] The user enters the full name of the member (first name and surname, separated by ONE space) in the edit box edtQ2_2. The ID number of the member is in the edit box edtQ2_1. Write code to create a membership code that consists of the following parts: • The first letter of the first name, in upper case • The CONSONANTS of the surname, in upper case (use a loop to remove the vowels ’A’, ’E’, ’I’, ’O’ and ’U’ from the surname) • The first TWO digits of the ID number, followed by a hyphen (’-’) • A random number from 100 to 999 (both included) Display the membership code in the label lblQ2_2 in the format: Membership code: <code> Example of input and output for ’Kagiso Mabuza’ with ID number 0803155081084: 2.2 Full name: Kagiso Mabuza 2.2 - Membership code Membership code: KMBZ08-870 NOTE: The last three digits will differ due to the nature of random numbers. (8) Copyright reserved Please turn over
Information Technology/P1 12 Hlayiso/Mock 2026 Grade 10 Mock 2.3 Button [2.3 - Review analysis] The user enters a short book review in the edit box edtQ2_3. Code has been provided to clear the memo memQ2_3. Words in the review are separated by one or more spaces. A word is a group of one or more letters; groups of characters that contain no letters (e.g. ’ - ’ or ’10’) are NOT words. A review may contain punctuation marks, such as commas and exclamation marks, which are NOT part of the words and must not be counted as letters. Write code to do the following: • Use ONE loop to inspect each character of the review and determine: o the number of words; o the total number of letters (’A’ to ’Z’ and ’a’ to ’z’); o the longest word (if two words have the same length, use the first one). • If the review contains no words, display the message ’Enter a review’ and exit the procedure. • Calculate the average word length (total number of letters divided by the number of words). • Determine the reading level of the review: Average word length Reading level Less than 4.5 Easy 4.5 or more, but less than 6 Moderate 6 or more Challenging • Display the results in the memo memQ2_3, with the average formatted to ONE decimal place, as shown in the example below. Example of input and output: 2.3 Review: Reading this book made my holiday truly unforgettable! 2.3 - Review analysis Number of words: 8 Number of letters: 46 Longest word: unforgettable (13 letters) Average word length: 5.8 Reading level: Moderate (11) • Enter your examination number as a comment in the first line of the program file. • Save your program. • A printout of the code may be required. [30] Copyright reserved Please turn over
Information Technology/P1 13 Hlayiso/Mock 2026 Grade 10 Mock QUESTION 3: LOOPS The Coding Club at Thuthuka High School practises loops by writing small programs. You have been asked to complete the club’s program. 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. The program has no functionality currently. Example of the graphical user interface (GUI): Question 3 - Loops – □ × 3.1 Enter a number: 3.1 - Digits 3.2 Number: 1 3.2 - Factors 3.3 3.3 - Times-table quiz 3.4 Price (R): Number of months: 1 3.4 - Price drop Complete the code for each section of QUESTION 3, as described in QUESTION 3.1 to QUESTION 3.4 below. Code has been provided to clear the memo memQ3 in each section. Copyright reserved Please turn over
Information Technology/P1 14 Hlayiso/Mock 2026 Grade 10 Mock 3.1 Button [3.1 - Digits] The user enters a positive whole number in the edit box edtQ3_1. Write code to do the following: • Use a conditional loop and the DIV and MOD operators to determine the number of digits in the number, the sum of the digits and the number with its digits in reverse order. You may NOT convert the number to a string. • Display the results in the memo memQ3, as shown below. NOTE: The reversed number is displayed as an integer, e.g. the reverse of 120 is 21. Example of output if 40725 was entered: Number of digits: 5 Sum of the digits: 18 Reversed number: 52704 (7) 3.2 Button [3.2 - Factors] The factors of a number are the whole numbers that divide into it without a remainder. The user selects a number in the spin edit spnQ3_2. Write code to do the following: • Use a loop to determine all the factors of the number and display them on ONE line in the memo memQ3. • Calculate the sum of the factors that are smaller than the number itself and display it. • Classify the number and display the classification as shown below: o If the sum is equal to the number, it is a PERFECT number. o If the sum is more than the number, it is an ABUNDANT number. o Otherwise, it is a DEFICIENT number. Examples of output if 28 and 36 were selected: Factors of 28: 1 2 4 7 14 28 Sum of the factors smaller than 28: 28 28 is a PERFECT number Factors of 36: 1 2 3 4 6 9 12 18 36 Sum of the factors smaller than 36: 55 36 is an ABUNDANT number (8) Copyright reserved Please turn over
Information Technology/P1 15 Hlayiso/Mock 2026 Grade 10 Mock 3.3 Button [3.3 - Times-table quiz] The club wrote a times-table quiz for Grade 8 learners. A constant NUM_QUESTIONS = 5 has been provided. Write code to do the following: • Use a for-loop to ask FIVE questions. For each question: o Generate two random numbers from 2 to 12 (both included). o Use an input box to display the question, for example 7 x 8 =, and to obtain the learner’s answer. o Determine whether the answer is correct and display the question number, the question, the answer and the word ’Correct’, or the word ’Wrong’ followed by the correct answer in brackets, as shown below. • After the loop, display the number of correct answers and the percentage, rounded to a whole number, in the format: Score: <number> out of 5 (<percentage>%) Example of output: 1. 7 x 8 = 56 Correct 2. 12 x 4 = 46 Wrong (48) 3. 9 x 6 = 54 Correct 4. 3 x 11 = 33 Correct 5. 8 x 8 = 64 Correct Score: 4 out of 5 (80%) NOTE: The questions will differ due to the nature of random numbers. (8) Copyright reserved Please turn over
Information Technology/P1 16 Hlayiso/Mock 2026 Grade 10 Mock 3.4 Button [3.4 - Price drop] The value of a gaming laptop drops by 8% of its current value every month. A constant DROP = 8 has been provided. Code has been provided to display the headings in the memo memQ3. The user enters the price of the laptop in the edit box edtQ3_4 and selects the number of months in the spin edit spnQ3_4. Write code to do the following: • Use a for-loop to calculate and display the value of the laptop at the end of each month. Display the month number and the value separated by a tab, with the value in currency format with TWO decimal places. • After the loop, calculate and display the total amount by which the value has dropped, in the format: Total drop in value: <amount> Example of output if a price of R12 000 and 6 months were entered: Month Value 1 R 11040.00 2 R 10156.80 3 R 9344.26 4 R 8596.72 5 R 7908.98 6 R 7276.26 Total drop in value: R 4723.74 (7) • Enter your examination number as a comment in the first line of the program file. • Save your program. • A printout of the code may be required. [30] Copyright reserved Please turn over
Information Technology/P1 17 Hlayiso/Mock 2026 Grade 10 Mock QUESTION 4: PROBLEM SOLVING The parking garage at the fictitious Riverside Junction Mall in Pretoria needs a program to calculate parking fees and to analyse how many cars use the garage. 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. Example of the graphical user interface (GUI): Question 4 - Problem solving – □ × 4.1 Entry time (hh:mm): Exit time (hh:mm): 4.1 - Parking fee 4.2 4.2 - Number plate 4.3 4.3 - Hourly cars Complete the code for each section of QUESTION 4, as described in QUESTION 4.1 to QUESTION 4.3 below. Code has been provided to clear the memo memQ4 in each section. Copyright reserved Please turn over
Information Technology/P1 18 Hlayiso/Mock 2026 Grade 10 Mock 4.1 Button [4.1 - Parking fee] The user enters the entry time and the exit time of a car in the edit boxes edtQ4_1_In and edtQ4_1_Out in the 24-hour format hh:mm, for example 08:45 or 9:10. A car enters and leaves the garage on the same day. The following tariffs apply: Time parked Parking fee 30 minutes or less Free More than 30 minutes, up R12 to 1 hour More than 1 hour R12 for the first hour PLUS R6 for every 30 minutes, or part of 30 minutes, after the first hour Maximum fee for a day R90 The constants FIRST_HOUR = 12, HALF_HOUR = 6 and DAY_MAX = 90 have been provided. Write code to do the following: • Use string-handling functions to extract the hours and minutes of the entry and exit times, and convert each time to the number of minutes after midnight. • If the exit time is not later than the entry time, display the message ’The exit time must be later than the entry time’ and exit the procedure. • Calculate the number of minutes that the car was parked and the parking fee. • Display the time parked in hours and minutes, and the parking fee in currency format, in the memo memQ4 as shown below. Example of output for an entry time of 08:45 and an exit time of 11:20 (2 h 35 min = R12 + 4 × R6): Time parked: 2 h 35 min Parking fee: R 36.00 (10) Copyright reserved Please turn over
Information Technology/P1 19 Hlayiso/Mock 2026 Grade 10 Mock 4.2 Button [4.2 - Number plate] The mall’s security office uses randomly generated number plates to test its new camera system. A test number plate has the following format: LLL DDD GP • THREE random uppercase letters. Vowels (’A’, ’E’, ’I’, ’O’ and ’U’) may NOT be used. Use a conditional loop to generate a new letter until the letter is not a vowel. • A space, followed by THREE random digits from 0 to 9. • A space, followed by the letters ’GP’. Write code to generate a test number plate and display it in the memo memQ4 in the format: Number plate: <number plate> HINT: The ASCII values of the uppercase letters ’A’ to ’Z’ are 65 to 90. Example of output: Number plate: WPD 789 GP NOTE: The number plate will differ due to the nature of random numbers. (7) Copyright reserved Please turn over
Information Technology/P1 20 Hlayiso/Mock 2026 Grade 10 Mock 4.3 Button [4.3 - Hourly cars] A security guard counts the number of cars that enter the garage every hour. A constant MAX_CARS = 200 has been provided. Write code to do the following: • Use an input box and a conditional loop to obtain the number of cars for hour 1, hour 2, and so on. The loop must stop when the value −1 is entered. • A number of cars that is less than 0 or more than MAX_CARS is invalid: display the message ’Invalid number of cars’ in a message box (ShowMessage) and do NOT process the value (the same hour number is used for the next input). • Display each valid hour and its number of cars in the memo memQ4. • After the loop, display the total number of cars, the quietest hour (the hour with the fewest cars; if more than one hour has the fewest cars, use the first one) with its number of cars and the average number of cars per hour, formatted to ONE decimal place, as shown below. If no valid data was entered, display only the message ’No data was entered’. Example of output if the values 45, 62, 250, 38, 71, 54 and −1 were entered: Hour 1: 45 cars Hour 2: 62 cars Hour 3: 38 cars Hour 4: 71 cars Hour 5: 54 cars Total number of cars: 270 Quietest hour: Hour 3 (38 cars) Average per hour: 54.0 (8) • Enter your examination number as a comment in the first line of the program file. • Save your program. • A printout of the code may be required. [25] TOTAL: 120 Copyright reserved

Study this subject

More from Grade 10 Information Technology

View all