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

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



View all





Information Technology Grade 12 P1 NSC November 2012 Memo
Grade 12 Information Technology Paper 1 memorandum from the NSC November Exam 2012 (Afrikaans), 34 pages. Read online or download the free PDF.
Information Technology · Grade 12 · NSC November Exam · 2012. Memorandum, 34 pages. Read online or download the PDF.
- Subject
- Information Technology
- Grade
- Grade 12
- Document type
- Memorandum
- Year
- 2012
- Exam period
- NSC November Exam
- Paper
- 1
- Curriculum
- CAPS
- Pages
- 34
- File size
- 338.7 KB
Free to read online, no sign-up needed
Loading document…
Loading document…
1 of 34
This exam
NSC November Exam 2012
Questions in this paper
Document textSearch extracted text and jump to a page.
Downloaded from hlayiso.com
Inligtingstegnologie/V1 2 DBE/November 2013
NSS – Memorandum
ALGEMENE INLIGTING:
• Hierdie nasienriglyne moet as basis gebruik word tydens die nasiensessies. Hulle
is geskep om deur die nasieners gebruik te word. Daar word van alle nasieners
vereis om 'n standaardiseringsvergadering by te woon, om te verseker dat die
interpretasie van die riglyne korrek geïmplementeer word tydens die nasien van
die leerders se antwoordeboeke.
• Daar word erken dat daar alternatiewe uitgangspunte bestaan in sake 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é gegee in
hierdie riglyne verskaf, volle krediet vir die relevante vraag sal ontvang.
• Bylae A, B en C (bladsye 3–6) bevat die nasienrubriek vir elke vraag ongeag
watter een van die programmeringstale gebruik is.
• Bylae D, E en F (bladsye 7–19) bevat die programmerings kode se oplossings vir
Delphi vir VRAAG 1 tot 3.
• Bylae G, H, I en J (bladsye 20–32) bevat die programmeringskode se oplossings
vir Java vir VRAAG 1 tot 3.
• Kopieë van bylaes A, B en C (bladsye 3–6) moet gemaak word vir elke leerder om
tydens die nasiensessie voltooi te word.
Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com
Inligtingstegnologie/V1 3 DBE/November 2013
NSS – Memorandum
BYLAAG A
VRAAG 1: NASIENRUBRIEK – 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 (of *); korrekte tabel;
ORDER BY korrekte velde in korrekte volgorde
SQL: SELECT * FROM tblUitslae ORDER BY TipeDans, 3
RoetineNr Desc
1.2 Navraag: Korrekte velde & tabel; WHERE korrekte punte
beide weke korrekte operator gebruik (OR/IN) vir
weke
SQL: SELECT RoetineNr, Week, TipeDans, Punte FROM
tblUitslae WHERE (Punte BETWEEN 25 AND 35) AND
(Week=5 OR Week=9)
Alternatief: (Punte>=25) AND (Punte<=30)
(Punte > 24) AND (Punte < 36)
Punte IN [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35]
Weeks IN [5, 9]
Score >= 25 And Score <= 35 And (Week = 5 Or Week = 9) 4
(Score >= 25 And (Week = 5 Or Week = 9)) And
(Score <= 35 And (Week = 5 Or Week = 9))
Score >= 25 And Score <= 35 And Week IN (5,9)
Score IN (25,26,27,28,29,30,31,32,33,34,35) Or Week IN(5,9)
Score BETWEEN 25 And 35 and Week = 5 OR
Score BETWEEN 25 And 35 and Week = 9
NOTA: Toets die korrektheid van alternatiewe gebruik van intervalle
Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com
Inligtingstegnologie/V1 4 DBE/November 2013
NSS – Memorandum
VRAAG 1: NASIENRUBRIEK – PROGRAMMERING EN DATABASIS – vervolg
VRAAG BESKRYWING MAKS LEERDER
PUNTE PUNT
1.3 Navraag: Korrekte velde & tabel; Count; AS
AantalOptredes WHERE TipeDans
gelyk aan gebruiker toevoer GROUP BY
TipeDans
SQL: (D) SELECT TipeDans, Count(*) AS AantalOptredes FROM
tblUitslae WHERE TipeDans = "'+ sX + '" GROUP BY
TipeDans 5
SQL: (J) SELECT TipeDans, Count(*) AS AantalOptredes FROM
tblUitslae WHERE TipeDans = '"+ sX + "' GROUP BY
TipeDans
Alternatief: Mag gebruik maak van Count(<veldnaam>)
NOTA: Die gebruik van Distinct is nie toelaatbaar
1.4 Navraag: Korrekte velde; beide tabelle; WHERE koppel
tabelle met DansPaarID; professionele danser
met AND operator; LIKE Love%
OR-operators met die korrekte gebruik van
hakkies; LIKE %you%
SQL: (D) SELECT Lied, Dansmaat1, Dansmaat2 FROM tblDansPare,
tblUitslae WHERE tblUitslae.DansPaarID
=tblDansPare.DansPaarID AND (ProfessioneleDansers =
"B") AND ((Lied Like "Love%") OR (Lied LIKE "%you%"))
SQL: (J) SELECT Lied, Dansmaat1, Dansmaat2 FROM tblDansPare,
tblUitslae WHERE tblUitslae.DansPaarID 7
=tblDansPare.DansPaarID AND (ProfessioneleDansers = 'B')
AND ((Lied Like 'Love%') OR (Lied LIKE '%you%'))
Alternatief: Maak gebruik van ALIASES vir die tabel name
Alternatief: Maak gebruik van INNER JOIN stelling
(D) Die gebruik van Left(Lied,4) = “Love”
(J) Die gebruik van Left(Lied,4) = ‘Love’
NOTE: Die gebruik van * in plaas van % trek EEN punt af
Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com
Inligtingstegnologie/V1 5 DBE/November 2013
NSS – Memorandum
VRAAG 1: NASIENRUBRIEK – PROGRAMMERING EN DATABASIS – vervolg
VRAAG BESKRYWING MAKS LEERDER
PUNTE PUNT
1.5 Navraag: Korrekte velde & beide tabelle ; Formateer tot
DRIE desimale; sum(Punte); deel deur
Count(*); AS GemiddeldePunte; GROUP BY
DansPaarID
SQL: (D) SELECT DansPaarID, Format((Sum(Punte)/Count(*)),
"0.000") AS GemiddeldePunte FROM tblUitslae Group BY
DansPaarID
SQL: (J) SELECT DansPaarID, Format((Sum(Punte)/Count(*)),
'0.000') AS GemiddeldePunte FROM tblUitslae Group BY 6
DansPaarID
Alternatief: Gebruik verskillende formaterings stringe, bv. "#.000"
Die gebruik AVG(Punte) – TWEE punte
Round(<berekening>, 3) in plaas van Format
1.6 Navraag: Korrekte velde van beide tabelle ; WHERE
koppel tabelle met DansPaarID; Uitslag gelyk
aan Uitgeskakel ; Geen duplikate – kyk na
gebruik van week 12 (ingesluit – DISTINCT/Group
by) (Minder as 12- geen distinct/group by
verwag)
SQL: (D) SELECT DISTINCT Dansmaat1, Dansmaat2 FROM
tblUitslae, tblDansPare WHERE (tblUitslae.DansPaarID
=tblDansPare.DansPaarID) AND (Uitslag LIKE "Uitgeskakel")
AND (Week < 12)
SQL: (J) SELECT Dansmaat1, Dansmaat2 FROM tblUitslae, 5
tblDansPare WHERE (tblUitslae.DansPaarID
=tblDansPare.DansPaarID) AND (Uitslag LIKE 'Uitgeskakel')
AND (Week < 12)
Alternatief: Maak gebruik van ALIASES vir die tabel name
Alternatief: Maak gebruik van INNER JOIN stelling
NOTA: Indien week 12 ingesluit is moet DISTINCT/GROUP BY
gebruik word.
1.7 Navraag: UPDATE tabel; SET Uitslag to WENNERS;
WHERE Tweede rondte; AND ;
DansPaarID is 8
SQL: (D) UPDATE tblUitslae SET Uitslag = "WENNERS" WHERE
Rondte = 2 AND DansPaarID = 8 5
SQL: (J) UPDATE tblUitslae SET Uitslag = 'WENNERS' WHERE
Rondte = 2 AND DansPaarID = 8
NOTA: Die gebruik van Week is opsioneel
TOTAAL: 35
Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com
Inligtingstegnologie/V1 6 DBE/November 2013
NSS – Memorandum
BYLAAG B
VRAAG 2: NASIENRUBRIEK – 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.
• Geen objekklas gebruik: Vr 2.1.1: 0 punte; Vr 2.1.2: maksimum van 6 punte;
Vr 2.1.3: Maksimum van 5 punte; Vr 2.1.4: maksimum van 3 punte
SENTRUMNOMMER: EKSAMENNOMMER:
MAKS. LEERDER
VRAAG BESKRYWING
PUNTE PUNT
2.1.1 Geparameteriseerde KONSTRUKTOR
Al drie parameters korrek met korrekte datatipes
Ken dansmaat 1 se naam toe Ken dansmaat 2 se naam toe 5
Ken professionele status toe
2.1.2 getGewigswaarde METODE:
Korrekte metode terugstuur tipe (integer) ;Struktuur if/case/switch ;
Toets vir A en ken gewigswaarde van 1 toe;
Toets vir B en C en ken gewigswaarde van 2 toe {maak gebruik van
OR of meervoudige If’s);
Toets vir D en ken gewigswaarde van 3 toe;
Ken gewigswaarde van 0 toe vir ongeldige dans status karakters/verstek 8
waarde van nul;
Terugvoer van inhoud van toegekende waarde
NOTE: Aanvaar return type string SLEGS as omskakeling plaasvind in
roepstelling.
2.1.3 berekenFinalePunt METODE:
Heelgetal skikking as parameter;
Stap deur skikking OF verwys na elke individuele element in skikking
roep getGewigswaarde metode OF maak gebruik van gewigswaarde as
klasveranderlike; 7
vermenigvuldig 1ste en 3de skikking element met die gewigswaarde;
tel al vier punte op; stuur totale punt terug
2.1.4 toString METODE:
Korrekte metode opskrif en terugstuur tipe (string);
Konstrueer 'n reël met korrekte byskrifte; Name van dansmaats met &-
karakter;
6
Konstrueer 'n reël met professionele dansstatus(roep metode/attribuut)
op volgende reël
Stuur string terug
Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com
Inligtingstegnologie/V1 7 DBE/November 2013
NSS – Memorandum
VRAAG 2: NASIENRUBRIEK – OBJEK-GEORIËNTEERDE PROGRAMMERING –
vervolg
2.2.1 KEUSELYSOPSIE A:
Laat gebruiker toevoer plaasvind; Sleutel twee stringe as name vir
dansmaats in; Toevoer en gebruik eerste karakter van professionele
status
8
Verklaar objek lokaal/globaal in unit/klas en instansieer DansPaar objek;
met ingesleutelde waardes as argumente; in die korrekte volgorde ;
Vertoon die inligting van die DansPaar objek
2.2.2 KEUSELYSOPSIE B:
Verklaar 'n skikking van heelgetalle om vier waardes te stoor;
Verkry gebruiker toevoer vir VIER waardes;
Valideer die VIER waardes in die interval 1 tot 10; ken nul waarde toe
indien buite intervalgrense;
1ste lyn van afvoer: Vertoon byskrif en roep metodes vir name van
dansmaats OF maak gebruik van globale veranderlikes 10
2de lyn van afvoer: Vertoon byskrif en vier waardes
3de lyn van afvoer: Vertoon byskrif en roep getGewigswaarde metode om
die gewigswaarde te vertoon
4de lyn van afvoer: Vertoon byskrif en roep berekenFinalPunt metode met
korrekte parameters
2.2.3 KEUSELYSOPSIE C:
Tekslêer:
{Delphi: AssignFile & Rewrite
Java: Skep objek en gebruik om lêer te lees/skryf }
Saamvoeg van teksreël bevattende die name van beide dansmaats
asook hul finale punt in komma geskeide formaat ;
7
Skryf teksreël na die tekslêer
CloseFile/Close die skryf objek
Boodskap vir gebruiker dat lêer geskep is
NOTA (Delphi): Aanvaar die gebruik van SaveToFile metode van die
richedit.
TOTAAL: 51
Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com
Inligtingstegnologie/V1 8 DBE/November 2013
NSS – Memorandum
BYLAAG C
VRAAG 3: NASIENRUBRIEK - PROBLEEMOPLOSSING-PROGRAMMERING
ALGEMENE NOTAS:
• Penaliseer slegs EEN keer vir sintaksfout (bv ;).
SENTRUMNOMMER: EKSAMENNOMMER:
MAKS. LEERDER
VRAAG BESKRYWING
PUNTE PUNT
3.1 KEUSELYSOPSIE A:
Maak gebruik van geskikte datastruktuur (1D/2D/object array) vir al
veertien danspare;
Herhaal lus tot alle gebruikerstoevoer geldig is:
Gebruikers toevoer om vier geëlimineerde danspare aan te dui;
Valideer elke waardes vir korrekte interval
Gebruik VAL/try...except/catch om validering van toevoer as
getalle;
Tekslêer:
{DELPHI: AssignFile, Reset
JAVA: Skep objek om te lees vanuit tekslêer} ;
Lus deur reëls van tekslêer
22
Lees enkele teksreël
Verdeel data (naam, ouderdom, kontaknommer, danspaarID)
Indien geldige ouderdom EN(AND) nie geëlimineer nie
Indien geldige stem:
Inkrementeer geldige stem teller
Indien internasionale stem gebaseer op nie +27 voeg
byskrif by
Indien NIE geldige stem:
Inkrementeer ongeldige stem teller
Vertoon saamgevoegde inligting reël binne die lus
Vertoon totale aantal geldige stemme; Vertoon totale aantal ongeldige
stemme
3.2 KEUSELYSOPSIE B:
Maak gebruik van toepaslike datastruktuur(e) vir die tel van stemme
Gebruik Lus om stemme vir elke danspaar te tel (kon reeds as deel
van VRAAG 3.1 binne-in die IF-stelling vir geldige stem gedoen het)
Vertoon op- en byskrifte voor lus (aanvaar ook as deel van vraag 3.1)
Gebruik Lus om aantal stemme van elke danspaar te vertoon of die
12
byskrif "(Uitgeskakel)" indien die danspaar reeds uitgeskakel is
Inisialiseer die laagste waarde; bepaal die laagste aantal stemme
ignoreer die danspare wat reeds geëlimineer is binne die lus OF
sortering van die skikking
Vertoon die danspaar(e) wat volgende uitgeskakel gaan wordmet
byskrif
TOTAAL: 34
OPSOMMING VAN LEERDER SE PUNTE:
VRAAG 1 VRAAG 2 VRAAG 3 TOTAAL
MAKS. PUNTE 35 51 34 120
LEERDER PUNT
Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com
Inligtingstegnologie/V1 9 DBE/November 2013
NSS – Memorandum
BYLAAG D: OPLOSSING – VRAAG 1: DELPHI
unit Vraag1U_memo;
{Moontlike oplossing vir Vraag 1.}
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, ADODB, Grids, DBGrids, ExtCtrls, Buttons, Menus;
type
TfrmQ1 = class(TForm)
qryRec: TADONavraag;
dsrQry: TDataSource;
grdQ1: 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
frmQ1: TfrmQ1;
implementation
{$R *.dfm}
//===============================================================
procedure TfrmQ1.mnuOpsieAClick(Sender: TObject);
begin
qryRec.Close;
qryRec.SQL.Text := 'SELECT * FROM tblUitslae ' +
'ORDER BY TipeDans, RoetineNr Desc';
qryRec.Open;
end;
//===============================================================
procedure TfrmQ1.mnuOpsieBClick(Sender: TObject);
begin
qryRec.Close;
qryRec.SQL.Text := 'SELECT RoetineNr, Week, TipeDans, Punte '+
'FROM tblUitslae WHERE (Punte BETWEEN 25 AND 35) AND '+
'(Week=5 OR Week=9)';
qryRec.Open;
end;
//===============================================================
Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com
Inligtingstegnologie/V1 10 DBE/November 2013
NSS – Memorandum
procedure TfrmQ1.mnuOpsieCClick(Sender: TObject);
var
sX : String;
begin
sX := INPUTBOX('Vraag 1', 'Sleutel die TIPE dans in bv. Rumba.', '');
qryRec.Close;
qryRec.SQL.Text := 'SELECT TipeDans, Count(*) AS AantalOptredes '+
'FROM tblUitslae WHERE TipeDans = "'+ sX +
'" GROUP BY TipeDans';
qryRec.Open;
end;
//===============================================================
procedure TfrmQ1.mnuOpsieDClick(Sender: TObject);
begin
qryRec.Close;
qryRec.SQL.Text := 'SELECT Lied, Dansmaat1, Dansmaat2 ' +
'FROM tblDansPare, tblUitslae '+
'WHERE tblUitslae.DansPaarID=tblDansPare.DansPaarID AND '+
'(ProfessioneleDansers = "B") AND '+
'((Lied Like "Love%") OR (Lied LIKE "%you%"))';
qryRec.Open;
end;
//===============================================================
procedure TfrmQ1.mnuOpsieEClick(Sender: TObject);
begin
qryRec.Close;
qryRec.SQL.Text := 'SELECT DansPaarID, ' +
'Format((Sum(Punte)/Count(*)),"0.000") AS '+
'GemiddeldePunte FROM tblUitslae Group BY DansPaarID';
qryRec.Open;
end;
//===============================================================
procedure TfrmQ1.mnuOpsieFClick(Sender: TObject);
begin
qryRec.Close;
qryRec.SQL.Text := 'SELECT Dansmaat1, Dansmaat2 ' +
'FROM tblUitslae, tblDansPare '+
'WHERE (tblUitslae.DansPaarID=tblDansPare.DansPaarID) '+
' AND (Uitslag LIKE "Uitgeskakel") AND (Week < 12) ' +
'GROUP BY Dansmaat1, Dansmaat2';
qryRec.Open;
end;
//===============================================================
procedure TfrmQ1.mnuOpsieGClick(Sender: TObject);
begin
qryRec.Close;
qryRec.SQL.Text := 'UPDATE tblUitslae SET Uitslag = "WENNERS" '+
'WHERE Rondte = 2 AND DansPaarID = 8';
qryRec.ExecSQL;
MessageDlg('Rekords suksesvol verwerk',mtInformation,[mbok],0);
end;
//===============================================================
procedure TfrmQ1.mnuVerlaatClick(Sender: TObject);
begin
Application.Terminate;
end;
end.
Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com
Inligtingstegnologie/V1 11 DBE/November 2013
NSS – Memorandum
BYLAAG E: OPLOSSING – VRAAG 2: DELPHI
2.1. GEGEWE DANSPAAR KLASEENHEID:
unit uDansPaar_memo;
// Moontlike oplossing vir vraag 2
interface
type
TPunteSkik = array[1..4] of Integer;
TDansPaar = class(TObject)
private
fDansM1,
fDansM2 : String;
fProfessioneel : char;
public
constructor Create; overload;
constructor Create(sDansmaat1, sDansmaat2 : String; cProf : Char);
overload;
function GetDansMaat1 : String;
function GetDansMaat2 : String;
function GetProfessioneel: char;
function GetGewigswaarde : Integer;
function BerekenFinalePunt(arrBeoordelaarPunte : TPunteSkik) : Integer;
function toString : String;
end;
implementation
{ TDanceCouple }
constructor TDansPaar.Create;
begin
end;
function TDansPaar.BerekenFinalePunt(
arrBeoordelaarPunte: TPunteSkik): Integer;
begin
Result := (GetGewigswaarde*arrBeoordelaarPunte[1]) + arrBeoordelaarPunte[2] +
(GetGewigswaarde*arrBeoordelaarPunte[3]) + arrBeoordelaarPunte[4];
end;
constructor TDansPaar.Create(sDansmaat1, sDansmaat2: String; cProf: Char);
begin
fDansM1 := sDansmaat1;
fDansM2 := sDansmaat2;
fProfessioneel := cProf;
end;
function TDansPaar.GetDansMaat1: String;
begin
Result := fDansM1;
end;
function TDansPaar.GetDansMaat2: String;
begin
Result := fDansM2;
end;
function TDansPaar.GetGewigswaarde: Integer;
Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com
Inligtingstegnologie/V1 12 DBE/November 2013
NSS – Memorandum
begin
case fProfessioneel of
'A' : Result := 1;
'B', 'C' : Result := 2;
'D' : Result := 3;
else
Result := 0;
end;//case
end;
function TDansPaar.GetProfessioneel : char;
begin
Result := fProfessioneel;
end;
function TDansPaar.toString: String;
begin
Result := 'Danspaar: ' + GetDansMaat1 + ' & ' + GetDansMaat2 + #13 +
'Professionele dansstatus: ' + GetProfessioneel;
end;
end.
2.2 VORMEENHEID – VRAAG 2:
unit Vraag2U_memo;
{Moontlike oplossing vir Vraag 2}
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, Menus, uDansPaar_memo;
type
TfrmVR2 = class(TForm)
mnuMain: TMainMenu;
mnuOpsieA: TMenuItem;
mnuOpsieB: TMenuItem;
mnuOpsieC: TMenuItem;
mnuVerlaat: TMenuItem;
redV2: TRichEdit;
procedure mnuVerlaatClick(Sender: TObject);
procedure mnuOpsieAClick(Sender: TObject);
procedure mnuOpsieBClick(Sender: TObject);
procedure mnuOpsieCClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmVR2: TfrmVR2;
DansPaar : TDansPaar;
arrPunte : TPunteSkik;
implementation
{$R *.dfm}
{$R+}
Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com
Inligtingstegnologie/V1 13 DBE/November 2013
NSS – Memorandum
procedure TfrmVR2.mnuOpsieAClick(Sender: TObject);
var
sMaat1, sMaat2 : String;
cProf : Char;
begin
{Kodeer Opsie A}
sMaat1 := InputBox('Dansmaat 1', 'Sleutel naam van dansmaat 1 in.', 'Sarah');
sMaat2 := InputBox('Dansmaat 2', 'Sleutel naam van dansmaat 2 in.', 'John');
cProf := InputBox('Dans status', 'Sleutel die professionele dans status [A,
B, C, D] van danspaar in.', 'C')[1];
DansPaar := TDansPaar.Create(sMaat1, sMaat2, cProf);
redV2.Lines.Add(DansPaar.toString);
end;
procedure TfrmVR2.mnuOpsieBClick(Sender: TObject);
var
k : Integer;
begin
{Kodeer Opsie B}
For k := 1 to 4 do
begin
arrPunte[k] := StrToInt(InputBox('Punte', 'Sleutel die punt van beoordelaar
' + IntToStr(k) + ' in.', ''));
if (arrPunte[k] > 10) OR (arrPunte[k] < 0)
then arrPunte[k] := 0;
end;//for
redV2.Lines.Clear;
redV2.Lines.Add('Danspaar: ' + DansPaar.GetDansMaat1 + ' & ' +
DansPaar.GetDansMaat2 );
redV2.Lines.Add('Punte van beoordelaars: ' + IntToStr(arrPunte [1]) + ' ' +
IntToStr(arrPunte [2]) + ' ' +IntToStr(arrPunte [3]) + ' '
+
IntToStr(arrPunte [4]) );
redV2.Lines.Add('Gewigswaarde: ' + IntToStr(DansPaar.GetGewigswaarde));
redV2.Lines.Add('Finale punt: ' +
IntToStr(DansPaar.BerekenFinalePunt(arrPunte)));
end;
procedure TfrmVR2.mnuOpsieCClick(Sender: TObject);
var
TLeer : TextFile;
sLyn : String;
begin
{Kodeer Opsie C}
redV2.Lines.Clear;
AssignFile(TLeer, 'Punte.txt');
Rewrite(TLeer);
sLyn := DansPaar.GetDansMaat1 + ',' +
DansPaar.GetDansMaat2 + ',' +
IntToStr(DansPaar.BerekenFinalePunt(arrPunte));
Writeln(TLeer, sLyn);
CloseFile(TLeer);
redV2.Lines.Add('Data is na teksleer geskryf');
end;
procedure TfrmVR2.mnuVerlaatClick(Sender: TObject);
begin
Application.Terminate;
end;
end.
Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com
Inligtingstegnologie/V1 14 DBE/November 2013
NSS – Memorandum
BYLAAG F: OPLOSSING MET OOP – VRAAG 3: DELPHI
3.1. DANSPAAR KLASEENHEID:
unit uDanspaar_memo;
// 'n Moontlike oplossing - Vraag 3 - met OOP - Danspaar klas
interface
type
TDanspaar = class(TObject)
private
fNommer,
fStemme : integer;
fElimineer : boolean;
public
constructor Create(iNommer : integer);
function GetNommer : integer;
procedure VoegStemBy;
function GetStemme : integer;
function GetElimineer : boolean;
procedure SetElimineer(bElimineer : boolean);
function toString : String;
end;
implementation
uses SysUtils;
{ TDanspaar }
procedure TDanspaar.VoegStemBy;
begin
Inc(fStemme , 1);
end;
constructor TDanspaar.Create(iNommer: integer);
begin
fNommer := iNommer;
fStemme := 0;
fElimineer := False;
end;
function TDanspaar.GetElimineer: boolean;
begin
Result := fElimineer;
end;
procedure TDanspaar.SetElimineer(bElimineer: boolean);
begin
fElimineer := bElimineer;
end;
function TDanspaar.GetNommer: integer;
begin
Result := fNommer;
end;
function TDanspaar.GetStemme: integer;
begin
Result := fStemme;
end;
Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com
Inligtingstegnologie/V1 15 DBE/November 2013
NSS – Memorandum
function TDanspaar.toString: String;
begin
IF GetElimineer
then Result := IntToStr(fNommer) + #9 + '(Uitgeskakel)'
else Result := IntToStr(fNommer) + #9 + IntToStr(fStemme);
end;
end.
3.2 'N PERSOON KLASEENHEID ('A VOTER'):
unit uPersoon_memo;
// 'n Moontlike oplossing - Vraag 3 - met OOP - Persoon ('voter') class
interface
type
TPersoon = class(TObject)
private
fNaam,
fKontak : String;
fOud : integer;
public
constructor Create(sNaam, sKontak : String; iOud : integer);
function GetOuderdom : integer;
function isInternasionaal:boolean;
function toString : String;
end;
implementation
{ TVoter }
constructor TPersoon.Create(sNaam, sKontak: String; iOud : integer);
begin
fNaam := sNaam;
fKontak := sKontak;
fOud := iOud;
end;
function TPersoon.GetOuderdom: integer;
begin
Result := fOud;
end;
function TPersoon.isInternasionaal:boolean;
begin
Result := (Copy(fKontak, 1, 3) <> '+27');
end;
function TPersoon.toString: String;
begin
IF isInternasionaal
then Result := fNaam + #9 + fKontak + #9 + 'Internasionale stem'
else Result := fNaam + #9 + fKontak;
end;
end.
Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com
Inligtingstegnologie/V1 16 DBE/November 2013
NSS – Memorandum
3.3. VORMEENHEID:
unit Vraag3U_oop_memo;
// 'n Moontlike oplossing vir Vraag 3 - met OOP
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, StdCtrls, ComCtrls,
uPersoon_memo, uDanspaar_memo; //gebruiker gedefinieerde klasse
type
TfrmQ3OOPMemo = class(TForm)
redV3: TRichEdit;
mmuMain: TMainMenu;
mnuOpsieA: TMenuItem;
mnuOpsieB: TMenuItem;
mnuVerlaat: TMenuItem;
procedure mnuVerlaatClick(Sender: TObject);
procedure mnuOpsieAClick(Sender: TObject);
procedure mnuOpsieBClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmQ3OOPMemo: TfrmQ3OOPMemo;
implementation
{$R *.dfm}
{$R+}
var
arrDanspare : array[1..14] of TDanspaar;
Elimineer : Set of 1..14;
procedure TfrmQ3OOPMemo.mnuVerlaatClick(Sender: TObject);
begin
Application.Terminate;
end;
procedure TfrmQ3OOPMemo.mnuOpsieAClick(Sender: TObject);
var
APersoon : TPersoon;
TLeer : TextFile;
sLyn, sNaam, sKontak : String;
iDataTel, iOngeldigTel : integer;
iOud, iDanspaar, iNommer, K : integer;
begin //Opsie A
//Skep die 14 danspare
for K := 1 to 14 do
arrDanspare[K] := TDanspaar.Create(K);
//gebruikertoevoer watter danspare is uitgeskakel
Elimineer := [];
For K := 1 to 4 do
begin
try
Repeat
Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com
Inligtingstegnologie/V1 17 DBE/November 2013
NSS – Memorandum
iNommer := StrToInt(InputBox('Uitgeskakelde danspare ', 'Sleutel die
nommer van die danspaar in (1..14)', ''));
Until (iNommer in [1..14]);
except
on EConvertError do
begin
ShowMessage('Sleutel ''n getal in.');
Exit;
end;
end;//try
Elimineer := Elimineer + [iNommer];
arrDanspare[iNommer].SetElimineer(True);
end;
//Lees data vanaf teksleer
AssignFile(TLeer, 'DataV3.txt');
Reset(TLeer);
iDataTel := 0;
iOngeldigTel := 0;
redV3.Lines.Clear;
redV3.Paragraph.TabCount := 3;
redV3.Paragraph.Tab[0] := 40;
redV3.Paragraph.Tab[1] := 200;
redV3.Paragraph.Tab[2] := 300;
redV3.Lines.Add('Nr.' +#9+ 'Naam' +#9+ 'Selfoonnommer');
While NOT EOF(TLeer) DO
begin
Readln(TLeer, sLyn);
//verdeel data >> naame oud kontak & danspaar nommer
sNaam := Copy(sLyn, 1, Pos(';', sLyn)-1);
Delete(sLyn, 1, Pos(';', sLyn));
iOud := StrToInt(Copy(sLyn, 1, Pos('#', sLyn)-1));
Delete(sLyn, 1, Pos('#', sLyn));
sKontak := Copy(sLyn, 1, Pos(';', sLyn)-1);
Delete(sLyn, 1, Pos(';', sLyn));
iDanspaar := StrToInt(sLyn);
APersoon := TPersoon.Create(sNaam, sKontak, iOud);
IF (APersoon.GetOuderdom >= 18) and NOT(iDanspaar IN Elimineer)
then
begin //geldige stem
Inc(iDataTel, 1);
redV3.Lines.Add(IntToStr(iDataTel) + #9 + APersoon.toString);
arrDanspare[iDanspaar].VoegStemBy;
end
else
begin //ongeldige stem
Inc(iOngeldigTel, 1);
end;
end; //while
CloseFile(TLeer);
redV3.Lines.Add(' ');
redV3.Lines.Add('Ongeldige stemme: ' + IntToStr(iOngeldigTel) + #13 +
'Geldige stemme: ' + IntToStr(iDataTel));
APersoon := nil;
end;
procedure TfrmQ3OOPMemo.mnuOpsieBClick(Sender: TObject);
var
sLyn : String;
K, iLaag : integer;
Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com
Inligtingstegnologie/V1 18 DBE/November 2013
NSS – Memorandum
begin
// Option B
redV3.Lines.Clear;
redV3.Paragraph.TabCount := 3;
redV3.Paragraph.Tab[0] := 100;
redV3.Paragraph.Tab[1] := 200;
redV3.Paragraph.Tab[2] := 300;
sLyn := '';
redV3.Lines.Add('Stemme gedurende week 5 ontvang:');
redV3.Lines.Add('Danspaar' +#9 + 'Stemme');
for K := 1 to 14 do
redV3.Lines.Add(arrDanspare[K].toString);
//determine the lowest total votes
iLaag := 500;
For K := 1 to 14 do
IF (arrDanspare[K].GetStemme < iLaag) AND (arrDanspare[K].GetStemme <> 0)
then
begin
iLaag := arrDanspare[K].GetStemme;
end;
redV3.Lines.Add(' ');
sLyn := '';
For K:= 1 to 14 do
IF (arrDanspare[K].GetStemme = iLaag)
then
sLyn := sLyn + IntToStr(arrDanspare[K].GetNommer) + ' ';
redV3.Lines.Add('Danspaar(e) wat volgende geelimineer kan word: ' + sLyn);
end;
end.
Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com
Inligtingstegnologie/V1 19 DBE/November 2013
NSS – Memorandum
BYLAAG G: OPLOSSING SONDER OOP– VRAAG 3: DELPHI
unit Vraag3U_memo;
//'n Moontlike oplossing vir Vraag 3 - sonder gebruik van OOP
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, StdCtrls, ComCtrls;
type
TfrmVraag3 = class(TForm)
mnuMain: TMainMenu;
mnuOpsieA: TMenuItem;
mnuOpsieB: TMenuItem;
mnuVerlaat: TMenuItem;
redV3: TRichEdit;
procedure mnuVerlaatClick(Sender: TObject);
procedure mnuOpsieAClick(Sender: TObject);
procedure mnuOpsieBClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmVraag3: TfrmVraag3;
implementation
{$R *.dfm}
{$R+}
VAR
iDataTel,
iOngeldigTel : integer;
arrDanspare : array[1..14] of integer;
Elimineer : Set of 1..14;
procedure TfrmVraag3.mnuOpsieAClick(Sender: TObject);
var
TLeer : TextFile;
sLyn, sNaam, sKontak : String;
iOud, iDansPaar, iGetal, K : integer;
begin
//gebruiker toevoer - uitgeskakelde danspare
Elimineer := [];
For K := 1 to 14 do
arrDanspare[K] := 0;
For K := 1 to 4 do
begin
try
Repeat
iGetal := StrToInt(InputBox('Uitgeskakelde danspaar', 'Sleutel nommer
van danspaar (1..14) in.', ''));
Until (iGetal in [1..14]);
except
on EConvertError do
begin
ShowMessage('Sleutel asseblief ''n getal in.');
Exit;
Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com
Inligtingstegnologie/V1 20 DBE/November 2013
NSS – Memorandum
end;
end;//try
Elimineer := Elimineer + [iGetal];
end;
//Lees data vanaf teksleer
AssignFile(TLeer, 'DataV3.txt');
Reset(TLeer);
iDataTel := 0;
iOngeldigTel := 0;
redV3.Lines.Clear;
redV3.Paragraph.TabCount := 3;
redV3.Paragraph.Tab[0] := 40;
redV3.Paragraph.Tab[1] := 200;
redV3.Paragraph.Tab[2] := 300;
redV3.Lines.Add('Nr.' +#9+ 'Naam ' +#9+ 'Selfoonnommer');
While NOT EOF(TLeer) DO
begin
Readln(TLeer, sLyn); {x}
//verdeel data >> naam ouderdom kontaknommer & danspaarnommer
sNaam := Copy(sLyn, 1, Pos(';', sLyn)-1);
Delete(sLyn, 1, Pos(';', sLyn));
iOud := StrToInt(Copy(sLyn, 1, Pos('#', sLyn)-1));
Delete(sLyn, 1, Pos('#', sLyn));
sKontak := Copy(sLyn, 1, Pos(';', sLyn)-1);
Delete(sLyn, 1, Pos(';', sLyn));
iDanspaar := StrToInt(sLyn);
//valideer >> oud>=18 danspaar nie uitgeskakel nie
if (iOud >= 18) AND NOT(iDanspaar IN Elimineer)
then
begin //geldige stem
Inc(iDataTel, 1);
Inc(arrDanspare[iDanspaar], 1);
sLyn := IntToStr(iDataTel) + #9 + sNaam + #9 + sKontak;
if Copy(sKontak, 1, 3) <> '+27' //internasionale stem
then
sLyn := sLyn + #9 + 'Internasionale stem';
redV3.Lines.Add(sLyn);
end
else
begin
//ongeldige stem - laat buite rekening.
Inc(iOngeldigTel, 1);
end;//else
end; //while
CloseFile(TLeer);
redV3.Lines.Add(' ');
redV3.Lines.Add('Ongeldige stemme: ' + IntToStr(iOngeldigTel) + #13 +
'Geldige stemme: ' + IntToStr(iDataTel));
end;
procedure TfrmVraag3.mnuOpsieBClick(Sender: TObject);
var
K, iCLaag : integer;
sLyn : String;
begin
//Opsie B
redV3.Lines.Clear;
Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com
Inligtingstegnologie/V1 21 DBE/November 2013
NSS – Memorandum
redV3.Paragraph.TabCount := 3;
redV3.Paragraph.Tab[0] := 100;
redV3.Paragraph.Tab[1] := 200;
redV3.Paragraph.Tab[2] := 300;
sLyn := '';
redV3.Lines.Add('Stemme gedurende week 5 ontvang:');
redV3.Lines.Add('Danspaar' +#9 + 'Stemme');
for K := 1 to 14 do
begin
if K in Elimineer
then redV3.Lines.Add(IntToStr(K) + #9 +'(Uitgeskakel)')
else redV3.Lines.Add(IntToStr(K) + #9 + IntToStr(arrDanspare[K]));
end;
//Bereken laagste aantal stemme
iCLaag := 500;
For K := 1 to 14 do
IF (arrDanspare[K] < iCLaag) AND (arrDanspare[K] > 0)
then iCLaag := arrDanspare[K];
//vertoon danspare wat volgende geelimineer mag word
redV3.Lines.Add(' ');
sLyn := '';
For K := 1 to 14 do
IF (arrDanspare[K] = iCLaag)
then
sLyn := sLyn + IntToStr(K) + ' ';
redV3.Lines.Add('Danspaar(e) wat volgende geelimineer kan word: ' + sLyn);
end;
procedure TfrmVraag3.mnuVerlaatClick(Sender: TObject);
begin
Application.Terminate;
end;
end.
Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com
Inligtingstegnologie/V1 22 DBE/November 2013
NSS – Memorandum
BYLAAG H: OPLOSSING – VRAAG 1: JAVA
// Sleutel jou eksamennommer hier in.
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.sql.*;
import java.util.Scanner;
public class ToetsVraag1_memo
{
public static void main(String[] args) throws SQLException, IOException
{
Scanner sc = new Scanner(System.in);
// OF
// BufferedReader inKb = new BufferedReader(new
InputStreamReader(System.in));
Vraag1 DB = new Vraag1();
System.out.println();
char choice = ' ';
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? ");
choice = sc.nextLine().toUpperCase().charAt(0);
// OF
// choice = inKb.readLine().toUpperCase().charAt(0);
System.out.println(" ");
String sql = "";
switch (choice) {
case 'A': // Vraag 1.1
{
sql = "SELECT * FROM tblUitslae ORDER BY TipeDans,
RoetineNr Desc";
DB.Navraag(sql);
break;
}
//=============================================================================
case 'B': // Vraag 1.2
{
sql = "SELECT RoetineNr, Week, TipeDans, Punte FROM
tblUitslae WHERE (Punte BETWEEN 25 AND 35) AND (Week=5 OR Week=9)";
DB.Navraag(sql);
break;
}
//=============================================================================
Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com
Inligtingstegnologie/V1 23 DBE/November 2013
NSS – Memorandum
case 'C': // Vraag 1.3
{
System.out.println("Vraag 1: Sleutel die TIPE dans in bv.
Rumba.");
String sX = sc.nextLine();
// OF
// String sX = inKb.readLine();
sql = "SELECT TipeDans, Count(*) AS AantalOptredes FROM
tblUitslae WHERE TipeDans = '"+ sX + "' GROUP BY TipeDans";
DB.Navraag(sql);
break;
}
//=============================================================================
case 'D': // Vraag 1.4
{
sql = "SELECT Lied, Dansmaat1, Dansmaat2 FROM tblDansPare,
tblUitslae WHERE tblUitslae.DansPaarID=tblDansPare.DansPaarID AND
(ProfessioneleDansers = 'B') AND ((Lied Like 'Love%') OR (Lied LIKE '%you%'))";
DB.Navraag(sql);
break;
}
//=============================================================================
case 'E': // Vraag 1.5
{
sql = "SELECT DansPaarID,
Format((Sum(Punte)/Count(*)),'0.000') AS GemiddeldePunte FROM tblUitslae Group
BY DansPaarID";
DB.Navraag(sql);
break;
}
//=============================================================================
case 'F': // Vraag 1.6
{
sql = "SELECT Dansmaat1, Dansmaat2 FROM tblUitslae,
tblDansPare WHERE (tblUitslae.DansPaarID=tblDansPare.DansPaarID) AND (Uitslag
LIKE 'Uitgeskakel') AND (Week < 12) GROUP BY Dansmaat1, Dansmaat2";
DB.Navraag(sql);
break;
}
//=============================================================================
case 'G': // Vraag 1.7
{
sql = "UPDATE tblUitslae SET Uitslag = 'WENNERS' WHERE
Rondte = 2 AND DansPaarID = 8";
DB.Navraag(sql);
break;
}
}
} while (choice != 'V');
DB.disconnect();
System.out.println("Verlaat");
}
}
Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com
Inligtingstegnologie/V1 24 DBE/November 2013
NSS – Memorandum
BYLAAG I: OPLOSSING – VRAAG 2: JAVA
2.1 DANSPAAR OBJECK KLAS:
// 'n Moontlike oplossing vir Vraag 2 - class unit
public class DansPaar_memo
{
private String dans_m1;
private String dans_m2;
private char professioneel;
public DansPaar_memo()
{
}
public DansPaar_memo(String maat1, String maat2, char pro)
{
dans_m1 = maat1;
dans_m2 = maat2;
professioneel = pro;
}
public String getDansmaat1()
{
return dans_m1;
}
public String getDansmaat2()
{
return dans_m2;
}
public char getProfessioneel()
{
return professioneel;
}
public int getGewigswaarde()
{
int gewig = 0;
if(professioneel == 'D')
gewig =3;
if(professioneel == 'B' || professioneel == 'C')
{
gewig = 2;
}
if(professioneel == 'A')
{
gewig = 1;
}
return gewig;
}
public int berekenFinalePunt(int[] punte)
{
int uitslag = 0;
for(int i = 0; i < punte.length; i++)
{
Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com
Inligtingstegnologie/V1 25 DBE/November 2013
NSS – Memorandum
if(i == 0 || i == 2)
{
uitslag += punte[i] * getGewigswaarde();
}
else
{
uitslag += punte[i];
}
}
return uitslag;
}
public String toString()
{
return "Danspaar: " + getDansmaat1()+ " & " + getDansmaat2() + "\n"
+ "Professionele dansstatus: " + getProfessioneel();
}
}
2.3 TOETS/DRYWER KLAS:
// 'n Moontlike oplossing vir Vraag 2 - driver/test unit
import java.io.*;
import javax.swing.*;
import java.text.*;
import java.util.Scanner;
public class ToetsVraag2_memo
{
public static void main(String[] args) throws Exception
{
int[] punte = new int[4];
DansPaar_memo danspaar = new DansPaar_memo();
Scanner sc = new Scanner(System.in);
//OF BufferedReader kb = new BufferedReader(new
InputStreamReader(System.in));
char keuse = ' ';
do {
System.out.println(" KEUSELYS\n");
System.out.println("Opsie A");
System.out.println("Opsie B");
System.out.println("Opsie C");
System.out.println("");
System.out.println("V - VERLAAT");
System.out.println("\nJou keuse? ");
keuse = sc.nextLine().toUpperCase().charAt(0);
//OF keuse = kb.readLine().toUpperCase().charAt(0);
switch (keuse) {
case 'A':
// KODEER OPSIE A
System.out.println("Sleutel die naam van dansmaat 1 in.");
String dansmaat1 = sc.nextLine();
// OF
// String dansmaat1 = inKb.readLine();
System.out.println("Sleutel die naam van dansmaat 2 in.");
String dansmaat2 = sc.nextLine();
// OF
Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com
Inligtingstegnologie/V1 26 DBE/November 2013
NSS – Memorandum
// String dansmaat2 = inKb.readLine();
System.out.println("Sleutel professionele status (A/B/C/D)
van danspaar in.");
char professioneel = sc.nextLine().toUpperCase().charAt(0);
// OF
// char professioneel = inKb.readLine().toUpperCase().charAt(0);
danspaar = new DansPaar_memo(dansmaat1, dansmaat2,
professioneel);
System.out.println(danspaar);
System.out.println("");
break;
case 'B':
// KODEER OPSIE B
System.out.println();
for (int k = 0; k < 4; k++ ){
System.out.println("Sleutel punt van beoordeelaar " +
(k+1) + " in.");
punte[k] = Integer.parseInt(sc.nextLine());
// OF
// punte[k] = Integer.parseInt(inKb.readLine());
if ((punte[k]>10)||(punte[k]<0))
{
punte[k]=0;
}
}
System.out.println("Danspaar: " + danspaar.getDansmaat1() + "
& " + danspaar.getDansmaat2());
System.out.println("Punte van beoordelaars: " + punte[0] + "
" + punte[1] + " " + punte[2] + " " + punte[3]);
System.out.println("Gewigswaarde: " +
danspaar.getGewigswaarde());
System.out.println("Finale punt: " +
danspaar.berekenFinalePunt(punte));
System.out.println("");
break;
case 'C':
// KODEER OPSIE C
BufferedWriter bw = new BufferedWriter(new
FileWriter("Punte.txt"));
bw.write(danspaar.getDansmaat1() + "," +
danspaar.getDansmaat2() + "," + danspaar.berekenFinalePunt(punte));
bw.close();
System.out.println("Data is na teksleer geskryf");
System.out.println("");
break;
case 'V':
System.out.println("VERLAAT");
}
} while (keuse != 'V');
}
}
Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com
Inligtingstegnologie/V1 27 DBE/November 2013
NSS – Memorandum
BYLAAG J: OPLOSSING MET OOP – VRAAG 3: JAVA
3.1. DANSPAAR OBJEK KLAS:
//moontlike oplossing vir vraag 3 - met OOP
public class Danspaar {
private int aantal;
private int aantalStemme;
private boolean inKomp; // danspaar nog in kompetisie
public Danspaar(int aantal, int aantalStemme) {
this.aantal = aantal;
this.aantalStemme = aantalStemme;
inKomp = true;
}
public int getAantal() {
return aantal;
}
public void setAantal(int aantal) {
this.aantal = aantal;
}
public int getAantalStemme() {
return aantalStemme;
}
public void setAantalStemme(int aantalStemme) {
this.aantalStemme = aantalStemme;
}
public void VoegStemBy()
{
aantalStemme++;
}
public void setInKomp()
{
inKomp = false;
}
public boolean isInKomp()
{
return inKomp;
}
public String toString()
{
String afvoer = "";
if(inKomp)
{
afvoer = String.format("%-15s%-10s",
getAantal(),getAantalStemme());
}
else
{
afvoer = String.format("%-15s%-10s", getAantal()
,"(Uitgeskakel)");
}
Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com
Inligtingstegnologie/V1 28 DBE/November 2013
NSS – Memorandum
return afvoer;
}
}
3.2 'N PERSOON OBJEK KLAS ('A VOTER'):
public class Persoon
{
private String naam;
private String selfoon;
private int oud;
private int stem;
public Persoon(String Naam, String Sel, int Oud, int Stem)
{
naam = Naam;
selfoon = Sel;
oud = Oud;
stem = Stem;
}
public String getNaam() {
return naam;
}
public String getSelfoon() {
return selfoon;
}
public int getOud() {
return oud;
}
public int getStem() {
return stem;
}
public boolean isInternasionaal()
{
if(selfoon.substring(0,3).equals("+27"))
return true;
else
return false;
}
public String toString()
{
String afvString = "";
if(isInternasionaal()){
afvString = String.format("%-25s%-25s",getNaam(),getSelfoon());
}
else
{
afvString = String.format("%-25s%-25s%-25s",getNaam(),getSelfoon(),
"Internasionale stem");
}
return afvString;
}
}
Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com
Inligtingstegnologie/V1 29 DBE/November 2013
NSS – Memorandum
3.3 STEMPROSES OBJEK KLAS:
import java.io.*;
import java.util.Scanner;
public class StemProses
{
Danspaar[] danspaar = new Danspaar[14];
public void leesDanspaar() {
for (int teller = 0; teller < 14; teller++) {
danspaar[teller] = new Danspaar((teller+1), 0);
}
}
public void leesVanafLeer() throws IOException
{
Scanner sf = new Scanner(new FileReader("DataV3.txt"));
// OF
// BufferedReader vLeer = new BufferedReader(new
FileReader("DataQ3.txt"));
Scanner sc = new Scanner(System.in);
// OF
// BufferedReader kb = new BufferedReader(new
InputStreamReader(System.in));
for (int teller = 0; teller < 4; teller++) {
int nommer = 0;
do
{
System.out.println("Sleutel die nommer van die
danspaar in (1 - 14) ");
try
{
nommer = Integer.parseInt(sc.nextLine());
}
catch (NumberFormatException e)
{
nommer = 0;
System.out.println("nie 'n nommer nie");
}
} while (nommer < 1 || nommer > 14);
danspaar[nommer-1].setInKomp();
}
String afvString = String.format("%-10s%-25s%-25s", "Nr.", "Naam",
"Selfoonnommer");
System.out.println(afvString);
int geldigeStemme = 0;
int onGeldigeStemme = 0;
/* Nodig wanneer met BufferedReader werk.
* try {
* String lyn = vLeer.readLine();
* while (lyn != null) { */
while (sf.hasNext()) {
String lyn = sf.nextLine();
String[] temp1 = lyn.split(";");
String[] temp2 = temp1[1].split("#");
String naam = temp1[0];
Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com
Inligtingstegnologie/V1 30 DBE/November 2013
NSS – Memorandum
int oud = Integer.parseInt(temp2[0]);
String sel = temp2[1];
int stem = Integer.parseInt(temp1[2]);
Persoon persoon = new Persoon(naam, sel, oud, stem);
if (persoon.getOud()>= 18) {
boolean gevind = false;
for (int k = 0; k<14; k++)
{
if (persoon.getStem()==danspaar[k].getAantal()&&
!danspaar[k].isInKomp())
gevind = true;
}
if (gevind == false)
{
geldigeStemme++;
System.out.println(geldigeStemme + "\t" + persoon);
danspaar[stem-1].VoegStemBy(); // tel individuele danspaar
stemme
}
else {
onGeldigeStemme++;
}
}
else
{
onGeldigeStemme++;
}
// lyn = vLeer.readLine();
}
/* Nodig wanneer met BufferedReader werk.
}
catch (FileNotFoundException e) {
System.out.println(e);
}
catch (Exception f) {
System.out.println(f);
}*/
System.out.println();
System.out.println("Ongeldige stemme: " + onGeldigeStemme);
System.out.println("Geldige stemme: " + geldigeStemme);
System.out.println("\n");
}
public void vertoonDanspare(){
System.out.println("\n\nStemme gedurende week 5 ontvang:");
System.out.printf(String.format("%-15s%-10s\n", "Danspaar",
"Stemme"));
String afvoer = "";
for (int teller = 0; teller < 14; teller++) {
System.out.println(danspaar[teller]);
}
System.out.println(afvoer);
System.out.print("Danspaar(e) wat volgende uitgeskakel kan word: ");
int laagste = getLaag();
for (int teller = 0; teller < 14; teller++) {
if (laagste == danspaar[teller].getAantalStemme())
{
System.out.print(danspaar[teller].getAantal() + " ");
}
}
System.out.println("\n");
Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com
Inligtingstegnologie/V1 31 DBE/November 2013
NSS – Memorandum
}
public int getLaag() {
int laag = 500;
for (int teller = 0; teller < 14; teller++) {
if (danspaar[teller].getAantalStemme() < laag &&
danspaar[teller].getAantalStemme() > 0) {
laag = danspaar[teller].getAantalStemme();
}
}
return laag;
}
}
3.4 TOETS/DRYWER KLAS (STEMKEUSELYS):
//Moontlike oplossing vir vraag 3 - met OOP
import java.io.*;
import java.util.Scanner;
public class StemKeuselys {
public static void main(String[] args) throws IOException
{
StemProses stem = new StemProses();
Scanner sc = new Scanner(System.in);
// OF
// BufferedReader kb = new BufferedReader(new
InputStreamReader(System.in));
char keuse = ' ';
do {
System.out.println(" KEUSELYS\n");
System.out.println("Opsie A");
System.out.println("Opsie B");
System.out.println("");
System.out.println("V - VERLAAT");
System.out.println("\nJou keuse? ");
keuse = sc.nextLine().toUpperCase().charAt(0);
// OF
//keuse = kb.readLine().toUpperCase().charAt(0);
switch (keuse) {
case 'A':
// OPTION A CODE HERE
stem.leesDanspaar();
stem.leesVanafLeer();
break;
case 'B':
// OPTION B CODE HERE
stem.vertoonDanspare();
break;
case 'Q':
System.out.println("QUIT");
}
} while (keuse != 'Q');
}
}
Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com
Inligtingstegnologie/V1 32 DBE/November 2013
NSS – Memorandum
BYLAAG K: OPLOSSING SONDER OOP – VRAAG 3: JAVA
// 'n Oplossing vir Vraag 3 - sonder OOP
import java.io.*;
import java.util.Scanner;
public class StemProses_memo
{
int[] dansers = new int[14];
int[] aantalStemme = new int[14];
int[] elim = new int[4];
Scanner sc = new Scanner(System.in);
// OF
// BufferedReader kb = new BufferedReader(new
InputStreamReader(System.in));
StemProses_memo() throws IOException {
menu();
}
public void menu() throws IOException {
char keuse = ' ';
do {
System.out.println(" KEUSELYS\n");
System.out.println("Opsie A");
System.out.println("Opsie B");
System.out.println("");
System.out.println("V - VERLAAT");
System.out.println("\nJou keuse? ");
keuse = sc.nextLine().toUpperCase().charAt(0);
// OF
// keuse = kb.readLine().toUpperCase().charAt(0);
switch (keuse) {
case 'A':
// kodeer opsie A hier
leesDanspare();
leesVanafLeer();
break;
case 'B':
// kodeer opsie B hier
vertoonDanspare();
break;
case 'V':
System.out.println("VERLAAT");
}
} while (keuse != 'V');
}
public void leesDanspare() {
for (int tel = 0; tel < 14; tel++) {
dansers[tel] = tel + 1;
aantalStemme[tel] = 0;
}
}
public void leesVanafLeer() throws IOException
{
Scanner sf = new Scanner(new FileReader("DataV3.txt"));
Scanner sc = new Scanner(System.in);
Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com
Inligtingstegnologie/V1 33 DBE/November 2013
NSS – Memorandum
// OF
// BufferedReader vLeer = new BufferedReader(new FileReader("DataV3.txt"));
// BufferedReader kb = new BufferedReader(new InputStreamReader(System.in));
for (int tel = 0; tel < 4; tel++) {
int nommer = 0;
do
{
System.out.println("Sleutel die nommer van die danspaar (1 - 14)
in. ");
try
{
nommer = Integer.parseInt(sc.nextLine());
// OF nommer = Integer.parseInt(kb.readLine());
}
catch (NumberFormatException e)
{ nommer = 0;
System.out.println("Nie 'n getal nie.");
}
} while (nommer < 1 || nommer > 14);
elim[tel] = nommer;
}
String afvString = String.format("%-10s%-25s%-25s", "Nr.", "Naam",
"Selfoonnommer");
System.out.println(afvString);
int geldigeStemme = 0;
int onGeldigeStemme = 0;
// Benodig indien met BufferedReader werk.
// try {
// String lyn = vLeer.readLine();
// while (lyn != null)
while (sf.hasNext()) {
String lyn = sf.nextLine();
String[] temp1 = lyn.split(";");
String[] temp2 = temp1[1].split("#");
String naam = temp1[0];
int oud = Integer.parseInt(temp2[0]);
String sel = temp2[1];
int stem = Integer.parseInt(temp1[2]);
if (oud >= 18) {
boolean gekry = false;
for (int k = 0; k<4; k++)
if (stem == elim[k])
gekry = true;
if (gekry == false) {
geldigeStemme++;
if(sel.substring(0,3).equals("+27")){
afvString = String.format("%-10s%-25s%-
25s",geldigeStemme,naam,sel);
}
else
{
afvString = String.format("%-10s%-25s%-25s%-
25s",geldigeStemme,naam,sel, "Internasionale stem");
}
System.out.println(afvString);
aantalStemme[stem - 1]++; //tel individuele danspaar stemme
}
else {
aantalStemme[stem - 1] = 0;
onGeldigeStemme++;
}
Kopiereg voorbehou Blaai om asseblief
Downloaded from hlayiso.com
Inligtingstegnologie/V1 34 DBE/November 2013
NSS – Memorandum
}
else {
onGeldigeStemme++;
}
//lyn = vLeer.readLine();
}
/* Benodig indien met BufferedReader werk
} catch (FileNotFoundException e) {
System.out.println(e);
} catch (Exception f) {
System.out.println(f);
}*/
System.out.println();
System.out.println("Ongeldige stemme: " + onGeldigeStemme);
System.out.println("Geldige stemme: " + geldigeStemme);
System.out.println("\n");
}
public void vertoonDanspare(){
System.out.println("\n\nStemme gedurende week 5 ontvang:");
System.out.printf(String.format("%-15s%-10s\n", "Danspaar",
"Stemme"));
String afvoer = "";
for (int tel = 0; tel < 14; tel++) {
if(aantalStemme[tel] > 0)
{
afvoer = afvoer + String.format("%-15s%-10s", dansers[tel],
aantalStemme[tel]) + "\n";
}
else
{
afvoer = afvoer + String.format("%-15s%-10s",
dansers[tel],"(Uitgeskakel)") + "\n";
}
}
System.out.println(afvoer);
System.out.print("Danspaar(e) wat volgende uitgeskakel kan word: ");
int laagste = getLaag();
for (int tel = 0; tel < 14; tel++) {
if (laagste == aantalStemme[tel]) {
System.out.print(dansers[tel] + " ");
}
}
System.out.println("\n");
}
public int getLaag() {
int laag = 500;
for (int tel = 0; tel < 14; tel++) {
if (aantalStemme[tel] < laag && aantalStemme[tel] > 0) {
laag = aantalStemme[tel];
}
}
return laag;
}
public static void main(String[] args) throws IOException {
new StemProses_memo();
}
}
TOTAAL: 120
Kopiereg voorbehou
Study this subject
Recommended for this subject

Memorandum
Information Technology Grade 12 P1 NSC November 2012 Memo

Memorandum
Information Technology Grade 12 P2 NSC November 2012 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

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