Downloaded from hlayiso.com
NASIONALE
SENIOR SERTIFIKAAT
GRAAD 12
INLIGTINGSTEGNOLOGIE V1
NOVEMBER 2012
MEMORANDUM
PUNTE: 120
Hierdie memorandum bestaan uit 32 bladsye.
Kopiereg voorbehou Blaai om asseblief
Skip to contentAll 2013 papers 



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

View all





Information Technology Grade 12 P1 NSC November 2013 Memo
Grade 12 Information Technology Paper 1 memorandum from the NSC November Exam 2013 (Afrikaans), 32 pages. Read online or download the free PDF.
Information Technology · Grade 12 · NSC November Exam · 2013. Memorandum, 32 pages. Read online or download the PDF.
- Subject
- Information Technology
- Grade
- Grade 12
- Document type
- Memorandum
- Year
- 2013
- Exam period
- NSC November Exam
- Paper
- 1
- Curriculum
- CAPS
- Pages
- 32
- File size
- 322.6 KB
Free to read online, no sign-up needed
Loading document…
Loading document…
1 of 32
This exam
NSC November Exam 2013
Questions in this paper
Document textSearch extracted text and jump to a page.
Downloaded from hlayiso.com
Inligtingstegnologie/V1 2 DBE/November 2012
NSS – Memorandum
ALGEMENE INLIGTING:
• Hierdie merkriglyne moet as basis gebruik word tydens die merksessies. Hulle is
geskep om deur die merkers gebruik te word. Daar word van alle merkers vereis
om 'n standaardiseringsvergadering by te woon, om te verseker dat die
interpretasie van die riglyne korrek geïmplenteer word tydens die merk van die
leerders se antwoordboeke.
• Dit word erken dat daar alternatiewe uitgangspunte bestaan insake die
beklemtoning van inligting of detail van die riglyne en dat daar alternatiewe
interpretasies of toepassing daarvan is.
• Let daarop dat leerders wat alternatiewe korrekte oplossings as dié gegewe in
hierdie riglyne verskaf, volle krediet vir die relevante vraag sal ontvang.
• BYLAE A, B en C (bladsye 3–6) bevat die merkersrubriek vir elke vraag ongeag
watter een van die programmeringstale gebruik is.
• BYLAE D, E en F (bladsye 7–15) bevat die programmeringskode se oplossings vir
Delphi vir VRAAG 1 tot 3.
• BYLAE G, H, I en J (bladsye 16–28) bevat die programmeringskode se oplossings
vir Java vir VRAAG 1 tot 3.
• Kopieë van BYLAE A, B en C (bladsye 3–6) moet gemaak word vir elke leerder om
tydens die merksessie voltooi te word.
Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com
Inligtingstegnologie/V1 3 DBE/November 2012
NSS – Memorandum
BYLAAG A:
VRAAG 1: MERKRUBRIEK – PROGRAMMERING EN DATABASIS
ALGEMENE NOTAS:
• Penaliseer vir verkeerde aantal aanhalings tekens slegs een keer. Herhaalde foutering in volgende
antwoorde word nie weer gepenaliseer nie.
• By die gebruik van = strings, die LIKE mag as alternatief gebruik word.
SENTRUMNOMMER: EKSAMENNOMMER:
MAKS. LEERDER
VRAAG BESKRYWING
PUNTE PUNT
1.1 Navraag: Korrekte velde (or *) ; korrekte tabel ;
korrekte ORDER BY beide velde
3
SQL: SELECT * FROM tblKarnivore ORDER BY FamilieNaam,
WetenskaplikeNaam
1.2 Navraag: Korrekte velde & tabel ; korrekte WHERE stelling
wat korrekte familie vertoon en gebruik toevoer
veranderlike AND KampNr begin met ZEgebruik
LIKE
SQL(D): SELECT WetenskaplikeNaam, AlgemeneNaam, KampNr,
KampGrootte FROM tblKarnivore WHERE KampNr LIKE
"ZE%" AND FamilieNaam = "' + sX + '" '
Alternatief: …FamilieNaam LIKE “%’ + sX + ‘%" ' 5
In Delphi aanvaar Parameters met SQL.
SQL(J): SELECT WetenskaplikeNaam, AlgemeneNaam, KampNr,
KampGrootte FROM tblKarnivore WHERE KampNr LIKE
'ZE%' AND FamilieNaam = '" + sX + "'"
Alternatief: …FamilieNaam = '%" + sX + "%'"
... KampNr like ‘%ZE%’
Left(KampNr,2) = ‘ZE’
1.3 Navraag: Korrekte veld & tabel ;
COUNT(*)AS TelDiere ;
GROUP BY bedreigd
SQL: SELECT Bedreigd, Count(*) AS TelDiere FROM tblKarnivore 4
GROUP BY Bedreigd
Alternatief ... COUNT(Bedreigd)
Moenie penaliseer indien DISTINCT gebruik is nie
Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com
Inligtingstegnologie/V1 4 DBE/November 2012
NSS – Memorandum
1.4 Navraag: Korrekte veld & tabel ; AS SpasiePerDier
korrek bereken met hakkies;
ROUND of FORMAT 1 OF 2 des.; korrekte WHERE
stelling toets AlgemeneNaam vir muishond met
LIKE
SQL(D): SELECT KampNr, Format(KampGrootte /
(TelVolwassenes+TelKleintjies),"#.0#") AS SpasiePerDier
FROM tblKarnivore WHERE AlgemeneNaam LIKE
“%muishond”
Alternatief: Format(KampGrootte / (TelVolwassenes+TelKleintjies),"#.00")
Format(KampGrootte / (TelVolwassenes+TelKleintjies),"0.00")
Format(KampGrootte / (TelVolwassenes+TelKleintjies),".00" 6
Round(KampGrootte / (TelVolwassenes+TelKleintjies),2)
Aanvaar ook: ... ScientificName = "Herpestidae"
SQL(J): SELECT KampNr, Format(KampGrootte /
(TelVolwassenes+TelKleintjies),'#.0#') AS SpasiePerDier
FROM tblKarnivore WHERE AlgemeneNaam LIKE
'%muishond%'
Alternatief: Format(KampGrootte / (TelVolwassenes+TelKleintjies),'#.00')
Format(KampGrootte / (TelVolwassenes+TelKleintjies),'0.00')
Format(KampGrootte / (TelVolwassenes+TelKleintjies),'.00')
Round(KampGrootte / (TelVolwassenes+TelKleintjies),2)
Aanvaar ook: ... ScientificName = 'Herpestidae'
1.5 Navraag: UPDATE korrekte tabel ; SET korrekte veld met ‘n
formule wat die waarde met 3 vermeerder ; WHERE
korrekte KampNr
NOTA: die gebruik van dieselfde veld aan beide kante van 4
die = teken in die formule.
SQL(D): UPDATE tblKarnivore SET TelKleintjies = TelKleintjies + 3
WHERE KampNr = "ZF1"
SQL(J): UPDATE tblKarnivore SET TelKleintjies = TelKleintjies + 3
WHERE KampNr = 'ZF1'
Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com
Inligtingstegnologie/V1 5 DBE/November 2012
NSS – Memorandum
VRAAG 1: MERKRUBRIEK – PROGRAMMERING EN DATABASIS (vervolg)
1.6 Navraag: SELECT korrekte velde; FROM beide tabelle;
WHERE stelling koppel beide tabelle op KampNr
(linkerkant=) (regterkant=);
gebruik DAY funksie op BesoekDatum; met
veranderlike
SQL(D): 'SELECT tblVeeartsBesoeke.KampNr, AlgemeneNaam,
BesoekDatum, RedeVirBesoek, Dier_ID FROM tblKarnivore,
tblVeeartsBesoeke WHERE Day(BesoekDatum)='+sX+' AND
tblKarnivore.KampNr = tblVeeartsBesoeke.KampNr'
Alternatief: Gebruik 'aliases' vir tabel name:
'SELECT K.KampNr, AlgemeneNaam, BesoekDatum,
RedeVirBesoek, Dier_ID FROM tblKarnivore K,
tblVeeartsBesoeke V WHERE Day(BesoekDatum)='+sX+'
AND K.KampNr = V.KampNr'
Alternatief: Gebruik JOIN notasie:
'SELECT K.KampNr, AlgemeneNaam, BesoekDatum,
RedeVirBesoek, Dier_ID FROM tblKarnivore FROM
tblKarnivore INNER JOIN tblVeeartsBesoeke ON
tblKarnivore.KampNr = tblVeeartsBesoeke.KampNr WHERE
Day(BesoekDatum)='+sX
NOTE: INNER JOIN mag vervang word deur LEFT of RIGHT JOIN
SQL(J): "SELECT tblVeeartsBesoeke.KampNr, AlgemeneNaam, 7
BesoekDatum, RedeVirBesoek, Dier_ID FROM tblKarnivore,
tblVeeartsBesoeke WHERE Day(BesoekDatum)="+sX+" AND
tblKarnivore.KampNr = tblVeeartsBesoeke.KampNr"
Alternatief: Gebruik 'aliases' vir tabel name:
"SELECT K.KampNr, AlgemeneNaam, BesoekDatum,
RedeVirBesoek, Dier_ID FROM tblKarnivore K,
tblVeeartsBesoeke V WHERE Day(BesoekDatum)="+sX+"
AND K.KampNr = V.KampNr"
Alternatief: Gebruik 'aliases' vir tabel name en korrekte datatipe:
"SELECT K.KampNr, AlgemeneNaam, BesoekDatum,
RedeVirBesoek, Dier_ID FROM tblKarnivore K,
tblVeeartsBesoeke V WHERE Day(BesoekDatum)= '"+sX+"'
AND K.KampNr = V.KampNr"
Alternatief: Gebruik JOIN notasie:
"SELECT K.KampNr, AlgemeneNaam, BesoekDatum,
RedeVirBesoek, Dier_ID FROM tblKarnivore FROM
tblKarnivore INNER JOIN tblVeeartsBesoeke ON
tblKarnivore.KampNr = tblVeeartsBesoeke.KampNr WHERE
Day(BesoekDatum)="+sX
NOTE: INNER JOIN mag vervang word deur LEFT of RIGHT JOIN
Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com
Inligtingstegnologie/V1 6 DBE/November 2012
NSS – Memorandum
1.7 Navraag: INSERT INTO korrekte tabel; lys 5 velde (nie
[BesoekID] autonumber field); VALUES in korrekte
volgorde soos gelys in velde; datum gebruik
#2012/10/25#; al die teks velde; boolean veld
waarde
NOTE: indien geen velde gelys word nie maar ses waardes
word gegee (1 punt )
SQL(D): INSERT INTO tblVeeartsBesoeke (BesoekDatum, KampNr,
RedeVirBesoek, Opvolg, Dier_ID) VALUES (#2012/10/25#,
“ZD5”, “Oorinfeksie”, True, “ZD5_3”) 6
Aanvaar: yes/on/1 in plaas van true
Die gebruik van “ “ vir die datum in die korrekte formaat (short
date)
SQL(J): INSERT INTO tblVeeartsBesoeke (BesoekDatum, KampNr,
RedeVirBesoek, Opvolg, Dier_ID) VALUES (#2012/10/25#,
'ZD5', 'Oorinfeksie', True, 'ZD5_3')
Aanvaar: yes/on/1 in plaas van true
Die gebruik van ‘ ‘ vir die datum in die korrekte formaat (short
date)
TOTAAL: 35
Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com
Inligtingstegnologie/V1 7 DBE/November 2012
NSS – Memorandum
BYLAAG B:
VRAAG 2: MERKRUBRIEK – OBJEK-GEORIËNTEERDE PROGRAMMERING
ALGEMENE NOTAS:
• Indien die leerder die datatipe van ‘n gegewe veranderlike verander (bv karakter na
string) penaliseer met EEN punt
• Penaliseer slegs EEN keer vir ‘n spesifieke sintaksfout (bv ;)
• In JAVA word die gebruik van enkel = in plaas van == slegs een keer gepenaliseer.
SENTRUMNOMMER: EKSAMENNOMMER:
MAKS. LEERDER
VRAAG BESKRYWING
PUNTE PUNT
2.1.1 KONSTRUKTOR MET PARAMETERS
Vier korrekte parametersmet korrekte ooreenstemmende
datatipes
Toeken van/'set' vier parameters
4
NOTA:
indien al die toekennings-stellings in verkeerde volgorde (maks 1
punt)
2.1.2 isGeskik METODE:
Parameters: aantal diere en grootte kategorie
Stuur 'n boolean waarde terug
Toets vir leë kamp ; Bereken grootte
Toets of geskik vir dier (groot/medium/klein) 7
Maak gebruik van nested IF/case/switch metode met intervalle 7,
12 en 18 in logiese formaat (Indien gebruik gemaak word van
IF’s moet ‘n return veranderlike gebruik word)
Ken return waarde/antwoord toe
2.1.3 toString METODE:
Vertoon tipe en kategorie;
Vertoon twee byskrif ;
Vertoon twee numeriese waardes: real/double kampgrootte en
aantal diere;
Vertoon oor die lyne
(Delphi: ...#13;...#10) (JAVA: ...\n...\n...\n) 4
NOTA: Metodes kan geroep word
NOTA – Penaliseer met EEN punt indien:
• Geen waarde return word
• Enige inkorrekte veranderlikes gebruik
2.2.1 Verklaar objek skikking – grootte 30 of meer
2
teller vir skikking
Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com
Inligtingstegnologie/V1 8 DBE/November 2012
NSS – Memorandum
2.2.2 INISIALISEERING VAN SKIKKING:
Toets of tekslêer bestaan gebruik ‘n IF..THEN..ELSE/
try...catch(FileNotFoundException e)
(Alle stellings moet in die korrekte plek wees)
Lêer bestaan nie:
Gepaste boodskap;
Beeïndig program/event ;
Lêer bestaan:
{DELPHI: AssignFile, Reset
JAVA: Skep objek om vanuit lêer te lees} ; 15
Inisialiseer skikking teller ; (aanvaar ook bt verklaring)
Lus: while not eof/hasNext();
Lees reël uit tekslêer;
Onttrek die vier veldwaardes/veranderlikes waardes korrek
(1 punt per veld dmv copy/pos/split/indexOf...)
Inkrementeer skikking teller ;
Instansieer objek met konstruktor met parameters
(een punt linkerkant = een punt regterkant. Kontrolleer korrekte
parameter volgorde van konstruktor.)
2.2.3 KEUSELYS OPSIE A:
Opskrif; Lus deur skikking; Vertoon genommerde kampnr.; 4
Gebruik toString metode en vertoon kampinligting
KEUSELYS OPSIE B:
Sleutel in tipe, aantal, kategorie van dier;
Inisialiseer veranderlike (teller) ;
Voorwaardelike lus (binne skikking grense AND vlag) ;
IF stelling roep isGeskik metode met korrekte volgorde en
ooreenstemmende parameters
Indien gevind:
Stel 3 attribute na korrekte tellerposisie in skikking deur
die set-metodes te gebruik ;
Verander vlag
11
Inkrementeer teller buite IF (binne die while)
Buite die lus:
Vertoon boodskap met kampnr.
(aanvaar ook indien binne die IF…Then binne-in die While-lus)
Vertoon boodskap indien geen geskikte kamp gevind is nie
NOTA
Die gebuik van die vlag/break/exit in die regte posisie is
aanvaarbaar.
Boodskappe in verkeerde posisie (maksimum 1 punt)
TOTAAL: 47
Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com
Inligtingstegnologie/V1 9 DBE/November 2012
NSS – Memorandum
BYLAAG C:
VRAAG 3: MERKRUBRIEK– PROBLEEMOPLOSSINGSPROGRAMMERING
ALGEMENE NOTAS:
• Indien die leerder die datatipe van ‘n gegewe veranderlike verander (bv karakter na
string) penaliseer met EEN punt
• Penaliseer slegs EEN keer vir ‘n spesifieke sintaksfout (bv ;)
• In JAVA word die gebruik van enkel = in plaas van == slegs een keer gepenaliseer.
• In JAVA mag gebruik gemaak word van die Scanner-klas ipv die BufferedReader
SENTRUMNOMMER: EKSAMENNOMMER:
MAKS. LEERDER
VRAAG BESKRYWING
PUNTE PUNT
3.1 KEUSELYS OPSIE A:
Lus deur skikking;
Valideer eerste karakter: A of R
Valideer tweede karakter: A, B, C of D
Valideer derde karakter: M, V, m of v;
Korrekte gebruik van logiese operator (AND/OR) in validering
8
(of deur gebruik te maak van nested if...then...else of afsonderlike
IF stellings of vervang die voorkomste met Z en exit/breakof deur
gebruik te maak van vlag/veranderlike)
Vertoon ongeldige inskrywings;
Vervang ongeldige inskrywings met Z in skikking by korrekte
indeks
3.2 KEUSELYS OPSIE B:
Genereer random-getal Getal in die interval van die aantal
skikkings- elemente (1-32 vir Delphi of 0-31 vir Java);
Lus; Korrekte gebruik van lus-voorwaardes; Kontroleer of
geldige kaartjie ;
IF geldig: stop die lus ;
IF not geldig: genereer nuwe random getal; Vertoon boodskap 11
vir ongeldige inskrywing
Buite lus:
Vertoon boodskap en wennommer ;
(aanvaar ook indien binne die IF…Then binne-in die While-lus)
Vertoon wenkaartjiestring uit skikking
Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com
Inligtingstegnologie/V1 10 DBE/November 2012
NSS – Memorandum
3.3 KIESLYS OPSIE C:
Verklaar datastruktuur/datastrukture vir kategorie elemente
van enige datatipes (bv. skikkings vir stoor van uitstallings (AA,
AB ...) en punte vir elke uitstalling, nie 32 elemente)
Berekening van punte:
Nested loops: Lus deur punte skikking(8 elemente); lus deur
arrTic (32 punte); in any order.
IF geldige kaartjie; kontroleer eerste twee karakters van
kaartjie vs. Kategorie (AA,BB,...);
kontroleer vir volwassene/kind;
Inkrementeer punte korrek in skikking vir korrekte kategorie
(AA,BB,..)
19
Sorteer beide skikkings:
Nested Lusse met korrekte indekse vir datastruktuur
verklaar;
IF met korrekte voorwaarde;
Ruil skikkings waardes om;
herhaal vir tweede omruil gelyktydig
korrekte datatipes vir tydelike veranderlike
Vertoon uitslae:
Opskrifte; Vertoon afvoer in kolomme/tabs;
Vertoon medalje byskrif (Goud/Silwer/Brons) , korrekte
kategorie, en ooreenstemmende puntwaarde vir daardie
kategorie
TOTAAL: 38
OPSOMMING VAN LEERDER SE PUNTE:
VRAAG 1 VRAAG 2 VRAAG 3 GROOTTOTAAL
MAKS. PUNTE 35 47 38 120
LEERDER PUNT
Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com
Inligtingstegnologie/V1 11 DBE/November 2012
NSS – Memorandum
BYLAAG D: OPLOSSING VIR VRAAG 1: DELPHI
unit Vraag1UMemo;
//Oplossing vir Vraag 1 ...
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, ADODB, Grids, DBGrids, ExtCtrls, Buttons, Menus;
type
TfrmVraagEEN = class(TForm)
qryRec: TADOQuery;
dsrQry: TDataSource;
grdRec: TDBGrid;
mnuMain: TMainMenu;
mnuOpsieA: TMenuItem;
mnuOpsieB: TMenuItem;
mnuOpsieC: TMenuItem;
mnuOpsieD: TMenuItem;
mnuOpsieE: TMenuItem;
mnuOpsieF: TMenuItem;
mnuOpsieG: TMenuItem;
mnuVerlaat: TMenuItem;
procedure mnuOpsieAClick(Sender: TObject);
procedure mnuOpsieBClick(Sender: TObject);
procedure mnuOpsieCClick(Sender: TObject);
procedure mnuOpsieDClick(Sender: TObject);
procedure mnuOpsieEClick(Sender: TObject);
procedure mnuOpsieFClick(Sender: TObject);
procedure mnuOpsieGClick(Sender: TObject);
procedure mnuVerlaatClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmVraagEEN: TfrmVraagEEN;
implementation
{$R *.dfm}
//=============================================================================
procedure TfrmVraagEEN.mnuOpsieAClick(Sender: TObject);
begin
qryRec.Close;
qryRec.SQL.Text := 'SELECT * FROM tblKarnivore ORDER BY FamilieNaam,
WetenskaplikeNaam';
qryRec.Open;
end;
//=============================================================================
procedure TfrmVraagEEN.mnuOpsieBClick(Sender: TObject);
var
sX : String;
begin
sX := INPUTBOX('Vraag 1', 'Sleutel Familienaam in.', 'Canidae');
qryRec.Close;
qryRec.SQL.Text := 'SELECT WetenskaplikeNaam, AlgemeneNaam, KampNr,
KampGrootte ' +
'FROM tblKarnivore ' +
'WHERE (FamilieNaam LIKE "%' +sX + '%") AND (KampNr LIKE "ZE%")';
qryRec.Open;
end;
//=============================================================================
procedure TfrmVraagEEN.mnuOpsieCClick(Sender: TObject);
begin
Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com
Inligtingstegnologie/V1 12 DBE/November 2012
NSS – Memorandum
qryRec.Close;
qryRec.SQL.Text := 'SELECT Bedreigd, COUNT(TelVolwassenes+TelKleintjies) AS
TelDiere ' +
'FROM tblKarnivore ' +
'GROUP BY Bedreigd';
qryRec.Open;
end;
//=============================================================================
procedure TfrmVraagEEN.mnuOpsieDClick(Sender: TObject);
begin
qryRec.Close;
qryRec.SQL.Text := 'SELECT KampNr,
format((KampGrootte/(TelVolwassenes+TelKleintjies)),"#.00") AS SpasiePerDier '
+
'FROM tblKarnivore ' +
'WHERE AlgemeneNaam LIKE "%muishond%" ';
qryRec.Open;
end;
//=============================================================================
procedure TfrmVraagEEN.mnuOpsieEClick(Sender: TObject);
begin
qryRec.Close;
qryRec.SQL.Text := 'UPDATE tblKarnivore ' +
'SET TelKleintjies = TelKleintjies + 3 ' +
'WHERE KampNr="ZF1"';
qryRec.ExecSQL;
MessageDlg('Rekords Suksesvol Verwerk',mtInformation,[mbok],0);
end;
//=============================================================================
procedure TfrmVraagEEN.mnuOpsieFClick(Sender: TObject);
var
sX : String;
begin
sX := INPUTBOX('Vraag 1', 'Sleutel die dag van die maand waarin besoek
plaasvind in, bv.', '23');
qryRec.Close;
qryRec.SQL.Text := 'SELECT K.KampNr, AlgemeneNaam, BesoekDatum,
RedeVirBesoek, Dier_ID ' +
'FROM tblKarnivore K, tblVeeartsBesoeke V ' +
'WHERE Day(BesoekDatum)='+sX+' AND K.KampNr = V.KampNr';
qryRec.Open;
end;
//=============================================================================
procedure TfrmVraagEEN.mnuOpsieGClick(Sender: TObject);
begin
qryRec.Close;
qryRec.SQL.Text := 'INSERT INTO tblVeeartsBesoeke ' +
'(BesoekDatum, KampNr, RedeVirBesoek, Opvolg, Dier_ID) '+
'VALUES (#2012/10/25#, "ZD5", "Oorinfeksie", True,
"ZD5_3")';
qryRec.ExecSQL;
MessageDlg('Rekords Suksesvol Verwerk',mtInformation,[mbok],0);
end;
//=============================================================================
procedure TfrmVraagEEN.mnuVerlaatClick(Sender: TObject);
begin
Application.Terminate;
end;
end.
Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com
Inligtingstegnologie/V1 13 DBE/November 2012
NSS – Memorandum
BYLAAG E: OPLOSSING VIR VRAAG 2: DELPHI
VRAAG 2 – KLASEENHEID
unit uVr2MEMO;
{*** Oplossing vir Vraag 2 - class ***}
interface
TYPE
TVr2 = class(TObject)
private
fDTipe : String;
fAantal : Integer;
fGrootte : Real;
fKat : Char;
public
constructor Create(sDTipe: String; iAantal : integer; rGrootte : Real;
cKat : Char);
function isGeskik(cKat : char; iAantal : Integer) : Boolean;
function toString : String;
procedure setDTipe(sDTipe : String);
procedure setAantal(iAantal : Integer);
procedure setGrootte(rGrootte : Real);
procedure setKat(cKat : Char);
function getDTipe:String;
function getAantal:integer;
function getGrootte:real;
function getKat:Char;
end;
implementation
uses SysUtils;
{ TQuest2 }
constructor TVr2.Create(sDTipe: String; iAantal: integer; rGrootte: Real;
cKat: Char);
begin
fDTipe := sDTipe;
fAantal := iAantal;
fGrootte := rGrootte;
fKat := cKat;
end;
function TVr2.isGeskik(cKat: char; iAantal: integer): Boolean;
var
rSpasie : real;
begin
Result := false;
if fDTipe = 'XXX'
then
begin
rSpasie := fGrootte / iAantal;
case cKat of
'G' : Result := rSpasie >= 18;
'M' : Result := (rSpasie >= 12) AND (rSpasie < 18);
'K' : Result := (rSpasie >= 7) AND (rSpasie < 12);
end;
end;
end;
Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com
Inligtingstegnologie/V1 14 DBE/November 2012
NSS – Memorandum
function TVr2.toString: String;
begin
Result := fDTipe + '...' + fKat + #13 +
'Kampgrootte: ' + FloatToStrF(fGrootte, ffFixed,8,1) + #13 +
'Aantal diere: ' + IntToStr(fAantal) + #13 + #13;
end;
procedure TVr2.setDTipe(sDTipe: String);
begin
fDTipe := sDTipe;
end;
procedure TVr2.setGrootte(rGrootte: Real);
begin
fGrootte := rGrootte;
end;
procedure TVr2.setKat(cKat: Char);
begin
fKat := cKat;
end;
procedure TVr2.setAantal(iAantal: Integer);
begin
fAantal := iAantal;
end;
function TVr2.getDTipe:String;
begin
Result := fDTipe;
end;
function TVr2.getAantal:integer;
begin
Result := fAantal;
end;
function TVr2.getGrootte:real;
begin
Result := fGrootte;
end;
function TVr2.getKat:Char;
begin
Result := fKat;
end;
end.
HOOFVORMEENHEID
unit Vraag2MEMO;
{*** Oplossing vraag 2 - vorm unit ***}
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, Menus,
uVr2MEMO;
type
TfrmQ2 = class(TForm)
mnuMain: TMainMenu;
Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com
Inligtingstegnologie/V1 15 DBE/November 2012
NSS – Memorandum
mnuOpsieA: TMenuItem;
mnuVerlaat: TMenuItem;
redQ2: TRichEdit;
mnuOpsieB: TMenuItem;
procedure mnuVerlaatClick(Sender: TObject);
procedure mnuOpsieAClick(Sender: TObject);
procedure mnuOpsieBClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmQ2: TfrmQ2;
KampArr : Array[1..30] of TVr2;
iTeller : Integer;
implementation
{$R *.dfm}
{$R+}
procedure TfrmQ2.FormCreate(Sender: TObject);
var
TLeer : Textfile;
iPos, iAantal : integer;
rGrootte : real;
cKat : char;
sReel, sDier : string;
begin
if FileExists ('DataV2.txt') <> true then
begin
ShowMessage('Die leer bestaan nie.');
Exit;
end;
AssignFile(TLeer, 'DataV2.txt');
Reset(TLeer);
iTeller := 0;
while (not EOF(TLeer) ) do
begin
inc(iTeller);
readln(TLeer, sReel);
iPos := pos(';', sReel);
sDier := copy(sReel, 1, iPos -1);
delete(sReel, 1, iPos);
iPos := pos('#', sReel);
iAantal := StrToInt(copy(sReel, 1, iPos -1));
delete(sReel, 1, iPos);
iPos := pos(';', sReel);
rGrootte := StrToFloat(copy(sReel, 1, iPos -1));
delete(sReel, 1, iPos);
cKat := sReel[1];
KampArr[iTeller] := TVr2.Create(sDier, iAantal, rGrootte, cKat);
end;
closeFile(TLeer);
end;
Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com
Inligtingstegnologie/V1 16 DBE/November 2012
NSS – Memorandum
procedure TfrmQ2.mnuOpsieAClick(Sender: TObject);
var
K :integer;
begin
redQ2.Lines.Add('Lys van al die kampe');
redQ2.Lines.Add('====================');
For K := 1 to iTeller do
begin
redQ2.Lines.Add('Kampnommer: ' + IntToStr(K) + #13 +
KampArr[K].toString);
end;
end;
procedure TfrmQ2.mnuOpsieBClick(Sender: TObject);
var
K,iNom :integer;
bGevind :boolean;
cKat :char;
sDTipe :String;
begin
sDTipe := InputBox('Tipe dier', 'Sleutel die tipe dier in, bv.','Tier');
iNum := StrToInt(InputBox('Aantal diere', 'Sleutel die aantal diere
in.','2'));
cKat := InputBox('Kategorie', 'Sleutel die kategorie in (G/M/K)','G')[1];
bGevind := false;
K := 1;
While (bGevind <> true) and (K <= iTeller) do
begin
if KampArr[K].isGeskik(cKat, iNom) then
begin
KampArr[K].setDTipe(sDTipe);
KampArr[K].setKat(cKat);
KampArr[K].setAantal(iNom);
bGevind := true;
end
else
inc(K);
end;
redQ2.Lines.Clear;
if NOT(bGevind) then
redQ2.Lines.Add('Geen geskikte kamp is gevind nie.')
else
begin
redQ2.Lines.Clear;
redQ2.Lines.Add('Hierdie diere is in kampnommer ' + IntToStr(K) +
' geplaas.');
redQ2.Lines.Add(' ');
mnuOpsieA.Click;
end;end;
procedure TfrmQ2.mnuVerlaatClick(Sender: TObject);
begin
Application.Terminate;
end;
end.
Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com
Inligtingstegnologie/V1 17 DBE/November 2012
NSS – Memorandum
BYLAAG F: OPLOSSING VIR VRAAG 3: DELPHI
unit Vraag3UMemo;
//Oplossing vir vraag 3
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons, StdCtrls, ComCtrls, Menus;
type
TfrmVR3 = class(TForm)
mnuMain: TMainMenu;
mnuOpsieA: TMenuItem;
mnuOpsieB: TMenuItem;
mnuOpsieC: TMenuItem;
mnuVerlaat: TMenuItem;
redV3: TRichEdit;
procedure mnuOpsieAClick(Sender: TObject);
procedure mnuVerlaatClick(Sender: TObject);
procedure mnuOpsieBClick(Sender: TObject);
procedure mnuOpsieCClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmVR3: TfrmVR3;
arrTic : Array[1..32] of string = ('RCm158', 'ADM33', 'RCv250', 'RAv5',
'BRM32', 'ADm236', 'RCm23', 'RDM54','RCv17', 'RAm12', 'ADm9', 'RCV43',
'RDm140', 'RDm23', 'ACV113', 'ABv30', 'RDm22', 'ARv38', 'RCV8', 'RAv53',
'RCv12', 'ABV156', 'ADM31', 'ADM47', 'RAv48', 'ABV246', 'ABv59', 'RRM321',
'ABm36', 'RCV31', 'RAm445', 'ACn26');
implementation
{$R *.dfm}
{$R+}
uses Math;
var
//skikkings gebruik tydens oplossing vir Opsie C
arrUitstal : Array[1..8] of string =
('AA','AB','AC','AD','RA','RB','RC','RD');
arrPunte : Array[1..8] of Integer = (0,0,0,0,0,0,0,0);
arrMedalje : Array[1..3] of string = ('Goud', 'Silwer', 'Brons');
procedure TfrmVR3.FormCreate(Sender: TObject);
begin
Randomize;
end;
procedure TfrmVR3.mnuOpsieAClick(Sender: TObject);
var
A : Integer;
begin
redV3.Lines.Clear;
Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com
Inligtingstegnologie/V1 18 DBE/November 2012
NSS – Memorandum
redV3.Lines.Add('Ongeldige inskrywings:');
For A := 1 to 32 do
IF (arrTic[A][1] in ['A','R']) AND
(arrTic[A][2] in ['A'..'D']) AND
(Upcase(arrTic[a][3]) in ['M','V'])
then //valid ticket
else
begin //invalid ticket
redV3.Lines.Add(arrTic[A]);
arrTic[A] := 'Z';
end;
end;
procedure TfrmVR3.mnuOpsieBClick(Sender: TObject);
var
iKaartjie :integer;
bGeldig :boolean;
begin
bGeldig := false;
iKaartjie := random(32) + 1;
while (bGeldig = false) do
begin
if arrTic[iKaartjie] = 'Z' then
begin
bGeldig := false ;
redV3.Lines.Add('Ongeldig');
iKaartjie := random(32) + 1;
end
else
bGeldig := true;
end;
redV3.Lines.Add('Die posisie van die wenkaartjie in die skikking is: ' +
intToStr(iKaartjie));
redV3.Lines.Add('Die wenkaartjie: '+ arrTic[iKaartjie] );
end;
procedure TfrmVR3.mnuOpsieCClick(Sender: TObject);
var
A, D, iPunt, iTemp : Integer;
sTemp : string;
begin
//Bereken die punte vir elke uitstalling:
for D := 1 to 8 do
arrPunte[D] := 0;
for D := 1 to 8 do
begin
For A := 1 to 32 do
begin
IF pos(arrUitstal[D], arrTic[A]) = 1 //only valid tickets <> Z
then
begin
case arrTic[A][3] of
'm', 'v' : iPunt := 5;
'M', 'V' : iPunt := 12;
end;
inc(arrPunte[D], iPunt);
end;
end; //for A.
end; //for D.
//Sorteer die skikkings volgens punte >> ENIGE SORTEERMETODE
For A := 1 to 8-1 do
Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com
Inligtingstegnologie/V1 19 DBE/November 2012
NSS – Memorandum
For D := a+1 to 8 do
IF arrPunte[A] < arrPunte[D]
then
begin //ruil elemente van beide skikkings om
sTemp := arrUitstal[D];
arrUitstal[D] := arrUitstal[A];
arrUitstal[A] := sTemp;
iTemp := arrPunte[D];
arrPunte[D] := arrPunte[A];
arrPunte[A] := iTemp;
end;
//Vertoon uitslae
redV3.Lines.Clear;
redV3.Paragraph.TabCount := 2;
redV3.Paragraph.Tab[0] := 80;
redV3.Paragraph.Tab[1] := 200;
redV3.Lines.Add('Uitstallings wat medaljes wen:');
redV3.Lines.Add('Medalje' + #9 + 'Uitstalling' + #9 + 'Punte');
for A := 1 to 3 do
redV3.Lines.Add(arrMedalje[A] +#9+ arrUitstal[A] +#9+
IntToStr(arrPunte[A]));
end;
procedure TfrmVR3.mnuVerlaatClick(Sender: TObject);
begin
Application.Terminate;
end;
end.
Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com
Inligtingstegnologie/V1 20 DBE/November 2012
NSS – Memorandum
BYLAAG G: OPLOSSING VIR VRAAG 1: JAVA
// Oplossing vir Vraag 1
import java.io.*;
import java.sql.*;
import javax.swing.*;
import java.util.Scanner;
public class ToetsVraag1
{
public static void main (String[] args) throws SQLException,IOException
{
BufferedReader inKb = new BufferedReader (new InputStreamReader
(System.in));
Dieretuin DB = new Dieretuin();
System.out.println();
char keuse = ' ';
do
{
System.out.println("\n\n KEUSELYS");
System.out.println();
System.out.println(" Opsie A");
System.out.println(" Opsie B");
System.out.println(" Opsie C");
System.out.println(" Opsie D");
System.out.println(" Opsie E");
System.out.println(" Opsie F");
System.out.println(" Opsie G");
System.out.println();
System.out.println(" V - VERLAAT");
System.out.println(" ");
System.out.print(" Jou keuse? ");
keuse = inKb.readLine().toUpperCase().charAt(0);
System.out.println(" ");
String sql = "";
switch(keuse)
{
case 'A': // Vraag 1.1
{
sql = "SELECT * FROM tblKarnivore ORDER BY FamilieNaam,
WetenskaplikeNaam";
DB.query(sql);
break;
}
//=============================================================================
case 'B': // Vraag 1.2
{
System.out.println("Vraag 1: Sleutel Familienaam in
bv.Canidae");
String sX = inKb.readLine();
sql = "SELECT WetenskaplikeNaam, AlgemeneNaam, KampNr,
KampGrootte FROM tblKarnivore WHERE (FamilieNaam LIKE '%" +sX + "%') AND
(KampNr LIKE 'ZE%')";
DB.query(sql);
break;
}
//=============================================================================
case 'C': // Vraag 1.3
{
Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com
Inligtingstegnologie/V1 21 DBE/November 2012
NSS – Memorandum
sql = "SELECT Bedreigd,
COUNT(TelVolwassenes+TelKleintjies) AS TelDiere FROM tblKarnivore GROUP BY
Bedreigd";
DB.query(sql);
break;
}
//=============================================================================
case 'D': // Vraag 1.4
{
sql = "SELECT KampNr,
FORMAT((KampGrootte/(TelVolwassenes+TelKleintjies)),'#.00') AS SpasiePerDier
FROM tblKarnivore WHERE AlgemeneNaam LIKE '%muishond%' ";
DB.query(sql);
break;
}
//=============================================================================
case 'E': // Vraag 1.5
{
sql = "UPDATE tblKarnivore SET TelKleintjies =
TelKleintjies + 3 WHERE KampNr = 'ZF1' ";
DB.query(sql);
break;
}
//=============================================================================
case 'F': // Vraag 1.6
{
System.out.println("Vraag 1: Sleutel die dag van die maand
waarin besoek plaasvind in, bv. 23");
String sX = inKb.readLine();
sql = "SELECT K.KampNr, AlgemeneNaam, BesoekDatum,
RedeVirBesoek, Dier_ID FROM tblKarnivore K, tblVeeartsBesoeke V WHERE
(DAY(BesoekDatum)="+sX+") AND K.KampNr = V.KampNr";
DB.query(sql);
break;
}
//=============================================================================
case 'G': // Vraag 1.7
{
sql = "INSERT INTO tblVeeartsBesoeke (BesoekDatum, KampNr,
RedeVirBesoek, Opvolg, Dier_ID) VALUES (#2012/10/25#, 'ZD5', 'Oorinfeksie',
True, 'ZD5_3') ";
DB.query(sql);
break;
}
}
}while (keuse != 'V');
DB.disconnect();
System.out.println("Klaar");
}
}
Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com
Inligtingstegnologie/V1 22 DBE/November 2012
NSS – Memorandum
BYLAAG H: OPLOSSING VIR VRAAG 2: JAVA
VRAAG 2 – KLASEENHEID
//oplossing vir Vraag 2 - objekklas.
public class Vr2Memo
{
private String tipe;
private int aantal;
private double grootte;
private char kat;
public Vr2Memo(String tipe, int aantal, double grootte, char kat)
{
this.tipe = tipe;
this.aantal = aantal;
this.grootte = grootte;
this.kat = kat;
}
public boolean isGeskik(char kat, int aantal)
{
boolean geskik = false;
double spasie = 0;
if (tipe.equalsIgnoreCase("XXX"))
{
spasie = grootte / aantal;
if (kat =='G' && spasie >= 18)
geskik = true;
if (kat == 'M' && (spasie >= 12 && spasie < 18))
geskik = true;
if (kat == 'K' && (spasie >= 7 && spasie < 12))
geskik = true;
}
return geskik;
}
public String toString()
{
return tipe + "..." + kat + "\nKampgrootte: " + grootte +
"\nAantal diere: " + aantal + "\n\n";
}
public void setTipe(String tipe) {
this.tipe = tipe;
}
public void setAantal(int aantal) {
this.aantal = aantal;
}
public void setGrootte(double grootte) {
this.grootte = grootte;
}
public void setKat(char kat) {
this.kat = kat;
}
public String getTipe() {
return tipe;
Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com
Inligtingstegnologie/V1 23 DBE/November 2012
NSS – Memorandum
}
public int getAantal() {
return aantal;
}
public double getGrootte() {
return grootte;
}
public char getKat() {
return kat;
}
}
TOETSKLAS (DRYWERKLAS)
//Oplossing vir Vraag 2
import java.io.*;
import java.util.Scanner;
public class ToetsVraag2Memo {
static Vr2Memo[] kampe = new Vr2Memo[30];
static int tel;
public static void main(String[] args) throws Exception
{
BufferedReader kb = new BufferedReader(new
InputStreamReader(System.in));
readFile();
char keuse = ' ';
do {
System.out.println(" KEUSELYS");
System.out.println();
System.out.println(" Opsie A");
System.out.println(" Opsie B");
System.out.println();
System.out.println(" V - VERLAAT");
System.out.println("\n Jou keuse? ");
keuse=kb.readLine().toUpperCase().charAt(0);
switch (keuse) {
case 'A':
vertoon();
break;
case 'B':
opsieB();
break;
case 'V':
System.out.println("Verlaat");
}
} while (keuse!= 'V');
}
public static void readFile() {
try
{
tel = 0;
Scanner sc = new Scanner (new FileReader("DataV2.txt"));
while (sc.hasNext())
{
String reel = sc.nextLine();
int pos1 = reel.indexOf(';',0);
Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com
Inligtingstegnologie/V1 24 DBE/November 2012
NSS – Memorandum
String aTipe = reel.substring(0,pos1);
int posHash = reel.indexOf('#',pos1);
int aantal = Integer.parseInt(reel.substring(pos1 + 1,posHash));
int pos2 = reel.indexOf(';',posHash);
double grootte = Double.parseDouble(reel.substring(posHash +
1,pos2));
int posHash2 = reel.indexOf('#',pos2);
char kat = reel.charAt(posHash2-1);
kampe[tel] = new Vr2Memo(aTipe, aantal, grootte, kat);
tel++;
}
sc.close();
}
catch (FileNotFoundException e) {
System.out.println("Leer bestaan nie.");
System.exit(0);
}
catch (Exception f) {
System.out.println(f);
}
}
public static void vertoon() {
System.out.println("Lys van al die kampe");
System.out.println("====================");
for (int k = 0; k < tel; k++) {
System.out.println("Kampnommer: " + (k+1)+"\n" +
kampe[k].toString());
}
}
private static void opsieB() throws Exception {
BufferedReader kb = new BufferedReader(new
InputStreamReader(System.in));
boolean found = false;
int count = 0;
System.out.println("Sleutel die tipe dier in, bv. Tier");
String dier = kb.readLine();
System.out.println("Sleutel die aantal diere in, bv. 2");
int aantal = Integer.parseInt(kb.readLine());
System.out.println("Sleutel die kategorie in (G/M/K)");
char kat = kb.readLine().charAt(0);
while (found == false && count < tel)
{
if (kampe [count].isGeskik(kat, aantal))
{
found = true;
kampe [count].setTipe(dier);
kampe [count].setAantal(aantal);
kampe [count].setKat(kat);
}
else
count++;
}
if (found == false)
Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com
Inligtingstegnologie/V1 25 DBE/November 2012
NSS – Memorandum
{
System.out.println("Geen geskikte kamp is gevind nie.");
}
else
{
System.out.println("\n\nHierdie diere is in kampnommer " + (count
+1 ) +" geplaas.");
System.out.println("\n");
vertoon();
}
}
}
Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com
Inligtingstegnologie/V1 26 DBE/November 2012
NSS – Memorandum
BYLAAG I: OPLOSSING VIR VRAAG 3 MET OOP: JAVA
import java.io.IOException;
public class ToetsVraag3Memo
{
public static void main(String[] args) throws IOException
{
Vraag3_Memo toets = new Vraag3_Memo();
toets.vertoonKeuselys();
}
}
//Objek klas wat 'n kaartjie beskryf
public class Kaartjie
{
private String afdeling;
private String uitstalling;
private String geslag;
private int nommer;
public Kaartjie(String kaartjie)
{
afdeling = kaartjie.substring(0,1);
uitstalling = kaartjie.substring(1,2);
geslag = kaartjie.substring(2,3);
nommer = Integer.parseInt(kaartjie.substring(3,4));
}
public boolean isGeldig()
{
boolean geldig = true;
if (("ABCD".indexOf(uitstalling.charAt(0))< 0) ||(!(afdeling.equals("A"))
&& (!(afdeling.equals("R")))||("MmVv".indexOf(geslag.charAt(0))< 0 )))
geldig = false;
return geldig;
}
public int getPuntwaarde()
{
if (geslag.equals("M") || geslag.equals("V") )
return 12;
else
return 5;
}
public String getAfdeling()
{
return afdeling;
}
public String getUitstalling()
{
return uitstalling;
}
public String getGeslag()
{
return geslag;
}
Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com
Inligtingstegnologie/V1 27 DBE/November 2012
NSS – Memorandum
public int getNommer()
{
return nommer;
}
}
//===========================================================================
import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Vraag3_Memo
{
String[] arrTic = {"RCm158", "ADM33", "RCv250", "RAv5",
"BRM32", "ADm236","RCm23", "RDM54",
"RCv17", "RAm12", "ADm9", "RCV43",
"RDm140", "RDm23", "ACV113", "ABv30",
"RDm22", "ARv38", "RCV8", "RAv53",
"RCv12", "ABV156", "ADM31", "ADM47",
"RAv48", "ABV246", "ABv59", "RRM321",
"ABm36", "RCV31","RAm445", "ACn26"}; // grootte 32
String[] arrUitstalling = {"AA","AB","AC","AD","RA","RB","RC","RD"};
int[] arrPunte = {0,0,0,0,0,0,0,0};
String[]arrMedalje = {"Goud", "Silwer", "Brons"};
BufferedReader inKb;
//===========================================================================
// Opsie A
public void valideer() {
System.out.println("Ongeldige inskrywings");
for (int tel = 0; tel < 32;tel++) {
Kaartjie kaartjie = new Kaartjie(arrTic[tel]);
if (kaartjie.isGeldig()== false) {
System.out.println(arrTic[tel]);
arrTic[tel] = "Z";
}
}
}
//============================================================================
//Opsie B
public void getWenNommer()
{
boolean geldig = false;
int wen = (int)(Math.random() * 32);
while (geldig == false)
{
if(arrTic[wen].equals("Z"))
{
wen = (int)(Math.random() * 32);
System.out.println("Ongeldig");
}
else
geldig = true;
}
System.out.println("Die posisie van die wenkaartjie in die skikking
is: " + (wen+1));
Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com
Inligtingstegnologie/V1 28 DBE/November 2012
NSS – Memorandum
System.out.println("Die wenkaartjie: " + arrTic[wen]);
}
//===========================================================================
// Opsie C
// Indentifiseer Medalje Wenners
public void getMedalWenners() throws IOException
{
//For each display add points:
for (int d = 0; d < 8; d ++) {
for (int t = 0; t < 32; t++) {
if( !(arrTic[t].equalsIgnoreCase("Z"))){
Kaartjie kaartjie = new Kaartjie(arrTic[t]);
String uitstalKeuse = kaartjie.getAfdeling() +
kaartjie.getUitstalling();
if (uitstalKeuse.equalsIgnoreCase(arrUitstalling[d])) {
arrPunte[d]= arrPunte[d] + kaartjie.getPuntwaarde();
} //if
} // if not Z
}// for kaartjie
}// for d
//Sorteer die twee skikkings
for (int a = 0; a < 8 -1; a++) {
for (int d = (a+1); d < 8; d++) {
if ( arrPunte[a] < arrPunte[d]){
String tempUit = arrUitstalling[a];
arrUitstalling[a]= arrUitstalling[d];
arrUitstalling[d] = tempUit;
int tempP = arrPunte[a];
arrPunte[a] = arrPunte[d];
arrPunte[d] = tempP;
} // if
} // for d
} // for a
//vertoon medaljes
System.out.println("Uitstallings wat medaljes wen:");
System.out.printf("%s%18s%9s\n","Medalje","Uitstalling","Punte");
for (int a = 0; a < 3; a ++) {
System.out.printf("%-8s%8s%15d\n", arrMedalje[a],
arrUitstalling[a],arrPunte[a]);
}
} // getMedalWenners
public void vertoonKeuselys() throws IOException
{
inKb = new BufferedReader (new InputStreamReader (System.in));
System.out.println();
char keuse = ' ';
do
{
System.out.println("\n\n KEUSELYS");
System.out.println();
System.out.println(" Opsie A");
System.out.println(" Opsie B");
System.out.println(" Opsie C");
Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com
Inligtingstegnologie/V1 29 DBE/November 2012
NSS – Memorandum
System.out.println();
System.out.println(" V - VERLAAT");
System.out.println(" ");
System.out.print(" Jou keuse? ");
keuse = inKb.readLine().toUpperCase().charAt(0);
System.out.println(" ");
String sql = "";
switch(keuse)
{
case 'A':
valideer();
break;
case 'B':
getWenNommer();
break;
case 'C':
getMedalWenners();
break;
case 'Q':
System.out.println("VERLAAT");
break;
}
}while(keuse != 'V');
}
}
Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com
Inligtingstegnologie/V1 30 DBE/November 2012
NSS – Memorandum
BYLAAG J: OPLOSSING VIR VRAAG 3 SONDER OOP: JAVA
import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Vraag3_Memo
{
String[] arrTic = {"RCm158", "ADM33", "RCv250", "RAv5",
"BRM32", "ADm236","RCm23", "RDM54",
"RCv17", "RAm12", "ADm9", "RCV43",
"RDm140", "RDm23", "ACV113", "ABv30",
"RDm22", "ARv38", "RCV8", "RAv53",
"RCv12", "ABV156", "ADM31", "ADM47",
"RAv48", "ABV246", "ABv59", "RRM321",
"ABm36", "RCV31","RAm445", "ACn26"};
String[] arrUitstalling = {"AA","AB","AC","AD","RA","RB","RC","RD"};
int[] arrPunte = {0,0,0,0,0,0,0,0};
String[]arrMedalje = {"Goud", "Silwer", "Brons"};
BufferedReader inKb;
//=====================================================================
// OPSIE A
public void valideer()
{
System.out.println("Ongeldige inskrywings");
for (int tel = 0; tel < 32;tel++)
{
char eersteKarak = arrTic[tel].charAt(0);
char tweedeKarak = arrTic[tel].charAt(1); // String tweedeKarak =
arrTic[tel].substring(1,2);
char derdeKarak = arrTic[tel].charAt(2);
if ("ABCD".indexOf(tweedeKarak)< 0 ||(eersteKarak != 'A' &&
eersteKarak != 'R' )||("MmVv".indexOf(derdeKarak)< 0 ))
{
System.out.println(arrTic[tel]);
arrTic[tel] = "Z";
}
}
}
//============================================================================
//OPSIE B
public void getWenNommer()
{
boolean geldig = false;
int wen = (int)(Math.random() * 32);
while (geldig == false)
{
if(arrTic[wen].equals("Z"))
{
wen = (int)(Math.random() * 32);
System.out.println("Ongeldige");
}
else
geldig = true;
}
System.out.println("Die posisie van die wenkaartjie in die skikking
is: " + (wen+1));
Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com
Inligtingstegnologie/V1 31 DBE/November 2012
NSS – Memorandum
System.out.println("Die wenkaartjie: " + arrTic[wen]);
}
//===========================================================================
// OPSIE C
// Indentifiseer Medalje Wenners
public void getMedalWenners() throws IOException
{
// Skryf kode vir Opsie C
//Vir elke uitstalling bepaal punte:
for (int d = 0; d < 8; d ++) {
for (int kaartjie = 0; kaartjie < 32; kaartjie++) {
if( !(arrTic[kaartjie].equalsIgnoreCase("Z"))){
String uitstalKeuse = arrTic[kaartjie].substring(0,2);
if (uitstalKeuse.equalsIgnoreCase(arrUitstalling[d])) {
char geslag = arrTic[kaartjie].charAt(2);
if (geslag == 'v' || geslag == 'm')
arrPunte[d]= arrPunte[d] + 5;
else
arrPunte[d] = arrPunte[d]+ 12;
} //if
} // if not Z
}// for kaartjie
}// for d
//Sorteer die twee skikkings
for (int a = 0; a < (8-1); a++) {
for (int d = (a+1); d < 8; d++) {
if ( arrPunte[a] < arrPunte[d]){
String tempUit = arrUitstalling[a];
arrUitstalling[a]= arrUitstalling[d];
arrUitstalling[d] = tempUit;
int tempP = arrPunte[a];
arrPunte[a] = arrPunte[d];
arrPunte[d] = tempP;
} // if
} // for d
} // for a
//vertoon medaljes
System.out.println("Uitstallings wat medaljes wen:");
System.out.printf("%s%18s%9s\n","Medalje","Uitstalling","Punte");
for (int a = 0; a < 3; a ++) {
System.out.printf("%-8s%8s%15d\n", arrMedalje[a], arrUitstalling[a],
arrPunte[a]);
}
} // getMedalWenners
public Vraag3_Memo() throws IOException
{
inKb = new BufferedReader (new InputStreamReader (System.in));
System.out.println();
char keuse = ' ';
do
{
System.out.println("\n\n KEUSELYS");
System.out.println();
System.out.println(" Opsie A");
System.out.println(" Opsie B");
System.out.println(" Opsie C");
Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com
Inligtingstegnologie/V1 32 DBE/November 2012
NSS – Memorandum
System.out.println();
System.out.println(" V - VERLAAT");
System.out.println(" ");
System.out.print(" Jou keuse? ");
keuse = inKb.readLine().toUpperCase().charAt(0);
System.out.println(" ");
String sql = "";
switch(keuse)
{
case 'A':
valideer();
break;
case 'B':
getWenNommer();
break;
case 'C':
getMedalWenners();
break;
case 'V':
System.out.println("VERLAAT");
break;
}
}while(keuse != 'V');
}
public static void main(String[] args) throws IOException
{
new Vraag3_Memo();
}
}
Kopiereg voorbehou Blaai om asseblief
Study this subject
Recommended for this subject

Memorandum
Information Technology Grade 12 P1 NSC November 2013 Memo

Memorandum
Information Technology Grade 12 P2 NSC November 2013 Memo

Memorandum
Information Technology Grade 12 P2 NSC November 2013 Memo

Memorandum
Information Technology Grade 12 Paper 1 NSC June 2013 Memo
_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
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