26
INLIGTINGSTEGNOLOGIE VRAESTEL 1 Voorbereidende Eksamen Augustus/September 2018 TOTAAL : 150 TYD : 3 UUR Hierdie vraestel bestaan uit 18 bladsye Ekurhuleni North District

€¦  · Web viewEdd vra sy kliënte R3.75 per dosyn eiers (12 eiers per dosyn). Die verpakking word gedoen teen ʼn ekstra fooi in sagte (50 sent per dosyn) of harde (R1.50 per

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

INLIGTINGSTEGNOLOGIE

VRAESTEL 1

Voorbereidende EksamenAugustus/September 2018

TOTAAL : 150

TYD : 3 UUR

Hierdie vraestel bestaan uit 18 bladsye

Ekurhuleni North District

Inligtingstegnologie/V1 Voorbereidende eksamen 2018

INSTRUKSIES EN INLIGTING

1. Hierdie vraestel is in VIER afdelings ingedeel. Kandidate moet al die vrae in al VIER AFDELINGS beantwoord.

2. Die duur van hierdie eksamen is drie uur. As gevolg van die aard van die eksamen is dit belangrik om daarop te let dat jy nie toegelaat sal word om die eksamenlokaal voor die einde van die sessie te verlaat nie.

3. Hierdie vraestel is opgestel met programmeringsterme wat kenmerkend vir Delphi as programmeringstaal is. Die Delphi programmeringstaal moet gebruik word om die vrae te beantwoord.

4. Maak seker dat jy die vrae beantwoord volgens die spesifikasies wat in elke vraag gegee word. Punte sal volgens die voorgeskrewe vereistes toegeken word.

5. Beantwoord slegs wat in elke vraag gevra word. Byvoorbeeld, indien die vraag nie datavalidering vra nie, sal geen punte vir datavalidering toegeken word nie.

6. Jou programme moet op so ʼn manier gekodeer word dat dit met enige data sal werk en nie net met die voorbeelddata wat verskaf is of enige data-uittreksels wat in die vraestel verskyn nie.

7. Roetines, soos soek, sorteer en seleksie, moet vanuit eerste beginsels ontwikkel word. Jy mag NIE die ingeboude funksies van Delphi vir enige van hierdie roetines gebruik NIE.

8. Alle datastrukture moet deur jou, die programmeerder, verklaar word, tensy die datastrukture verskaf word.

9. Jy moet jou werk gereeld stoor op die disket/CD/DVD/geheuestokkie wat aan jou gegee is of op die skyfspasie wat vir hierdie eksamensessie aan jou toegeken is.

10. Maak seker dat jou naam en van as kommentaar verskyn in elke program wat jy skryf, asook op elke gebeurtenis wat aangedui word.

11. Indien dit vereis word, druk die programmeringskode van al die programme/klasse wat jy voltooi het. Jy sal na die eksamensessie ʼn halfuur tyd vir drukwerk gegee word.

12. Aan die einde van hierdie eksamensessie moet jy ʼn disket/CD/DVD/geheuestokkie inhandig met al jou werk daarop gestoor of jy moet seker maak dat al jou werk op die skyfspasie wat vir hierdie eksamensessie aan jou toegeken is, gestoor is. Maak seker dat al die lêers gelees kan word.

Bladsy 2 van 19 Blaai om asseblief

Inligtingstegnologie/V1 Voorbereidende eksamen 2018

13. Die lêers wat jy benodig om hierdie vraestel te voltooi, is gestoor op ʼn disket /CD/DVD/geheuestokkie of op die skyfspasie wat aan jou toegeken is. Die lêers word in die vorm van wagwoordbeskermde uitvoerbare lêers verskaf.

Doen die volgende:

Dubbelklik op die wagwoordbeskermde ZIP lêer:DataPRELIM2018.

Klik op die ‘Extract’-knoppie Tik die volgende wagwoord in: 20prelim18

Nadat die datalêers onttrek (‘extracted’) is, sal die volgende lys met lêers in die lêergids DataPRELIM2018 AFR beskikbaar wees:

Vraag 1: Vraag 3:Vraag1_P.dpr Vraag1_P.dproj Vraag1_P.resVraag1_U.dfmVraag1_U.pas

clsBestelling.pas spyskaart.txtVraag3_P.dprVraag 3_P.dproj Vraag 3_P.resVraag 3_U.dfm Vraag 3_U.pas

Vraag 2: Vraag 4:dmVraag2_U.dfmdm Vraag2_U.pasVraag2_P.dprVraag2_P.dprojVraag2_P.resVraag2_U.dfmVraag2_U.pasVraag2DB.mdbVraag2DBBACKUP.mdb

Vrugteopskrif.jpgVrugte.jpgVraag4_P.dprVraag 4_P.dprojVraag 4_P.resVraag4_U.dfmVraag4_U.pas

Bladsy 3 van 19 Blaai om asseblief

Inligtingstegnologie/V1 Voorbereidende eksamen 2018

Bladsy 4 van 19 Blaai om asseblief

Inligtingstegnologie/V1 Voorbereidende eksamen 2018

VRAAG1: ALGEMENE PROGRAMMERINGSVAARDIGHEDE

SCENARIO: Eggy Edd’s Aflewerings hanteer die vervoer van eiers tussen vier bekende provinsies.

Maak die onvolledige program Vraag1_P in die VRAAG 1-lêergids oop. Jy is van die volgende gebruikerskoppelvlak voorsien:

1.1 Knoppie [VRAAG 1.1]

Voordat enige aflewerings gedoen kan word, word die vragmotorbestuurder se persoonlike besonderhede benodig. Skryf die kode vir hierdie knoppie wat al die persoonlike inligting van die vragmotorbestuurder sal opsom en vertoon vir die toepaslike richedit (redBestuurder) komponent.

LET WEL: dat die geldigheid van die selnommer (10 syfers is ʼn geldige nommer) asook ʼn geskikte opskrif deel moet vorm van die afvoer. Verwys na die voorbeeld hier onder vir die vereiste uitleg van die afvoer.

Voorbeeld van ’n bestuurder se besonderhede met ʼn GELDIGE selnommer.

Voorbeeld van ’n bestuurder se besonderhede met ʼn ONGELDIGE selnommer Bladsy 5 van 19 Blaai om asseblief

Inligtingstegnologie/V1 Voorbereidende eksamen 2018

(14)

1.2 Knoppie [VRAAG 1.2]

Daar moet vir elke bestuurder ʼn spesifieke kode gegenereer word. Hierdie kode moet soos volg saamgestel word:

Die bestuurder se naam. ʼn ‘X’ gevolg deur die bestuurder se ervaring in jare: ‘01’ vir een jaar, ‘02’ vir

twee jaar, ‘03’ vir drie jaar en ‘04’ vir vier of meer jare se bestuurservaring.

LET WEL: Indien die jare ervaring nie aangedui is nie, moet ʼn ‘X??’ aan die einde bygevoeg word.

Skryf die kode wat hierdie kode sal genereer en in die gegewe afvoerkomponent (pnlGenereerKode)sal vertoon.

Voorbeeld van die korrekte afvoer vir Thomas met 3 jaar ervaring:

Voorbeeld van die korrekte afvoer vir Gerald waar geen ervaring aangedui is nie:

(9)

Bladsy 6 van 19 Blaai om asseblief

Inligtingstegnologie/V1 Voorbereidende eksamen 2018

1.3 Knoppie [VRAAG 1.3]

Edd vra sy kliënte R3.75 per dosyn eiers (12 eiers per dosyn). Die verpakking word gedoen teen ʼn ekstra fooi in sagte (50 sent per dosyn) of harde (R1.50 per dosyn) houers. Indien ʼn kliënt groter eiers as die normale grootte verkies, word ʼn ekstra 15 sent per dosyn gehef voor aflewering.

Skryf kode om die volgende te doen:

Verklaar twee nie-lokale (class scope) veranderlikes wat die dosyne en finale koste sal stoor.

Indien geen verpakking deur die gebruiker geselekteer is nie, moet ʼn gepaste boodskap soos hieronder aangedui vertoon word:

Bereken en vertoon die finale koste gebaseer op die bedrag per dosyn, die tipe verpakking en die grootte (groot of nie).

LET WEL: dat berekenings per dosyn altyd afgerond sal word na die grootste heelgetal, byvoorbeeld 50 eiers = 5 dosyn (nie 4 nie.)

Voorbeeld van korrekte afvoer vir 1200 normale grootte eiers in sagte verpakking:

Voorbeeld van korrekte afvoer vir 42000 groot eiers in harde verpakking:

(19)

Totaal Vraag 1 [42]

Bladsy 7 van 19 Blaai om asseblief

Inligtingstegnologie/V1 Voorbereidende eksamen 2018

VRAAG 2: SQL EN DATABASIS

SCENARIO: Deli Express is 'n deli in jou area wat bestellings van hulle kliënte neem en dit aflewer. Alle bestellings- en kliënte-inligting is in ʼn Access databasis gestoor. Jou hulp word benodig om navrae uit die databasis te skep.

Die Vraag2DB.mdb databasis bevat twee tabelle naamlik tblKliënte en tblBestellings.

Voorbeeld data vanaf die tblKliënte tabel

Voorbeeld data vanaf die tblBestellings tabel

NEEM KENNIS: Die datumformaat kan anders vertoon op jou rekenaar a.g.v. die plaaslike stellings (regional

settings) op jou rekenaar. Kode vir die koppeling tussen Delphi en Access databasis is gegee.

Maak die onvoltooide program Vraag2_P in die Vraag 2 lêergids oop. Jy is van die volgende koppelvlak voorsien :

Bladsy 8 van 19 Blaai om asseblief

Inligtingstegnologie/V1 Voorbereidende eksamen 2018

2.1 Voltooi SQL kode vir elk vir die volgende vrae 2.1.1 tot 2.1.5, dit is keusekaart opsies A-E.

2.1.1 Keusekaart Opsie A

Die deli eienaar wil ʼn lys van al die kliënte sien. Vertoon al die besonderhede van die kliënte wat in die tblKliënte tabel gestoor is, gesorteer volgens eerstens die Van- en tweedens die Naam-veld.

(3)

Bladsy 9 van 19 Blaai om asseblief

Inligtingstegnologie/V1 Voorbereidende eksamen 2018

2.1.2 Keusekaart Opsie B

Daar was ʼn klagte dat die melkprodukte wat tussen 18 Augustus 2018 en 25 Augustus 2018 bestel is suur was.

Vertoon die BestelID, BestelDatum en ProdukBeskrywing van al die melk bestellings wat tussen 18 Augustus 2018 en 25 Augustus 2018 geplaas is in die tblBestellings tabel.

(5)2.1.3 Keusekaart Opsie C

Elke kliënt moet elke dag die totale koste vir al sy bestellings vir daardie dag ontvang. Vertoon KliëntID, BestelDatum en ʼn berekende veld genaamd Totale koste vir elke kliënt vir die dag waarop hulle bestel het.

(5)2.1.4 Keusekaart Opsie D

Al die vroulike kliënte met ʼn MTN selnommer (‘083’) moet verander word na premium kliënte (PremiumGebruiker veld), want MTN borg die deli. Sodra die rekord(s) suksesvol verander is, moet daar ʼn boodskap verskyn wat sê dat dit suksesvol verander is. Die kode vir hierdie boodskap is gegee. (4)

Bladsy 10 van 19 Blaai om asseblief

Inligtingstegnologie/V1 Voorbereidende eksamen 2018

2.1.5 Keusekaart Opsie E

Voltooi die kode deur ʼn navraag te skryf wat die volgende bestellingsinligting by die tblBestellings tabel sal voeg:

HAM200 as die BestelID, vandag se datum as die BestelDatum, Hamburger as die ProdukBeskrywing, 3 as die Aantal, R15.00 as die Bedrag en YAIS92 as die KliëntID.

Sodra hierdie rekord suksesvol bygevoeg is, moet daar ʼn boodskap verskyn wat sê die rekord is suksesvol bygevoeg. Die kode vir hierdie boodskap is gegee. (3)

2.2 DATABASIS MANIPULASIE

Bladsy 11 van 19 Blaai om asseblief

Inligtingstegnologie/V1 Voorbereidende eksamen 2018

2.2.1 Knoppie [Vraag 2.2.1]

Bepaal en vertoon, in die redVertoon richedit, die aantal en persentasie wat deur elke geslag in die Kliënte tabel verteenwoordig word.

Voorbeeld van afvoer:

(11)2.2.2 Knoppie [Vraag 2.2.2]

Skryf kode om die huidige rekord van die tblBestellings tabel te verwyder. Die gebruiker moet die verwydering van die rekords eers bevestig voordat die rekord verwyder mag word.

Voorbeeld van GUI:

(4)

2.2.3 Knoppie [Vraag 2.2.3]

Voeg ʼn nuwe kliënt se inligting by in die tblKliënte tabel. Kry die inligting deur die gegewe diagloogbokse (inputboxes) te gebruik.

(3)Totaal Vraag 2 [38]

Bladsy 12 van 19 Blaai om asseblief

Inligtingstegnologie/V1 Voorbereidende eksamen 2018

VRAAG 3: OBJEK-GEöRIëNTEERDE PROGRAMMERING

SCENARIO: Rachel besit ʼn klein wegneemete-kombuis waar sy spesialiseer in 15 verskillende geregte. Dit sluit in voorgeregte, hoofgeregte en nageregte. Kliënte kan kies tussen enige van hierdie kategorieë wanneer hulle iets te ete bestel.

Doen die volgende voordat jy die onderstaande vraag beantwoord:

Maak die onvolledige program in die Vraag 3 gids oop. Maak die onvolledige objek klas eenheid (‘unit’) clsBestelling.pas oop. Voltooi die program en voer dit uit.

3.1 Klas eenheid [Class Unit]

Die onvolledige objek-klaseenheid (TBestelling) bevat die verklaring van eienskappe (attributes) wat ʼn Bestelling-objek beskryf.

Die volledige stel eienskappe /attribute / privaat velde van ʼn Bestelling objek (‘n enkele gereg) is as volg verklaar:

fGeregNaam – Die beskrywing van die item/gereg. fTipeGereg – Die tipe gereg (bv. Voor- / Hoof- / Nagereg) fBereiTyd – Die tyd (in minute) wat dit neem om ʼn gereg voor te

berei. fPrysKlas – Die prysklas waarvolgens Rachel elke gereg bestuur

(daar is drie: 1, 2 of 3)   fKoste – Die koste van ʼn gereg/item in Rand (R).

Die volgende metodes is voorsien:

ToString: ʼn Onvolledige metode wat gebruik word om die attribute van die objek as ‘n enkele string saam te stel en terug te stuur.

Drie toegangs- (accessor) metodes (GETKoste, GETTipeGereg en GETGeregNaam).

Voltooi die kode in die objek klaseenheid (clsBestelling) soos beskryf in VRAAG 3.1.1 tot VRAAG 3.1.4.

3.1.1 Skryf ʼn konstruktor (constructor) metode, naamlik Skep, wat die geregnaam, tipe gereg, prysklas en voorbereidingstyd as parameters ontvang en aan die toepaslike klas attribute sal toeken. Stel die fKoste veld na 0. (6)

3.1.2 Skryf ’n wysigings – (mutator) metode, naamlik setBestelling, wat die geregnaam, tipe gereg, voorbereidingstyd en koste as parameters ontvang en aan die toepaslike klas attribute sal toeken (6)

Bladsy 13 van 19 Blaai om asseblief

Inligtingstegnologie/V1 Voorbereidende eksamen 2018

3.1.3 Rachel se kombuis gebruik drie prysklasse wat gelys is en as volg bereken word:

1 : Koste = R3.50 x Voorbereidingstyd in minute2 : Koste = R5.65 x Voorbereidingstyd in minute3 : Koste = R7.80 x Voorbereidingstyd in minuteUitsondering!: As die item ʼn T-been en skyfies is, is die koste

R145.00 ongeag die voorbereidingstyd.

Skryf ʼn metode genoem BerekenKoste wat die koste van ʼn gereg (Bestellings objek) volgens bogenoemde formule sal bereken en die resultaat aan die fKoste attribuut sal toeken. Gebruik die fPrysKlas eienskap om te bepaal in watter prysklas (1, 2, 3 of uitsondering) die gereg / Bestellings objek val.. (8)

3.1.4 Voltooi die toString metode soos volg:

Skryf ’n stelling om die BerekenKoste metode te roep voordat die totale koste vertoon word.

Slegs kontant sal aanvaar word indien die totale koste minder as R50.00 is, andersins kan kontant of ’n kredietkaart gebruik word. Genereer ’n toepaslike boodskap wat deel van die terugvoerstring van die metode sal wees.

’n Voorbeeld van die terugvoerstring:

(4)

3.2 HOOFVORMEENHEID [Main Form Unit]Jy is van die volgende gebruikerskoppelvlak voorsien:

Die volgende globale (class scope) veranderlikes is verklaar:ʼn Tekslêer

Bladsy 14 van 19 Blaai om asseblief

Inligtingstegnologie/V1 Voorbereidende eksamen 2018

(Spyskaart.txt) is voorsien in die datagids. Elke reël in die tekslêer bevat die onverwerkte inligting van ʼn gereg wat bestel kan word.

Die RoepObjek metode lees die tekslêer en onttrek die tipe, die naam en die prysklas van elke gereg asook die tyd wat dit neem om elke gereg voor te berei.

Die Info objek is ’n instansie van ’n reeds gedefinieerde en uitgevoerde (compiled) Tinfo klas.

3.2.1 Knoppie [Vraag 3.2.1]

Voeg kode in die onvoltooide btnV3_2_1 gebeurtenishanteerder (event handler) om:

o die RoepObjek metode te roep (call),

o die objBestel te instansieer deur die konstruktor (constructor) metode (Skep) vir die klas Tbestelling te roep (call) met die volgende argumente: tydelikNaam, tydelikTipe, tydelikKlas, tydelikPrep,

o die toepaslike metodes van die objBestel objek te roep (call) om die geregtipe, die geregnaam en die koste vir die gereg in die listbox lstLys te vertoon.

Voorbeeld van die afvoer:

(10)

3.2.2 Knoppie [Vraag 3.2.2]

Die gebruiker moet ʼn item / gereg uit die lys in die lstLys komponent selekteer voordat die gereg inligting bepaal en in die afvoerkomponent (redVertoon) wat daarvoor voorsien is, vertoon kan word.

Voeg kode by die onvoltooide btnV3_2_2 om die volgende te doen:

o Instansieer die Info objek met die gereginskrywing wat in die listbox gekies is as argument deur die create metode in die tInfo klas te roep wat ’n enkele string waarde as parameter ontvang.

Bladsy 15 van 19 Blaai om asseblief

Inligtingstegnologie/V1 Voorbereidende eksamen 2018

LET WEL: Maak gebruik van die konstante waarde GeregGekies indien jy nie die inskrywing uit die listbox kan onttrek nie.

o Roep die GetInfo metode vir die Info objek met die volgende argumente: tydelikNaam, tydelikTipe, tydelikPrep, tydelikKoste.

o Roep die objBestel objek se toepaslike metodes om die gereg wat in die listbox geselekteer is se inligting in die richedit redVertoon te vertoon.

Voorbeeld van afvoer as die Slakgereg gekies is:

Voorbeeld van afvoer as die Tiramisu gekies is:

(6)

Totaal Vraag 3 [40]

Bladsy 16 van 19 Blaai om asseblief

Inligtingstegnologie/V1 Voorbereidende eksamen 2018

VRAAG 4: ALGEMENE PROBLEEMOPLOSSING

SCENARIO: VetVegters laat hulle lede toe om ʼn beperkte hoeveelheid vette, proteïene en koolhidrate per maaltyd te eet. Jy moet hulle help deur ʼn program te voltooi wat hulle lede kan gebruik om uit te vind watter vrugte in hulle daaglikse dieet gebruik kan word.

TWEE 1-dimensionele skikkings en EEN 2-dimmensionele skikking is gegee: Die volgende skermskoot toon die inhoud van die onderskeie skikkings:

arrOpskrifte : array[1..5] of string = ('Vars vrugte(1/2 kop)','Kalorieë','Vet(g)','Koolhidrate(g)','Proteïene(g)');

arrVrugte : array[1..20] of string = ('Waatlemoen','Framboos','Nektarien','Pomelo','Perske','Appel','Swartbessies', 'Pynappel','Appelkoos','Kersie','Lemoen','Nartjies','Pruim','Peer','Mango','Kiwi', 'Druiwe','Piesang','Rosyne (1/4 kop)','Dadels (1/4 kop)');

arrVoeding : array[1..20,1..4] of real = ((24.3,0.3,5.5,0.5),(30.1,0.3,7.1,0.6),(33.8,0.3,8.1,0.6),(34.5,0.1,8.6,0.6), (36.6,0.1,9.4,0.6),(36.9,0.2,9.5,0.1),(37.4,0.3,9.2,0.5),(38,0.3,9.2,0.3), (39.6,0.3,9.2,1.2),(42.1,0.6,9.7,0.7),(42.3,0.1,10.6,0.8),(42.9,0.2,10.9,0.6), (45.4,0.5,10.7,0.7),(48.7,0.3,12.5,0.3),(53.6,0.2,14,0.4),(54,0.4,13.2,0.9), (568,0.5,14.2,0.5),(69,0.4,17.6,0.8),(109,0.2,29,1.2),(122.4,0.2,33,0.4));

Doen die volgende: Voer die onvoltooide program in die Vraag 4 gids uit. Die program het op die oomblik

geen funksionaliteit nie. Voltooi die kode vir elke vraag soos beskryf in VRAAG 4.1 tot VRAAG 4.5. Die gebruik van goeie programmeringstegnieke en modulêre ontwerp moet toegepas

word in die ontwerp en kodering van jou oplossing.

4.1 Skryf kode soos omskryf in vraag 4.1.1 en vraag 4.1.2 wanneer die program uitgevoer word.

4.1.1 Skryf kode om die opskrifte, vrugtename en voedingswaardes soos gegee in die skikkings, in enige afvoer komponent van jou keuse te vertoon.

Gebruik arrOpskrifte om die opskrifte vir die kolomme te voorsien en arrVrugte om opskrifte vir die rye te voorsien.

LET WEL: Punte word toegeken vir modulêre programmeringstegnieke. (7)

4.1.2 Voeg ʼn dinamiese beeld (image) komponent met die volgende spesifikasies in wanneer die program uitgevoer word:

Links 460Bo kant 480Hoogte 220Breedte 300Prentjie Vrugte.jpg

Bladsy 17 van 19 Blaai om asseblief

Inligtingstegnologie/V1 Voorbereidende eksamen 2018

Voorbeeld van GUI

(4)

4.2 Knoppie [Vraag 4.2]

Sorteer die inhoud van die skikkings alfabeties volgens die vrugtename. Vertoon die gesorteerde inligting.

Voorbeeld van die eerste paar rye nadat dit gesorteer is:

(7)

4.3 Knoppie [Vraag 4.3]

Bereken die gemiddeld van die kalorieë, vet, koolhidrate en proteïene van al die vrugte en vertoon dit in die laaste oop ry soos hieronder.

Voorbeeld van gemiddelde afvoer:

(7)

Bladsy 18 van 19 Blaai om asseblief

Inligtingstegnologie/V1 Voorbereidende eksamen 2018

4.4 Knoppie [Vraag 4.4]

Die lede moet weet hoeveel koppies van die gekose vrugte hulle moet inneem om 100 gram proteïene in te kry. Al die koppies is halwe koppies, behalwe twee van hulle.

Die gebruiker moet die rynommer van die vrug wat hulle wil hê, kies en dit in die SpinEdit (sedKeuse) inlees. Die program moet dan bereken hoeveel koppies van daardie vrug nodig is om 100 gram proteïene in te kry.

Voorbeeld van afvoer as die vrugte nie gesorteer is nie:

(5)

TOTAAL VRAAG 4 [30]

GROOT TOTAAL: 150

Bladsy 19 van 19