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
Skip to contentAll 2021 papers 

_hlayiso.com_--50e776f8-b245-4554-9243-5cf350cf10d2/v1-50c5c39841428639bad4/card.webp)



View all





Information Technology Grade 12 P1 NSC November 2021 Memo
Grade 12 Information Technology Paper 1 memorandum from the NSC November Exam 2021 (Afrikaans), 23 pages. Read online or download the free PDF.
Information Technology · Grade 12 · NSC November Exam · 2021. Memorandum. Read online or download the PDF.
- Subject
- Information Technology
- Grade
- Grade 12
- Document type
- Memorandum
- Year
- 2021
- Exam period
- NSC November Exam
- Paper
- 1
- Curriculum
- CAPS
- Pages
- 23
- File size
- 423.0 KB
Free to read online, no sign-up needed
Loading document…
Loading document…
1 of 23
This exam
NSC November Exam 2021
Questions in this paper
Document textSearch extracted text and jump to a page.
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
Recommended for this subject

Question paper
Information Technology Grade 12 P1 NSC November 2021 QP

Memorandum
Information Technology Grade 12 P1 2021 Memo (Eng)
_hlayiso.com_--50e776f8-b245-4554-9243-5cf350cf10d2/v1-50c5c39841428639bad4/card.webp)
Memorandum
Information Technology Grade 12 P1 NSC November 2020 Memo

Memorandum
Information Technology Grade 12 P1 NSC November 2020 Memo

Memorandum
Information Technology Grade 12 P1 NSC November 2017 Memo

Memorandum
Information Technology Grade 12 P1 NSC November 2015 Memo
More from Grade 12 Information Technology

Question paper
Information Technology Grade 12 P2 Eastern Cape Mock 2025 QP

Question paper
Information Technology Grade 12 P2 2024 QP (Afr)

Question paper
Information Technology Grade 12 P2 2024 QP (Eng)

Question paper
Information Technology Grade 12 P1 November 2024 NSC QP

Question paper
Information Technology Grade 12 P2 November 2024 NSC QP

Memorandum