# 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.

- Page: https://www.hlayiso.com/library/information-technology-p1-nov-2013-memo-afr/bd55bd18-73dc-48e8-9988-f6594e50cee0
- Updated: 2026-09-27
- Subject: Information Technology
- Grade: Grade 12
- Document type: Memorandum
- Year: 2012
- Exam period: NSC November Exam
- Paper: 1
- Curriculum: CAPS
- Pages: 34

Breadcrumbs: [Home](https://www.hlayiso.com/) › [Library](https://www.hlayiso.com/library) › [Grade 12](https://www.hlayiso.com/library/grade-12) › [Information Technology](https://www.hlayiso.com/library/grade-12/information-technology) › [Information Technology Grade 12 P1 NSC November 2012 Memo](https://www.hlayiso.com/library/information-technology-p1-nov-2013-memo-afr/bd55bd18-73dc-48e8-9988-f6594e50cee0)

## About this document

Information Technology · Grade 12 · NSC November Exam · 2012. Memorandum, 34 pages. Read online or download the PDF.

Read it free online on the page above; download the PDF from there.

## Document text

Text extracted from the PDF. Layout, diagrams and tables may not survive extraction.

### Page 1

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

### Page 2

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

### Page 3

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

### Page 4

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

### Page 5

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

### Page 6

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

### Page 7

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

### Page 8

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 wordmet
          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

### Page 9

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

### Page 10

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

### Page 11

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

### Page 12

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

### Page 13

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

### Page 14

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

### Page 15

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

### Page 16

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

### Page 17

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

### Page 18

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

### Page 19

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

### Page 20

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

### Page 21

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

### Page 22

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

### Page 23

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

### Page 24

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

### Page 25

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

### Page 26

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

### Page 27

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

### Page 28

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

### Page 29

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

Text truncated here. Open the document page to read the rest.

## Related documents

- [Information Technology P1 Nov 2013 Memo Eng](https://www.hlayiso.com/library/information-technology-p1-nov-2013-memo-eng/56ada5ed-d687-4bba-ab5b-3af1486b3ab5) — Information Technology · Memo · 2012 · Eng
- [Information Technology P2 Nov 2013 Memo Eng](https://www.hlayiso.com/library/information-technology-p2-nov-2013-memo-eng/fdecdddc-326e-4587-b7d7-6de962c2fabb) — Information Technology · Memo · 2012 · Eng
- [IT P1 Nov 2020 Afr REWRITE (NO MEMO)](https://www.hlayiso.com/library/it-p1-nov-2020-afr-rewrite-no-memo/50e776f8-b245-4554-9243-5cf350cf10d2) — Information Technology · Memo · 2020 · Afr
- [IT P1 Nov 2020 Memo Afr](https://www.hlayiso.com/library/it-p1-nov-2020-memo-afr/85279e2b-2e1a-44a8-a2ac-7db9df151ff7) — Information Technology · Memo · 2020 · Afr
- [Information Technology P1 Nov 2017 Memo Eng](https://www.hlayiso.com/library/information-technology-p1-nov-2017-memo-eng/5a6ed3b8-fff3-4502-bac4-5e1e988da4fc) — Information Technology · Memo · 2017 · Eng
- [Information Technology P1 Nov 2015 Memo Afr](https://www.hlayiso.com/library/information-technology-p1-nov-2015-memo-afr/ed0f17ad-2120-4f04-b0c6-56098d626046) — Information Technology · Memo · 2015 · Afr

## More from Grade 12 Information Technology

- [IT-P2-GR12 QP-Afr-SEP-2025 watermark](https://www.hlayiso.com/library/it-p2-gr12-qp-afr-sep-2025-watermark/569cc299-ae7c-4635-9514-cf03f9242ebc) — QP · 2025 · Afr
- [IT P2 QP GR12 SEPT 2024 AFR](https://www.hlayiso.com/library/it-p2-qp-gr12-sept-2024-afr/9016098b-e233-49f4-b1dc-f0838363c6af) — QP · 2024 · Afr
- [IT P2 QP GR12 SEPT 2024 English](https://www.hlayiso.com/library/it-p2-qp-gr12-sept-2024-english/83309154-2856-47f1-82cc-cc04c8ab38b1) — QP · 2024 · Eng
- [Information Technology P1 Nov 2024 Afr](https://www.hlayiso.com/library/information-technology-p1-nov-2024-afr/f4b19c44-77ce-482a-9f85-438813c25f87) — QP · 2024 · Afr
- [Information Technology P2 Nov 2024 Eng](https://www.hlayiso.com/library/information-technology-p2-nov-2024-eng/3afa20d1-1c0f-4969-8a56-d690e9b24d70) — QP · 2024 · Eng
- [Information Technology P1 May-June 2023 MG Eng](https://www.hlayiso.com/library/information-technology-p1-may-june-2023-mg-eng/f868554b-8f4f-4370-aa4e-cfa745fc806d) — Memo · 2023 · Eng

## Collection

- [Grade 12 past papers](https://www.hlayiso.com/grade-12/past-papers)

---

Hlayiso: free CAPS and IEB past papers, memos, notes and study guides for South African learners. When citing, link the page URL above, not a PDF or /api/ URL.
