Skip to content

Information Technology Grade 12 P1 NSC November 2021 Memo

MemorandumInformation TechnologyGrade 12202123 pages

Grade 12 Information Technology Paper 1 memorandum from the NSC November Exam 2021 (Afrikaans), 23 pages. Read online or download the free PDF.

Free to read online, no sign-up needed

Answer online

Loading document…

Loading document…

Questions in this paper

Document textSearch extracted text and jump to a page.
Downloaded from hlayiso.com NASIONALE SENIOR SERTIFIKAAT GRAAD 12 INLIGTINGSTEGNOLOGIE V1 NOVEMBER 2021 NASIENRIGLYNE PUNTE: 150 Hierdie nasienriglyne bestaan uit 23 bladsye. Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com Inligtingstegnologie/V1 2 DBE/November 2021 NSS – Nasienriglyne ALGEMENE INLIGTING:  Hierdie nasienriglyne moet as die basis vir die nasiensessie gebruik word. Dit is voorberei om deur nasieners gebruik te word. Daar word na alle nasieners verwag om 'n deeglike standaardiseringsvergadering by te woon om seker te maak dat die riglyne konsekwent geïnterpreteer en tydens die nasien van die kandidate se werk toegepas word.  Let op dat leerders wat 'n alternatiewe korrekte oplossing as wat as voorbeeld van 'n oplossing in die nasienriglyne gegee word verskaf, volle krediet vir die relevante oplossing moet kry tensy die spesifieke instruksies in die vraestel nie gevolg is nie of die vereistes van die vraag nie nagekom is nie.  Bylaag A, B, C en D (bladsy 3 tot 10) sluit die nasienrubriek vir elke om te gebruik vir enigeen van die twee programmeringstale in.  Bylaag E, F, G en H (bladsy 11 tot 22) bevat voorbeelde in programmeringskode van oplossings vir Vrae 1 tot 4.  Kopieë van Bylaag A, B, C, D en die opsomming van die leerder se punte (bladsy 3 tot 10) moet vir elke leerder gemaak word en tydens die nasiensessie voltooi word. Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com Inligtingstegnologie/V1 3 DBE/November 2021 NSS – Nasienriglyne BYLAAG A VRAAG 1: NASIENRUBRIEK - ALGEMENE PROGRAMMERINGSVAARDIGHEDE SENTRUMNOMMER: EKSAMENNOMMER: MAKS. LEERDER- VRAAG BESKRYWING PUNTE PUNT 1.1 'FormCreate'-gebeurtenis Stel caption van lblV1_1 op 'Coding is '  Stel font se kleur van lblV1_1 op groen  4 Stel grootte van skrif van lblV1_1 op 16  Stel naam van skriftipe op 'Arial'  1.2 Knoppie - [1.2 – Getal rolletjies] Skep konstante LEKKERS_PER_ROL = 8 Verklaar heelgetalveranderlikes  Onttrek getal rustye uit spin edit  Bereken total getal lekkers (rustye x 4)  8 Bereken total aantal rolletjies (lekkers / LEKKERS_PER_ROL) // OF (lekkers/8) Rond op deur Ceil-funksie te gebruik  Vertoon getal rolletjies lekkers op lblV1_2  omgeskakel na String  1.3 Knoppie – [1.3 – Bereken volume] rRadius := 3; rVolume := rTetraVolume + 4/3* PI  * power(rRadius,3) /2  Vertoon Deur ShowMessage te gebruik met ”Volume “-teks  Waarde van volume  Geformatteer na een desimale plek  7 Let wel: In die formule: Aanvaar die waarde van 133 in plaas van rTetraVolume Aanvaar die waarde van 3 in plaas van rRadius In plaas van PI, aanvaar 22/7 of 3.14 In plaas van 4/3, aanvaar 1.33 Aanvaar enige korrekte alternatief vir power(rRadius, 3) waar die antwoord = 27 Aanvaar * 0.5 in plaas van /2 Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com Inligtingstegnologie/V1 4 DBE/November 2021 NSS – Nasienriglyne 1.4 Knoppie - [1.4 – Vertoon patroon] Maak afvoerarea skoon  Verkry simbool uit combo box  iGrootte = posisie van simbool in combo box  // (indeks + 1) Lus  rye van 0  tot iGrootte  // Lus van 1 tot iGrootte Inisialiseer afvoerstring  (Of voeg #13 by) Geneste Lus  kolomme van 0 tot iGrootte  Voeg simbool by afvoerstring  11 Vertoon afvoerstring  Let wel: Die beginwaarde van die lus sal afhang van of 1 by die iGrootte getel is (of 0 of 1) „n Korrekte oplossing wat nie van „n geneste lus gebruik maak nie moet met 1 punt gepenaliseer word Die punt wat aan die geneste luswaardes toegeken word moet dieselfde as die buitenste lus wees 1.5 Knoppie - [1.5 – Karakters] Genereer ewekansig „n aanvaarbare waarde  Gebruik die waarde om die ooreenstemmende karakter te onttrek Lus  Voeg karakter  by afvoerstring  Stel huidige karakter as vorige karakter  10 Genereer nuwe huidige karakter  Totdat huidige karakter  = vorige karakter  Vertoon afvoerstring  Let wel: ACSII-tabel in die reeks van 65 tot 91 String, skikking of case-stelling bv. 1 tot 26 TOTAAL AFDELING A: 40 Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com Inligtingstegnologie/V1 5 DBE/November 2021 NSS – Nasienriglyne BYLAAG B VRAAG 2: NASIENRUBRIEK – SQL EN DATABASISPROGRAMMERING SENTRUMNOMMER: EKSAMENNOMMER: MAKS. LEERDER- VRAAG BESKRYWING PUNTE PUNT 2.1 SQL-stellings 2.1.1 Knoppie [2.1.1 – Klubs van Gauteng en SA-geaffilieer] SELECT KlubNaam, KlubDorp FROM tblKlubs  WHERE Provinsie = "GP"  AND SA_Geaffilieer = True  3 Aanvaar WHERE Provinsie LIKE "%GP%" OF enige korrekte gebruik van LIKE 2.1.2 Knoppie [2.1.2 – Geboortejaar] SELECT LidNaam, LidVan, GeboorteDatum  FROM tblLede  WHERE year(GeboorteDatum) = 2002  Alternatiewe vir jaar: 3 WHERE year(GeboorteDatum) = "2002" BETWEEN #2002/01/01# AND #2002/12/31# LEFT(GeboorteDatum,4) MID(GeboorteDatum,1,4) LIKE "%2002%" OF LIKE "2002%" 2.1.3 Knoppie [2.1.3 – Vertoon lede] SELECT LidVan, LidNaam  FROM tblKlubs,tblLede  WHERE tblKlubs.KlubID = tblLede.KlubID  AND KlubNaam = "' + sKlubNaam + '"' Aanvaar ook JOIN SELECT LidVan, LidNaam FROM tblKlubs INNER JOIN tblLede 4 ON tblKlubs.KlubId = tblLede.KlubId WHERE tblKlubs.KlubNaam = "' + sKlubNaam +'"' QuotedStr(sKlubNaam) Aanvaar die gebruik van „aliasses‟ Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com Inligtingstegnologie/V1 6 DBE/November 2021 NSS – Nasienriglyne 2.1.4 Knoppie [2.1.4 – Gemiddelde lidmaatskapfooi] SELECT Provinsie, FORMAT(AVG(LedeGeld) ,"CURRENCY") AS GemFooi  FROM tblKlubs GROUP BY Provinsie  6 HAVING AVG(LedeGeld) > 400  Aanvaar ook: FORMAT(AVG(LedeGeld), "R0.00") 2.1.5 Knoppie [2.1.5 – Verander naam van lid] UPDATE tblLede  3 SET LidNaam = "Ainsley"  WHERE LidNaam = "Aiensley" Subtotaal: 19 Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com Inligtingstegnologie/V1 7 DBE/November 2021 NSS – Nasienriglyne VRAAG 2: NASIENRUBRIEK (VERVOLG) 2.2 Databasisprogrammering 2.2.1 Knoppie [2.2.1 – Uitstaande fooie] Gaan na eerste rekord in die tblKlubs  Gebruik lus om deur die tblKlubs tabel te stap  Vertoon die klub se naam en jaarlikse fooi vir elke klub  Gaan na die eerste rekord van die tblLede tabel  Gebruik 'n geneste lus om deur tblLede te stap  As die KlubID-veld in tblKlubs = die KlubID-veld in tblLede  Bereken uitstaande fooi  // Ledegeld – BedragBetaal 12 Vertoon die van, bedrag betaal en uitstaande bedrag in die richedit  Beweeg na volgende rekord in tblLede  Eindig lus (Lede tabel) Beweeg na volgende rekord in tblKlubs  Eindig lus (tblKlubs) Let wel: Aanvaar die repeat ..until-lus in plaas van die While-lus met die regte voorwaardes 2.2.2 Knoppie [2.2.2 – Dateer voltooide roetes op] Edit-mode  4 Voeg 1  by RoetesVoltooi-veld  Post  2.2.3 Knoppie [2.2.3 – Voeg lid by] Verkry die KlubID uit die radiogroup  Insert-mode  Ken waardes toe aan regte velde  5 Ken die KlubID wat verkry is aan KlubID-veld toe  Post  Aanvaar tblLede.Append Subtotaal: 21 TOTAAL AFDELING B: 40 Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com Inligtingstegnologie/V1 8 DBE/November 2021 NSS – Nasienriglyne BYLAAG C VRAAG 3: NASIENRUBRIEK - OBJEK-GEÖRIENTEERDE PROGRAMMERING SENTRUMNOMMER: EKSAMENNOMMER: MAKS. LEERDER- VRAAG BESKRYWING PUNTE PUNT 3.1.1 getGetalDae funksie Opskrif van funksie met heelgetalwaarde as terugstuurtipe  2 fGetalDae aan Result toegeken  3.1.2 berekenAfstPerDag Funksie se opskrif met integer as terugstuur-tipe  3 Result = round  (fAfstand/fGetalDae)  3.1.3 bepaalVlak funksie afstand per dag = berekenAfstPerDag  As afstand per dag > 15 EN (tipe terrein = „rocky‟  of tipe terrein = „sandy‟)  // (tipe terrein = „rotsagtig‟ of tipe terrein = „sanderig‟) 'Gevorderde' toegeken aan Result  Anders  10 As afstand per dag van 10  tot 15 is  // ingesluit Result = 'Gemiddelde'  Anders Result = 'Maklike'  Aanvaar ook: As afstand per dag > 15 // 1 punt en (NOT(tipe_terrein == „Flat‟)) // 2 punte 3.1.4 berekenTotKoste funksie Opskrif van funksie met real as terugstuur datatipe  en heelgetal parameter  4 Result = fKoste * parameter  Aanvaar ook currency, string of integer as terugstuurtipe op voorwaarde dat dit reg gebruik is 3.1.5 toString metode Opskrif van funksie met String terugstuur datatipe  Stuur roeteNaam, tipeTerrein, afstand, getal dae, 4 koste terug  Omgeskakel na regte formaat  Regte teks en reel-onderbrekings  Subtotaal: Objekklas 23 Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com Inligtingstegnologie/V1 9 DBE/November 2021 NSS – Nasienriglyne VRAAG 3: NASIENRUBRIEK (VERVOLG) MAKS. LEERDER VRAAG BESKRYWING PUNTE - PUNT 3.2.1 Combobox - cmbStapRoetes Assignfile met lêernaam wat verkry is + '.txt'  Reset lêer  Lees 4 reels uit lêer  Instansieer die objStapRoete-objek: 8 objStapRoete  := TStapRoete.Create  Gebruik vyf argumente  (sRoeteNaam,sTerrein,iGetal,iAfstand,rKoste) met regte datatipes en in die regte volgorde  Vertoon boodskap deur „n showMessage te gebruik  3.2.2 Knoppie [3.2.2 – Vertoon besonderhede van staproete] Gebruik objStapRoete.toString-metode  2 om inligting van staproete in die rich edit-komponent te vertoon  3.2.3 Knoppie [3.2.3 – Vertoon koste] Sleutel getal lede in groep in  Koste = objStapRoete.berekenTotKoste -metode 4 (groepgrootte)  Aanvaar berekenKoste as naam van die funksie 3.2.4 Knoppie [3.2.4 – Afstand per dag] Vertoon getal km deur die gebruik van IntToStr(objStapRoete.berekenAfstPerDag)  Vertoon moeilikheidvlak deur die gebruik van objStapRoete.bepaalVlak  3 Vertoon die getal dae deur die gebruik van IntToStr(objStapRoete.getGetalDae)  Aanvaar die moeilikheidgraad vertoon in kleinletters of hoofletters Subtotaal: Vormeenheidklas 17 TOTAAL AFDELING C: 40 Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com Inligtingstegnologie/V1 10 DBE/November 2021 NSS – Nasienriglyne BYLAAG D VRAAG 4: NASIENRUBRIEK – PROBLEEMOPLOSSING SENTRUMNOMMER: EKSAMENNOMMER: MAKS. LEERDER VRAAG BESKRYWING PUNTE - PUNT 4.1 Knoppie - [4.1 – Vertoon afstandskaart] Lus van 1 tot 5  Voeg naam by afvoerstring  Lus van 1 tot 5  Voeg afstand by afvoerstring  Vertoon afvoerstring  in rich edit 5 Let wel: Twee stelle blokhakies kan gebruik word in plaas van indekswaardes wat met „n komma geskei word bv. arrAfstande[iRy][iKol] 4.2 Knoppie - [4.2 – Validering] Lus van 1 tot 5  Lus van 1 tot 5  Toets of afstand in [iRow,iCol] <> afstand in [iKol,iRy]  Toets of afstand in [iRow,iCol] < afstand in [iKol,iRy]  Afstand in [iRow,iCol] = Afstand in [iKol,iRy]  Bou string met ry- en kolom-indeks en afstand  8 Vertoon afvoerstring  Aanvaar die lengte van die skikking in plaas van die waarde 5 in lusse Alternatiewe toets: Toets of afstand in [iRow,iCol] < afstand in [iKol,iRy] (2 punte) Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com Inligtingstegnologie/V1 11 DBE/November 2021 NSS – Nasienriglyne 4.3 Knoppie - [4.3 – Roetebeplanner] Onttrek roete uit combo box en inisialiseer totale afstand  Lus 4 keer  (onttrek alle moontlike kombinasies) Onttrek die eerste kontrolepunt  (Ry se indeks) Onttrek die tweede kontrolepunt  (Kolom se indeks) Vee eerste 2 karakters uit  (logika om by volgende indeks te begin) Lees afstand uit 2D  deur Ry en Kolom te gebruik Dateer totale afstand op  (Voeg afstand uit 2D by) 17 Bereken tyd (tyd X afstand)  Toets of roete tussen 2 punte by 2 and 4 is OF 4 and 2 is  Vermenigvuldig tyd met 2  Dateer tyd per dag op  Vertoon die name van die twee kontrolepunte  Vertoon afstand en tyd  (in enige formaat) Toets of tyd per dag > 480  Vertoon naam van kontrolepunt om te bespreek  Herstel tyd per dag na 0  Vertoon totale afstand  TOTAAL AFDELING D: 30 GROOTTOTAAL: 150 OPSOMMING VAN LEERDER SE PUNTE: SENTRUMNOMMER: LEERDER SE EKSAMENNOMMER: AFDELING A AFDELING B AFDELING C AFDELING D GROOT- VRAAG 1 VRAAG 2 VRAAG 3 VRAAG 4 TOTAAL MAKS. 40 40 40 30 150 PUNTE LEERDER SE PUNTE Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com Inligtingstegnologie/V1 12 DBE/November 2021 NSS – Nasienriglyne BYLAAG E: OPLOSSING VIR VRAAG 1 //=================================================================== // Vraag 1.1 4 punte //=================================================================== procedure TfrmVraag1.FormCreate(Sender: TObject); begin lblV1_1.Caption := 'Coding is '; lblV1_1.Font.Color := clGreen; lblV1_1.Font.Size := 16; lblV1_1.Font.Name := 'Arial'; end; //=================================================================== // Vraag 1.2 8 punte //=================================================================== procedure TfrmVraag1.btnV1_2Click(Sender: TObject); var iAantBreke, iAantRolle, iTotLekkers: integer; const LEKKERS_PER_ROL = 8; begin iAantBreke := spnV1_2.Value; iTotLekkers := iAantBreke * 4; iAantRolle := Ceil(iTotLekkers / LEKKERS_PER_ROL); lblV1_2.Caption := IntToStr(iAantRolle); end; //=================================================================== // Vraag 1.3 7 punte //=================================================================== procedure TfrmVraag1.btnV1_3Click(Sender: TObject); var rVolume, rRadius, rTetraVolume : real; begin rRadius := 3; rTetraVolume := 133; rVolume := rTetraVolume + 4/3 * PI * power(rRadius,3)/2; ShowMessage('Volume: ' + FloatToStrF(rVolume,ffFixed,10,1)); end; Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com Inligtingstegnologie/V1 13 DBE/November 2021 NSS – Nasienriglyne //=================================================================== // Vraag 1.4 11 punte //=================================================================== procedure TfrmVraag1.btnV1_4Click(Sender: TObject); var sSimbool, sReel: String; iRye, iKol, iGrootte: integer; begin redV1_4.Clear; sSimbool := cmbV1_4.Text; iGrootte := cmbV1_4.ItemIndex + 1; for iRye := 1 to iGrootte do begin sReel := ''; for iKol := 1 to iGrootte do sReel := sReel + sSimbool + ' '; redV1_4.Lines.Add(sReel); end; //Alternatiewe oplossing //for iRye := 1 to iGrootte do // sReel := sReel + sSimbool + ' '; //for iRye := 1 to iGrootte do // redV1_4.Lines.Add(sReel); end; //=================================================================== // Vraag 1.5 10 punte //=================================================================== procedure TfrmVraag1.btnV1_5Click(Sender: TObject); var cHuidigeKar: char; cVorigeKar: char; sAfvoer: String; begin //Kode wat voorsien is redV1_5.Clear; sAfvoer := ''; //veranderlike om afvoerstring te bou cHuidigeKar := Char(random(90 - 65 + 1) + 65); repeat sAfvoer := sAfvoer + cHuidigeKar; cVorigeKar := cHuidigeKar; cHuidigeKar := Char(random(90 - 65 + 1) + 65); until (cHuidigeKar = cVorigeKar); sAfvoer := sAfvoer + cHuidigeKar; redV1_5.Lines.Add(sAfvoer); end; end. Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com Inligtingstegnologie/V1 14 DBE/November 2021 NSS – Nasienriglyne BYLAAG F: OPLOSSING VIR VRAAG 2 //====================================================================== // Vraag 2.1 – Afdeling: SQL-stellings //====================================================================== //====================================================================== // Vraag 2.1.1 3 punte //====================================================================== sSQL1 := 'SELECT KlubNaam, KlubDorp FROM tblKlubs WHERE Provinsie = "GP" AND SA_Geaffilieer = true '; // of sonder = true //====================================================================== // Vraag 2.1.2 3 punte //====================================================================== sSQL2 := 'SELECT LidNaam, LidVan, GeboorteDatum FROM tblLede WHERE year(GeboorteDatum) = 2002'; // Alternatief vir jaar: BETWEEN #01/01/2002# AND #31/12/2002#'; //====================================================================== // Vraag 2.1.3 4 punte //====================================================================== sSQL3 := 'SELECT LidVan, LidNaam FROM tblKlubs,tblLede WHERE tblKlubs.KlubID = tblLede.KlubID AND KlubNaam = "' + sKlubNaam + '"'; //====================================================================== // Vraag 2.1.4 6 punte //====================================================================== sSQL4 := 'SELECT Provinsie, FORMAT(AVG(LedeGeld),"CURRENCY") AS GemFooi FROM tblKlubs ' + 'GROUP BY Provinsie HAVING AVG(LedeGeld) > 400'; //====================================================================== // Vraag 2.1.5 3 punte //====================================================================== sSQL5 := 'UPDATE tblLede SET LidNaam = "Ainsley" WHERE LidNaam = "Aiensley"'; //====================================================================== // Vraag 2.2 – Afdeling: Delphi-kode //====================================================================== //====================================================================== // Vraag 2.2.1 12 punte //====================================================================== procedure TfrmDBQuestion2.btnV2_2_1Click(Sender: TObject); var rVerskil : real; begin // Vraag 2.2.1 tblKlubs.First; Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com Inligtingstegnologie/V1 15 DBE/November 2021 NSS – Nasienriglyne while not tblKlubs.EOF do begin redV2_2_1.Lines.Add(tblKlubs['KlubNaam'] + ', jaarlikse fooi = ' + FloatToStrF(tblKlubs['LedeGeld'],ffCurrency,10,2)); redV2_2_1.Lines.Add('====================================='); tblLede.First; redV2_2_1.Lines.Add('Van'+ #9 + 'Betaal' + #9 + 'Uitstaande'); while not tblLede.EOF do begin if tblLede['KlubID'] = tblKlubs['KlubID'] then begin rVerskil := tblKlubs['LedeGeld'] – tblLede['BedragBetaal']; redV2_2_1.Lines.Add(tblLede['LidVan'] + #9 + FloatToStrF(tblLede['BedragBetaal'], ffCurrency,10,2) + #9 + FloatToStrF(rVerskil,ffCurrency,10,2)); end; tblLede.Next; end; redV2_2_1.Lines.Add(''); tblKlubs.Next; end; // Kode wat voorsien is dbCONN.SetupGrids(dbgrdONE, dbgrdMany, dbgrdSQL); end; // ========== =========================================================== // Vraag 2.2.2 4 punte // ===================================================================== procedure TfrmDBQuestion2.btnV2_2_2Click(Sender: TObject); begin // Vraag 2.2.2 tblLede.Edit; tblLede['RoetesVoltooi'] := tblLede['RoetesVoltooi'] + 1; tblLede.Post; end; // ===================================================================== // Vraag 2.2.3 5 punte // ===================================================================== procedure TfrmDBQuestion2.btnV2_2_3Click(Sender: TObject); var sVan, sNaam, sJaar, sLidKode : String; dGebDatum : TDateTime; iRoetesVoltooi, iKlubID : integer; rBedragBetaal : real; begin //Kode wat voorsien is sVan := 'Nkosi'; sNaam := 'Mothupi'; dGebDatum := 18-08-2003; sLidKode := 'Nko2140'; //Vraag 2.2.3 iKlubID := rgpV2_2_3.ItemIndex + 1; Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com Inligtingstegnologie/V1 16 DBE/November 2021 NSS – Nasienriglyne tblLede.Insert; tblLede['LidKode'] := sLidKode; tblLede['LidVan'] := sVan; tblLede['LidNaam'] := sNaam; tblLede['GeboorteDatum'] := dGebDatum; tblLede['KlubID'] := rgpV2_2_3.Items[rgpV2_2_3.ItemIndex][1]; tblLede.Post; tblLede.Refresh; end; // ===================================================== // {$ENDREGION} // ===================================================== // {$REGION 'Provided code: Stel DB konneksies - MOENIE VERANDER NIE!'} // ===================================================== procedure TfrmDBQuestion2.bmbHerwinDBClick(Sender: TObject); begin // Herwin die Databasis dbCONN.RestoreDatabase; redV2_2_1.Clear; dbCONN.SetupGrids(dbgrdONE, dbgrdMany, dbgrdSQL); end; // ===================================================== procedure TfrmDBQuestion2.FormClose(Sender: TObject; var Action: TCloseAction); begin // Diskonnekteer databasis EN maak oop konneksies toe dbCONN.dbDisconnect; end; procedure TfrmDBQuestion2.FormCreate(Sender: TObject); begin redV2_2_1.Paragraph.TabCount := 4; redV2_2_1.Paragraph.Tab[0] := 70; redV2_2_1.Paragraph.Tab[1] := 150; redV2_2_1.Paragraph.Tab[2] := 300; redV2_2_1.Paragraph.Tab[3] := 400; end; // ===================================================== procedure TfrmDBQuestion2.FormShow(Sender: TObject); begin // Stel konneksie met databasis op EN maak tabelle oop. dbCONN := TConnection.Create; dbCONN.dbConnect; tblKlubs := dbCONN.tblOne; tblLede := dbCONN.tblMany; dbconn.RunSQL('SELECT * FROM tblLede'); //WHERE KlubID = 1'); dbCONN.setupGrids(dbgrdONE, dbgrdMany, dbgrdSQL); pgcDBAdmin.ActivePageIndex := 0; end; // ===================================================== // {$ENDREGION} end. Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com Inligtingstegnologie/V1 17 DBE/November 2021 NSS – Nasienriglyne BYLAAG G: OPLOSSING VIR VRAAG 3 Objekklas unit StapRoete_U; interface uses SysUtils; type TStapRoete = class(TObject) private var // Kode wat voorsien is fRoeteNaam,fTipeTerrein: String; fGetalDae: integer; fAfstand: integer; fKostePP: real; public constructor create(sRoeteNaam,sTipeTerrein: String; iGetalDae: integer; rAfstand: integer; rKoste: real); function getGetalDae: integer; function berekenAfstPerDag: integer; function bepaalVlak: String; function berekenTotKoste(iGetal: integer): real; function toString:String; end; implementation { TStapRoete } // Kode wat voorsien is constructor TStapRoete.Create(sRoeteNaam,sTipeTerrein: String; iGetalDae: integer; rAfstand: integer; rKoste: real); begin fRoeteNaam := sRoeteNaam; fTipeTerrein := sTipeTerrein; fGetalDae := iGetalDae; fAfstand := rAfstand; fKostePP := rKoste; end; // ===================================================================== // Vraag 3.1.1 2 punte // ===================================================================== function TStapRoete.getGetalDae: integer; begin Result := fGetalDae; end; Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com Inligtingstegnologie/V1 18 DBE/November 2021 NSS – Nasienriglyne // ===================================================================== // Vraag 3.1.2 3 punte // ===================================================================== function TStapRoete.berekenAfstPerDag: integer; begin Result :=(Round(fAfstand/fGetalDae)); end; // ===================================================================== // Vraag 3.1.3 10 punte // ===================================================================== function TStapRoete.bepaalVlak: String; var rAfstPdag :real; begin //rAfstPdag := fAfstand / fGetalDae; rAfstPdag := berekenAfstPerDag; // roep funksie if ( rAfstPdag > 15 ) and ((fTipeTerrein = 'Rocky') or //'Rotsagtig' (fTipeTerrein = 'Sandy')) then //'Sanderig' Result := 'Gevorderde' else if (rAfstPdag >=10) AND(rAfstPdag <=15) then Result := 'Gemiddelde' else Result := 'Maklike' ; end; // ===================================================================== // Vraag 3.1.4 4 punte // ===================================================================== function TStapRoete.berekenTotKoste(iGetal: integer): real; begin Result := fKostePP * iGetal; end; // ===================================================================== // Vraag 3.1.5 4 punte // ===================================================================== function TStapRoete.toString: String; begin Result := fRoeteNaam + ': ' + fTipeTerrein + #13+ IntToStr(fAfstand) + ' km in ' + IntToStr(fGetalDae) +' dae '+ #13+ 'Koste per persoon: ' + FloatToStrF(fKostePP,ffCurrency,10,2); end; end. Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com Inligtingstegnologie/V1 19 DBE/November 2021 NSS – Nasienriglyne Hoofvormeenheid // ===================================================================== // Vraag 3.2.1 8 punte // ===================================================================== procedure TfrmStap.cmbV3_2_1Change(Sender: TObject); var tLeer: TextFile; sRoeteNaam,sTerrein,sAfstand,sGetal,sKoste: String; rAfstand,iGetalDae: integer; rKoste: real; begin // Kode wat voorsien is - moenie verander nie sRoeteNaam := cmbV3_2_1.Text; imgRoete.Picture.LoadFromFile(sRoeteNaam + '.jpg'); //Vraag 3.2.1 assignFile(tLeer,sRoeteNaam+'.txt'); reset(tLeer); readln(tLeer,sTerrein); readln(tLeer,sAfstand); readln(tLeer,sGetal); readln(tLeer,sKoste); objStapRoete := TStapRoete.create(sRoeteNaam,sTerrein,StrToInt(sGetal), StrToInt(sAfstand),StrToFloat(sKoste)); MessageDlg('Objek is geinstansieer.',mtInformation,[mbOk],0); //Kode wat voorsien is btnV3_2_2.Enabled := True; btnV3_2_3.Enabled := True; btnV3_2_4.Enabled := true; end; // ===================================================================== // Vraag 3.2.2 2 punte // ===================================================================== procedure TfrmStap.btnV3_2_2Click(Sender: TObject); begin // Vraag 3.2.2 redV3_2_2.Lines.Clear; redV3_2_2.Lines.Add(objStapRoete.toString); end; // ===================================================================== // Vraag 3.2.3 4 punte // ===================================================================== procedure TfrmStap.btnV3_2_3Click(Sender: TObject); var iGetal : integer; rKoste: real; begin // Vraag 3.2.3 iGetal := StrToInt(InputBox('Sleutel getal mense in','','7')); rKoste := objStapRoete.berekenTotKoste(iGetal); //Kode wat voorsien is pnlV3_2_4.Caption := FloatToStrF(rKoste,ffCurrency,10,2); end; Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com Inligtingstegnologie/V1 20 DBE/November 2021 NSS – Nasienriglyne // ===================================================================== // Vraag 3.2.4 3 punte // ===================================================================== procedure TfrmStap.btnV3_2_4Click(Sender: TObject); begin // Vraag 3.2.4 redV3_2_4.Lines.Clear; redV3_2_4.Lines.Add('Jy moet ten minste ' + IntToStr(objStapRoete.berekenAfstPerDag) + ' km per dag stap om hierdie ' + UpperCase(objStapRoete.bepaalVlak) + ' staproete in ' + IntToStr(objStapRoete.getGetalDae) + ' dae te voltooi.' ); end; end. Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com Inligtingstegnologie/V1 21 DBE/November 2021 NSS – Nasienriglyne BYLAAG H: OPLOSSING VIR VRAAG 4 // ===================================================================== // Vraag 4.1 5 punte // ===================================================================== procedure TfrmVraag4.btnV4_1Click(Sender: TObject); var iRy, iKol: integer; sAfvoer: String; begin // Kode wat voorsien is redV4.Lines.Add(sOpskrif); redV4.Lines.Add(' '); // Vraag 4.1 for iRy := 1 to 5 do begin sAfvoer := #13 + arrName[iRy] + #9; for iKol := 1 to 5 do begin sAfvoer := sAfvoer + FloatToStr(arrAfstande[iRy, iKol]) + #9; end; redV4.Lines.Add(sAfvoer); end; end; // ===================================================================== // Vraag 4.2 8 punte // ===================================================================== procedure TfrmVraag4.btnV4_2Click(Sender: TObject); var iRy, iKol: integer; sAfvoer: String; begin // Kode wat voorsien is redV4.Clear; redV4.Lines.Add('Vervang die afstand by:'); // Vraag 4.2 for iRy := 1 to 5 do begin for iKol := 1 to 5 do begin if arrAfstande[iRy, iKol] < arrAfstande[iKol, iRy] then begin arrAfstande[iRy, iKol] := arrAfstande[iKol, iRy]; redV4.Lines.Add('[' + IntToStr(iRy) + ',' + IntToStr(iKol) + '] met ' + FloatToStr(arrAfstande[iKol, iRy]); end; end; end; end; end; Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com Inligtingstegnologie/V1 22 DBE/November 2021 NSS – Nasienriglyne // ===================================================================== // Vraag 4.3 17 punte // ===================================================================== procedure TfrmVraag4.btnV4_3Click(Sender: TObject); var iTel, iRy, iKol: integer; rTotAfstand, rTydPerDag, rTydMinute: Real; sRoete: String; begin // Kode wat voorsien is redV4.Clear; // Vraag 4.3 sRoete := cmbRoetes.Text; redV4.Lines.Add('Roete: ' + sRoete + #13); rTotAfstand := 0; rTydPerDag := 0; for iTel := 1 to 4 do begin iRy := StrToInt(copy(sRoete, 1, 1)); iKol := StrToInt(copy(sRoete, 3, 1)); Delete(sRoete, 1, 2); if (iRy IN [2, 4]) AND (iKol IN [2, 4]) then rTydMinute := 20 * 2 * arrAfstande[iRy, iKol] else rTydMinute := 20 * arrAfstande[iRy, iKol]; redV4.Lines.Add(arrName[iRy] + ' tot ' + arrName[iKol] + ': ' + FloatToStr(arrAfstande[iRy, iKol]) + ' (' + FloatToStr(rTydMinute) + ' minute)'); rTotAfstand := rTotAfstand + arrAfstande[iRy, iKol]; rTydPerDag := rTydPerDag + rTydMinute; if rTydPerDag > 480 then begin redV4.Lines.Add('Bespreek by ' + arrName[iKol] + #13); rTydPerDag := 0; end; end; redV4.Lines.Add(#13 + 'Totale afstand: ' + FloatToStrF (rTotAfstand, ffFixed, 8, 1)+' km'); end; Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com Inligtingstegnologie/V1 23 DBE/November 2021 NSS – Nasienriglyne // ============================================================= // Kode wat voorsien is - moenie verander nie // ============================================================= procedure TfrmVraag4.FormActivate(Sender: TObject); var i, iPos: integer; begin redV4.Paragraph.TabCount := 6; iPos := 78; for i := 1 to 6 do begin redV4.Paragraph.Tab[i] := iPos; inc(iPos, 78); end; sOpskrif := ''+#9 + 'Morgan' + #9 + 'Haga Haga' + #9 + 'Cintsa' + #9 + 'Beacon' + #9 + 'Gonubie'; end; end. Kopiereg voorbehou

Study this subject

More from Grade 12 Information Technology

View all