1 NASIONALE SENIOR SERTIFIKAAT GRAAD 11 INLIGTINGSTEGNOLOGIE V1 NOVEMBER 2007 PUNTE: 120 TYD: 3 uur Hierdie vraestel bestaan uit 10 bladsye.
2 Inligtingstegnologie/V1 2 INSTRUKSIES EN INLIGTING Hierdie is 'n drie-uur-eksamen. As gevolg van die aard van die eksamen, is dit belangrik om kennis te neem dat jy NIE toegelaat sal word om die eksamenlokaal te verlaat voor die einde van die eksamensessie nie. Hierdie vraestel bestaan uit DRIE vrae. Beantwoord AL die vrae. Jy het die onderstaande lêers nodig om die vrae te beantwoord. Die lêers is op die stiffie wat aan jou voorsien is of die toesighouer sal aan jou verduidelik waar om dit op die hardeskyf van die werkstasie wat jy gebruik of in 'n netwerkgids ('network folder') te kry: Lede.txt Reg.txt Klubs.xls Muscle.txt Indien jy 'n disket met die bostaande lêers ontvang het, skryf jou naam en eksamennommer op die plakker Stoor jou werk met gereelde tussenposes as 'n voorsorgmaatreël teen kragonderbrekings. Lees AL die vrae aandagtig deur en doen SLEGS dit wat verlang word. Aan die einde van die eksamensessie sal daar van jou verwag word om SLEGS die disket wat die toesighouer/onderwyser aan jou gegee het, in te lewer. Maak seker dat AL die lêers op die netwerk gestoor is, soos wat deur die toesighouer/onderwyser verduidelik is. Maak seker dat AL die lêers leesbaar is. Jy mag van die handleidings wat saam met die oorspronklike hardeware en sagteware voorsien is, gebruik maak. Jy mag ook van die HELP-funksies van die sagteware gebruik maak. Java-kandidate mag van die Java API-lêers gebruik maak. Jy mag NIE van enige ander bronne gebruik maak nie. 8. ALLE drukwerk van die programmeringsvrae sal binne EEN uur nadat die eksamen afgehandel is, plaasvind.
3 Inligtingstegnologie/V1 3 SCENARIO: Daar is verskeie klubs wat by jou plaaslike sokkerorganisasie, Soccer Dynamics, geaffilieer (geregistreer) is. As die sekretaresse van Soccer Dynamics, moet jy boekhou van die rekords van AL die geregistreerde klubs, sowel as die lede van die klubs. VRAAG 1: DATABASIS 1.1 Skep 'n databasis met die naam SokkerDb. Trek data uit die sigblad met die naam Klubs in om 'n tabel met die naam KlubTb te skep. Die KlubTbtabel moet die inligting bevat wat in die onderstaande tabel vertoon word: Verander die groottes van die velde en datatipes sodat dit meer geskik is vir die inligting wat in die bostaande tabel getoon word. Stel 'n geskikte primêre sleutel vir die KlubTb-tabel. Stel 'n invoermasker ('input mask') vir die KontakNom-veld in die KlubTb-tabel op. Die formaat van die KontakNom-veld is (021) , dit is 'n "(" gevolg deur drie syfers, 'n ")", 'n spasie en sewe syfers. (1) (2) (2) 1.2 Skep 'n tweede tabel met die naam LedeTb deur die data in te trek ('import') vanuit die teks-lêer met die naam Lede.txt. Die LedeTb-tabel behoort nou AL die inligting van die lede te bevat. 'n Gedeelte van die Lede.txt-tekslêer word hieronder getoon: "Van","Naam","GeboorteDat","BeskikbaarOmTeSpeel","LedegeldBet aal","lidnommer","klubid" "Smith","Bill",1986/12/10 00:00:00,1,R ,86,"MCJ06" "Langoma","Lihle",1985/6/6 00:00:00,1,R ,100,"MCJ06" "Dixon","Sarah",1976/3/4 00:00:00,0,R ,209,"MCJ06" "Mpho","Jabulani",1951/10/12 00:00:00,0,R ,300,"MCJ06" "Mahote","Innocent",1989/10/11 00:00:00,1,R ,243,"MCJ06" "Black","Joe",1989/3/3 00:00:00,1,R ,111,"MIC06" "Bushini","Georgio",1978/6/5 00:00:00,1,R 0.00,435,"MIC06" "Hillbrook","Ben",1945/3/2 00:00:00,0,R ,1423,"RRP05" "Kani","Sipho",1986/12/2 00:00:00,1,R ,5476,"RRP05" "Janjo","January",1978/10/16 00:00:00,1,R 10.00,9876,"RRP05" (2)
4 Inligtingstegnologie/V Verander die groottes van die velde en datatipes om beter by die data in die LedeTb-tabel wat in die onderstaande tabel getoon word, te pas: Stel 'n geskikte primêre sleutel vir die LedeTb-tabel. (2) (4) Skep 'n een-tot-baie-verwantskap tussen die KlubTb- en die LedeTbtabelle en pas referensiële integriteit toe. Skep 'n navraag met die naam LaeFooi wat die Van, Naam, KontakNom en LedegeldBetaal van AL die klubs in 'Menlow' of 'Irene' (gestoor in die Dorp-veld) en wie se LedegeldBetaal minder as R500,00 is, sal vertoon. Skep 'n navraag met die naam Oud wat 'n berekeningsveld insluit om die ouderdom van ELKE lid in die LedeTb-tabel te bepaal. Vertoon AL die velde. Voeg 'n addisionele veld met die naam Afdeling by die KlubTb-tabel. Skep nou 'n vorm met die naam KlubVorm wat AL die velde sal vertoon. Die vorm moet 'n combo box vir die Afdeling-veld insluit, wat die gebruiker sal toelaat om uit die volgende opsies te kies: Eerste, Tweede, Derde of Vierde. Skep 'n verslag met die naam BeskikbaarVerslag om die Van, Naam, BeskikbaarOmTeSpeel en Klubld van AL die lede wat beskikbaar is om te speel, toon. Groepeer die inligting in die verslag volgens Klubld. Vertoon ook die TOTALE aantal lede wat beskikbaar is om te speel onderaan die verslag. (2) (4) (6) (4) (5) 
5 Inligtingstegnologie/V1 5 VRAAG 2: PROGRAMMERING Soccer Dynamics hou 'n Pretdag om sokker in die gemeenskap te bevorder. Twaalf spanne het vir die pretdag geregistreer. Spanne is volgens hulle vertonings in vorige wedstryde gegradeer. Hulle gradering kan 1, 2, 3 of 4 wees. (Die beste gradering is 1.) Die besonderhede van die geregistreerde spanne is in die tekslêer met die naam Reg.txt gestoor. Die inhoud van die tekslêer word hieronder vertoon: Mighty Pirates 3 Celtic United 2 Reston Rovers 1 Kingsley Pride 2 Albion Scholars 3 Old Buccaneers 3 The New Angels 1 City Sentinels 2 Presidents Men 3 Province Park 1 Bluenose Barons 3 Skryf 'n program/klas met die naam PretDag wat metodes/prosedures en parameteroordrag gebruik om die volgende te doen (in Java mag jy 'n aandrywerklas met die naam ToetsPretDag gebruik, indien jy dit verkies): (LET WEL: AL die skerms wat inligting vertoon, moet geskikte opskrifte insluit.) 2.1 Lees die name en graderings van die spanne uit die tekslêer met die naam Reg.txt in twee skikkings in met die name arrspanne en arrgraderings. (Java-programmeerders: Plaas hierdie kode in die hoofmetode.) (Delphi-programmeerders: Plaas hierdie kode in die OnCreate-gebeurtenishanteerder ('OnCreate event handler') van die hoofvorm.) (5)
6 Inligtingstegnologie/V Skryf 'n metode/prosedure met die naam vertoondata om die inhoud van die twee skikkings soos volg in kolomme gespasieer, te vertoon: Span Gradering Mighty Pirates 3 Celtic United 2 Reston Rovers 1 Kingsley Pride 2 Albion Scholars 3 Old Buccaneers 3 The New Angels 1 City Sentinels 4 City Crusaders 2 Presidents Men 3 Province Park 1 Bluenose Barons 3 (5) 2.3 Skryf 'n metode/prosedure met die naam vertooneerste om die name van die spanne met 'n gradering van 1, sowel as die totale aantal spanne met 'n gradering van 1, te vertoon. Voorbeeld van afvoer: Name van spanne met 'n gradering van 1 Reston Rovers The New Angels Province Park Aantal spanne met 'n gradering van 1: 3 (7) 2.4 Skryf 'n metode/prosedure met die naam sorteerspanne wat die posisie van die spanne in die skikking met die naam arrspanne sal verander sodat die spanne met 'n gradering van 1 aan die bokant van die lys sal wees en die spanne met 'n gradering van 4 onderaan die lys sal wees. Vertoon die spanne en hulle graderings deur die vertoondata-metode/prosedure te roep. (Die spanne se oorspronklike graderings moet behoue bly.) Gesorteerde lys: Span Gradering Reston Rovers 1 The New Angels 1 Province Park 1 Celtic United 2 Kingsley Pride 2 City Crusaders 2 Mighty Pirates 3 Albion Scholars 3 Old Buccaneers 3 Presidents Men 3 Bluenose Barons 3 City Sentinels 4 (9)
7 Inligtingstegnologie/V Skryf 'n metode/prosedure met die naam speelspel wat die speel van die eerste rondte van die 12 spanne sal simuleer. Span 1 speel teen span 2, span 3 speel teen span 4, span 5 speel teen span 6, ensovoorts. Die metode/prosedure behoort willekeurige tellings vir die 12 spanne te genereer. Tellings word willekeurig binne die grenswaardes van 0 tot 5 (albei waardes ingesluit) gegenereer. Die wenners van die eerste rondte word soos volg bepaal: As een span 'n beter telling as die ander span het, dan sal daardie span na die volgende rondte deurgaan. Indien twee spanne dieselfde telling het, dan sal die span met die beste gradering na die volgende rondte deurgaan. Indien albei spanne dieselfde telling sowel as dieselfde gradering het, sal die span waarvan die naam alfabeties voor die ander span se naam geplaas kan word, as die wenner aangewys word. Die metode/prosedure moet die name van die spanne en hulle tellings, sowel as die name van die ses wenspanne, vertoon. Voorbeeld van die afvoer word hieronder vertoon: Eerste-rondte-tellings Reston Rovers 4 The New Angels 2 Province Park 1 Celtic United 3 Kingsley Pride 0 City Crusaders 3 Mighty Pirates 4 Albion Scholars 4 Old Buccaneers 3 Presidents Men 0 Bluenose Barons 3 City Sentinels 3 Die wenners is: Reston Rovers Celtic United City Crusaders Albion Scholars Old Buccaneers Bluenose Barons (13) 
8 Inligtingstegnologie/V1 8 VRAAG 3: PROGRAMMERING Super Muscle, 'n gesondheidstydskrif, stuur e-posse aan al die lede van die sokkerklubs. Die lede beskou hierdie e-posse as gemors-e-pos (SPAM). E-posse wat deur die lede ontvang word, word getoets om te bepaal of dit SPAM is. In die proses word die volledige teks van die e-pos na hoofletters omgeskakel en al die spasies word deur koppeltekens (-) vervang. 'n E-pos word as SPAM-e-pos geïdentifiseer indien BEIDE die volgende voorwaardes van toepassing is: Die frase 'LOSE-WEIGHT' meer as drie keer in die e-pos voorkom Die totale aantal woorde meer as 30 woorde is Jy kan aanvaar dat daar slegs een spasie tussen die woorde in die e-pos is. Die voorbeeld van 'n e-pos wat vir toetsing gebruik kan word, is in die lêer Muscle.txt gestoor. (LET WEL: Punte sal vir die gebruik van metodes/prosedures toegeken word.) Skryf 'n program/klas met die naam Spam wat metodes/prosedures en parameteroordrag om die volgende te doen, gebruik: (In Java mag jy ook van 'n aandrywerklas met die naam ToetsSpam gebruik maak, indien jy dit verkies.) Skryf 'n metode/prosedure met die naam kryteks om elke reël van die tekslêer met die naam Muscle.txt na 'n skikking met die naam arrepos te lees. Skryf 'n metode/prosedure met die naam vertoonskikking om die inhoud van die skikking met die naam arrepos te vertoon. Skryf 'n metode/funksie met die naam krytelwoorde om die aantal woorde wat daar in die skikking met die naam arrepos is, te bepaal. Skryf 'n metode/prosedure met die naam maakhoofl om die volledige teks in die skikking met die naam arrepos na hoofletters te verander. Skryf 'n metode/prosedure met die naam vervangsp om AL die spasies in die skikking met die naam arrepos met 'n koppelteken (-) te vervang. Skryf 'n metode/funksie met die naam krytel om te bepaal hoeveel keer die frase 'LOSE-WEIGHT' in die skikking met die naam arrepos voorkom. (6) (3) (6) (3) (6) (7)
9 Inligtingstegnologie/V Skryf 'n metode/prosedure met die naam wysstringe om AL die voorkomste van 'LOSE-WEIGHT' in die teks van die skikking met die naam arrepos op die volgende manier aan te dui: Vertoon van teks met LOSE-WEIGHT uitgelig LOSE-WEIGHT!-LOSE-WEIGHT!-LOSE-WEIGHT! *********** *********** *********** DO-YOU-WANT-TO-LOSE-20-KG-OF-UGLY-FAT-AND-REPLACE-IT-WITH-HARD- TONED-MUSCLE? TIRED-OF-THUGS-KICKING-SAND-IN-YOUR-FACE-AT-THE-BEACH? SUPER-MUSCLE-CAN-DO-IT-FOR-YOU. OUR-HEALTH-MAGAZINE-IS-FULL-OF-DIET-REGIMES, DIETARY-SUPPLEMENTS-AND-EXERCISE-ROUTINES-TO-LOSE-WEIGHT-QUICKLY. *********** WENK AAN DIE DELPHI-PROGRAMMEERDERS: Verander die font van die afvoerkomponent na Courier in hierdie prosedure. (12) 3.8 Voltooi die program/klas deur die relevante metodes/prosedures/funksies te roep sodat die afvoer soos in die voorbeeld op die volgende bladsy, vertoon sal word. Die skikking, sowel as die string 'LOSE-WEIGHT', moet as parameters, waar van toepassing, oorgedra word. Gebruik die resultate van die krytel- en die krytelwoorde-metodes/ funksies om te bepaal of hierdie e-pos SPAM-e-pos is. Vertoon 'n geskikte boodskap. (4)
10 Inligtingstegnologie/V1 10 Voorbeeld van afvoer: Inhoud van die skikking: Lose weight! Lose weight! Lose weight! Do you want to lose 20 kg of ugly fat and replace it with hard toned muscle? Tired of thugs kicking sand in your face at the beach? Super muscle can do it for you. Our health magazine is full of diet regimes, Dietary supplements and exercise routines to lose weight quickly. Aantal woorde in die teks: 58 Inhoud van die verwerkte skikking: LOSE-WEIGHT! LOSE-WEIGHT! LOSE-WEIGHT! DO-YOU-WANT-TO-LOSE-20-KG-OF-UGLY-FAT-AND-REPLACE-IT-WITH-HARD- TONED-MUSCLE? TIRED-OF-THUGS-KICKING-SAND-IN-YOUR-FACE-AT-THE-BEACH? SUPER-MUSCLE-CAN-DO-IT-FOR-YOU. OUR-HEALTH-MAGAZINE-IS-FULL-OF-DIET-REGIMES, DIETARY-SUPPLEMENTS-AND-EXERCISE-ROUTINES-TO-LOSE-WEIGHT-QUICKLY. LOSE-WEIGHT kom 4 keer voor Vertoon van teks met LOSE-WEIGHT uitgelig LOSE-WEIGHT! LOSE-WEIGHT! LOSE-WEIGHT!- *********** *********** *********** DO-YOU-WANT-TO-LOSE-20-KG-OF-UGLY-FAT-AND-REPLACE-IT-WITH-HARD- TONED-MUSCLE? TIRED-OF-THUGS-KICKING-SAND-IN-YOUR-FACE-AT-THE-BEACH? SUPER-MUSCLE-CAN-DO-IT-FOR-YOU. OUR-HEALTH-MAGAZINE-IS-FULL-OF-DIET-REGIMES, DIETARY-SUPPLEMENTS-AND-EXERCISE-ROUTINES-TO-LOSE-WEIGHT-QUICKLY. *********** Hierdie e-pos is waarskynlik SPAM.  TOTAAL: 120