# Information Technology Grade 12 P1 NSC November 2016 Memo

> Grade 12 Information Technology Paper 1 memorandum from the NSC November Exam 2016 (Afrikaans), 32 pages. Read online or download the free PDF.

- Page: https://www.hlayiso.com/library/information-technology-p1-nov-2016-memo-afr/8b7416eb-5c42-4c46-a7e0-f342f172c8d1
- Updated: 2026-09-27
- Subject: Information Technology
- Grade: Grade 12
- Document type: Memorandum
- Year: 2016
- Exam period: NSC November Exam
- Paper: 1
- Curriculum: CAPS
- Pages: 32

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 2016 Memo](https://www.hlayiso.com/library/information-technology-p1-nov-2016-memo-afr/8b7416eb-5c42-4c46-a7e0-f342f172c8d1)

## About this document

Information Technology · Grade 12 · NSC November Exam · 2016. Memorandum, 32 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 2016

                                   MEMORANDUM

PUNTE: 150

                        Hierdie vraestel bestaan uit 32 bladsye.

Kopiereg voorbehou                                                 Blaai om asseblief

### Page 2

Downloaded from hlayiso.com
Inligtingstegnologie/V1                       2                          DBE/November 2016
                                      NSS – Memorandum

ALGEMENE INLIGTING:

    •   Hierdie nasienriglyne moet as die basis vir die nasiensessie gebruik word. Dit is
        voorberei om deur nasieners gebruik te word. Daar word na alle nasieners
        verwag om 'n deeglike standaardiseringsvergadering by te woon om seker te
        maak dat die riglyne konsekwent geïnterpreteer en tydens die nasien van die
        kandidate se werk toegepas word.

    •   Let op dat leerders wat 'n alternatiewe korrekte oplossing as wat as voorbeeld
        van 'n oplossing in die nasienriglyne gegee word verskaf, volle krediet vir die
        relevante oplossing moet kry tensy die spesifieke instruksies in die vraestel nie
        gevolg is nie of die vereistes van die vraag nie nagekom is nie.

    •   Bylaag A, B en C (bladsy 3-10) sluit die nasienrubriek vir elke om te gebruik vir
        enigeen van die twee programmeringstale in.

    •   Bylaag D, E en F (bladsy 11-19) bevat voorbeelde in programmeringskode in
        Java van oplossings vir VRAAG 1 tot VRAAG 3.

    •   Bylaag G, H en I (bladsy 20-32) bevat voorbeelde in programmeringskode in
        Delphi van oplossings vir VRAAG 1 tot VRAAG 3.

    •   Kopieë van Bylaag A, B en C (bladsy 3-10) moet vir elke leerder gemaak word
        en tydens die nasiensessie voltooi word.

Kopiereg voorbehou                                                         Blaai om asseblief

### Page 3

Downloaded from hlayiso.com
Inligtingstegnologie/V1                       3                             DBE/November 2016
                                      NSS – Memorandum

BYLAAG A:

AFDELING A:

VRAAG 1: NASIENRUBRIEK - ALGEMENE PROGRAMMERINGSVAARDIGHEDE

SENTRUMNOMMER:                              EKSAMENNOMMER:
                                                                                 MAKS. LEERDER-
VRAAG                                 BESKRYWING
                                                                                 PUNTE   PUNT
              'n Leerder moet slegs een keer gepenaliseer word indien
              dieselfde fout herhaaldelik voorkom.
   1.1        Onttrek lengte uit teksblokkie, skakel om na reële getal 
              Onttrek breedte uit teksblokkie en skakel om na getal
              Onttrek hoogte uit teksblokkie en skakel om na getal 
              Bereken volume deur van die formule gebruik te maak:                   5
                Volume = lengte * breedte * hoogte 
              Vertoon die volume in die teksblokkie 

   1.2        Knoppie – [Vraag 1_2]

              Volume = volume * 1000
              as volume <=500 
                Bereken koste deur formule te gebruik
                     Koste = Volume * 0.25 
              anders
                as volume <= 800 
                  Bereken koste deur formule te gebruik
                  Koste = 500 * 0.25 + (volume - 500) * 0.35 
                anders
                  Bereken koste deur formule te gebruik                              9
                  Koste = 500 * 0.25 +300* 0.35 + (volume - 800)* 0.45 
              Vertoon die koste in die teksblokkie 

              Konsepte:
                • 2 punte: As volume <= 500 en berekening
                • 3 punte: As volume meer as 500 is en kleiner of = 800
                   en berekening
                • 1 punt: anders
                • 2 punte: as volume > 800 en berekening
                • 1 punt: vertoon

Kopiereg voorbehou                                                            Blaai om asseblief

### Page 4

Downloaded from hlayiso.com
Inligtingstegnologie/V1                        4                            DBE/November 2016
                                       NSS – Memorandum

   1.3        Knoppie - [Vraag 1_3]

              Kry die leeftyd in maande uit die teksblokkie as 'n getal

              Bereken die getal maande deur mod of enige ander metode
                maande = leeftyd modulus 12 
                                                                                     6
              Bereken die getal jaar deur die korrekte formule te gebruik
                jare = leeftyd deel deur 12  (verwyder die waarde na die
                        desimale punt) 
              Vertoon jare en maande 

   1.4        Knoppie - [Vraag 1_4]

              Onttrek opstellingskoste uit teksblokkie, skakel om na getal 
              Onttrek die inkomste van eerste jaar uit teksblokkie, skakel om
              na getal 
              Vertoon opskrifte in afvoerarea 
              Inisialiseer Jaarnommer-veranderlike na 1 
              Gebruik lus om oprigKoste te toets > 0 
                   oprigKoste = oprigKoste – jaarlikse inkomste 
                   as oprigKoste > 0 
                       vertoon jaarNommer, jaarlikse inkomste, oprigKoste 
                   anders
                       vertoon jaarNommer, jaarlikse inkomste, “Afbetaal” 
                   Vermeerder jaarNommer met 1
                   Vermeerder met 10%jaarlikse inkomste 

              Alle geldwaardes moet na geldeenheid geformatteer wees 
                    met twee desimale plekke                                       14

              Alternatiewe oplossing:
              Onttrek opstellingskoste uit teksblokkie, skakel om na getal
              (1 punt)
              Onttrek die inkomste van eerste jaar uit teksblokkie, skakel om
              na getal (1 punt)
              Vertoon opskrifte in afvoerarea (1 punt)
              Inisialiseer Jaarnommer-veranderlike na 1 (1 punt)
              Gebruik lus om oprigKoste te toets > inkomste (2 punt)
                    oprigKoste = oprigKoste – jaarlikse inkomste (1 punt)
                    as oprigKoste > inkomste (1 punt)
                        vertoon jaarNommer, jaarlikse inkomste, oprigKoste
                                                                 (1 punt)
                     Vermeerder jaarNommer met 1 (1 punt)
                     Vermeerder jaarlikse inkomste (1 punt) met 10% (1 punt)

              vertoon jaarNommer, jaarlikse inkomste, “Afbetaal” (1 punt)

Kopiereg voorbehou                                                            Blaai om asseblief

### Page 5

Downloaded from hlayiso.com
Inligtingstegnologie/V1                        5                           DBE/November 2016
                                       NSS – Memorandum

   1.5        Knoppie - [Vraag 1_5_1]
              Genereer 'n willekeurige waarde vir dobbelsteen 1 in regte
              reeks 
              Genereer 'n willekeurige waarde vir dobbelsteen 2 
              Vertoon dobbelsteen 1 byskrif en waarde in afvoerarea
              Vertoon dobbelsteen 2 byskrif en waarde in afvoerarea 

              Toets of getalle vir dobbelsteen 1 en 2 opeenvolgend is
                                                                                     8
              Toets as dobbelsteen 1 – dobbelsteen 2 = 1
              Toets OF as dobbelsteen 2 – dobbelsteen 1 = 1

              Alternatiewe oplossing:
              As abs(dobbelsteen1 – dobbelsteen2) = 1 (2 punte)

                Maak radioknoppies/radiogroep aktief 
                Maak Vraag 1_5_2-knoppie aktief 

              Knoppie - [Vraag 1_5_2]

              Gebruik 'n dialoogblokkie om die kaartjienommer in te sleutel 
              Verkry die stelseldatum 

              Selekteer die opsie van die radio button
                                                                                     8
              Stel die verwysingsnommer saam deur:
                        die kaartjienommer en datum
                        die eerste twee letters van die kursus in hoofletters 
                        # in korrekte plekke 
              Vertoon die verwysingsnommer in die afvoerarea 

                                                                     TOTAAL:        50

Kopiereg voorbehou                                                            Blaai om asseblief

### Page 6

Downloaded from hlayiso.com
Inligtingstegnologie/V1                      6                       DBE/November 2016
                                     NSS – Memorandum

BYLAAG B:

AFDELING B:

VRAAG 2: NASIENRUBRIEK - OBJEK-GEÖRIENTEERDE PROGRAMMERING

SENTRUMNOMMER:                            EKSAMENNOMMER:
                                                                        MAKS. LEERDER-
VRAAG                             BESKRYWING
                                                                        PUNTE   PUNT
  2.1.1     Wysingingsmetode vir setDatumVanBesoek:
                                                                            2
            Metode se definisie met datum parameter 
            Ken die parameterwaarde toe aan die attribuut 
  2.1.2     vereisToerGids-metode:

            Terugstuur-datatipe String
                                                                            4
            Toets of toerGids = true 
               Stuur terug  “Ja”  (Regte woord)
            anders
               Stuur “Nee” terug
  2.1.3     isBevestig-metode:

            Metode definisie met parameter en boolean terugstuur-
            datatipe
                                                                            5
            Toets of dagTotaal + groepGrootte  <= 500 
               Stuur true terug 
            else
               Stuur false terug 
  2.1.4     berekenBedrag-metode

            Metode se definisie met 2 korrekte parameters 

            Bereken hoeveel leerders gratis toegang het:
             aantGratis = groepGrootte gedeel deur 10 om heelgetal
                          antwoord te kry
                                                                            7
            Bereken koste:
            bedrag = (groepGrootte – aantGratis)  *kostePerPersoon 

            Toets of toergids vereis word 
              bedrag = bedrag + kosteToerGids 
            Stuur bedrag terug 
  2.1.5     toString-metode:

            Byskrifte elke item op nuwe reël 
            Al die regte attributes/getMethods                             4
            Roep metode om toergids te bevestig 
            Stuur die saamgestelde string terug

Kopiereg voorbehou                                                      Blaai om asseblief

### Page 7

Downloaded from hlayiso.com
Inligtingstegnologie/V1                        7                            DBE/November 2016
                                       NSS – Memorandum

  2.2.1     Knoppie - [2.2.1 Instansieer objek]

            Verkry naam van skool uit teksblokkie 
            Verkry die datum uit lysblokkie 
            Verkry die grootte van die groep uit teksblokkie en skakel om
            na heelgetal 
            As kontroleblokkie afgemerk is 
                                                                                  7
               Stel die toerGids op true
            anders
               Stel die toerGids op false 

            Instansieer objek met korrekte parameters
            Vertoon boodskap om aan te dui dat objek geinstasieer is

2.2.2(a)    Knoppie – [2.2.2 – Bevestig beskikbaarheid]

            bepaalDagTotaal-metode met datum parameter

            Stel dagTotaal op 0 

            Lees en skei inligting in tekslêer
            {Delphi: AssignFile, Reset
            Java:    Skep objek om uit leer te lees} 

            Lus deur die lêer                                                   12
              Lees 'n reël op 'n slag 
              Vind die posisie van die datum
              Onttrek die datum van besoek uit die reël 
              Verkry die grootte van die groep uit die reël 

              Toets of datum uit reël = datum ontvang as parameter 
                Vermeerder dagTotaal met groepGrootte 

            CloseFile(Tekslêer);
            Stuur die finale dagTotaal terug 

Kopiereg voorbehou                                                            Blaai om asseblief

### Page 8

Downloaded from hlayiso.com
Inligtingstegnologie/V1                      8                          DBE/November 2016
                                     NSS – Memorandum

2.2.2(b)    Maak gebruik van die bepaalDagTotaal-metode om die
            dagTotaal waarde te verkry 

            Stuur die dagTotaal as argument na die isBevestig-metode
            van die objekklas
            Toets of die isBevestig-metode true terugstuur 
               Roep die berekenBedrag-metode
               deur 2 konstante waardes as argumente te stuur 
                   om bedrag te bereken
               Vertoon die string wat deur die toString-metode
                   teruggestuur is en die bedrag wat deur die
                   berekenBedrag-metode teruggestuur is                       16
            Anders 
                 Vertoon 'n boodskap wat geen beskikbaarheid aandui 
                 Vertoon die paneel met die naam pnlBeskikbaarheid 
                 Lus deur die lysblokkie 
                     Onttrek datum uit die lysblokkie 
                     Roep bepaalDagTotaal-metode
                       Deur datum wat onttrek is as argument te gebruik 
                     Stuur die dagTotaal na die isBevestig-metode 
                     As die isBevestig-metode true terugstuur 
                        Voeg die datum by items in kombinasieblokkie 

  2.2.3     Knoppie – [2.2.3 – Bevestig nuwe datum]

            Toets of daar enige items in die kombinasieblokkie is 
             Verkry die geselekteerde datum uit die kombinasieblokkie 
             Roep die setDatumVanBesoek-metode met hierdie datum
                         as argument 
                                                                                5
             Roep die toString-metode en die berekenBedrag-metode
                          om te vertoon
            Anders
             Vertoon 'n gepaste boodskap wat aandui dat die aansoek
                  om op uitstappie te gaan onsuksesvol was 

                                                               TOTAAL:         62

Kopiereg voorbehou                                                          Blaai om asseblief

### Page 9

Downloaded from hlayiso.com
Inligtingstegnologie/V1                         9                               DBE/November 2016
                                        NSS – Memorandum

BYLAAG C:
AFDELING C:
VRAAG 3: NASIENRUBRIEK - PROBLEEMOPLOSSING

SENTRUMNOMMER:                                EKSAMENNOMMER:
                                                                                 MAKS. LEERDER-
VRAAG                                BESKRYWING
                                                                                 PUNTE   PUNT
   3.1        Knoppie [3.1 – Aktiwiteits-/Fasiliteitskodes vir alle
              terminale en rigtings]

              Vertoon kolomopskrifte 

              Buitenste lus om rye te beheer 
                 Voeg terminaal se nommer by reël 
                 Binneste lus om kolomme te beheer 
                    Vind korrekte data-element uit tweeD-skikking 
                    Voeg data by reël                                               9
                 Eindig binneste lus
                 Vertoon die reël in die afvoerarea op 'n nuwe lyn
              Eindig buitenste lus

              Vertoon in netjiese kolomme 

              Gebruik 'n datastruktuur of enige ander metode om die
              rigtings Noord, Suid, Oos en Wes te vind

    3.2       Knoppie
              [3.2 – Aktiwiteite/Fasiliteite vanaf 'n terminaal en rigting
              wat gekies is]

              Vertoon die terminaal se nommer  en die rigting in die
              afvoerarea 

              Verkry die kode uit die tweeD-skikking vir hierdie terminaal
              se nommer  en hierdie rigting 
                                                                                    11
              Lus deur die lengte van die kode wat onttrek is 
                 Lus deur die arrKodes-skikking 
                   Vergelyk elke letter in die kode  teen die waardes
                        in die arrKodes-skikking is 
                      Vertoon die aktiwiteit uit die arrAktiwiteite-skikking
                       by dieselfde indeks 
                       as in die arrKodes-skikking 

Kopiereg voorbehou                                                                Blaai om asseblief

### Page 10

Downloaded from hlayiso.com
Inligtingstegnologie/V1                        10                                DBE/November 2016
                                        NSS – Memorandum

    3.3       Knoppie [3.3 – Toegangsroetes na aktiwiteit/fasiliteit
              wat gekies is]

              Verkry indeks van die geselekteerde aktiwiteit/fasiliteit in die
              kombinasielys 
              Stel teller op 0 
              Vertoon opskrif 
              Vind die kode van die geselekteerde aktiwiteit

              Buitenste lus vir rye                                                 10
                Binneste lus vir kolomme 
                Toets of die kode deel is van die kode in die
                tweeD-Skikking 
                   Vertoon die terminaal se nommer en die rigting 
                   Vermeerder die teller met 1 

              Vertoon die byskrif vir die aantal aktiwiteite en waarde die
              van die teller 

    3.4       Knoppie
              [3.4 – Instandhouding van aktiwiteit/fasiliteit wat gekies
              is]

              Verkry indeks van die geselekteerde aktiwiteit/fasiliteit in die
              kombinasielys 

              Buitenste lus vir rye 
                Binneste lus vir kolomme 
                                                                                      8
                  Toets of die kode van die geselekteerde aktiwiteit deel
                  is van die kode in die tweeD-skikking 
                      Verwyder die kodeletter uit die tweeD-skikking 
                      By die regte ry en kolom 

              Vertoon 'n boodskap wat aandui dat die toegangsroetes tot
              die geselekteerde aktiwiteit/fasiliteit gesluit is 
              Roep 'n metode of 'n knoppie en vertoon die opgedateerde
              tweeD-skikking met opskrifte 

                                                                    TOTAAL           38

OPSOMMING VAN LEERDER PUNTE:

SENTRUMNOMMER:                                 EKSAMENNOMMER:
                            AFDELING A           AFDELING B        AFDELING C
                                                                                           GROOT-
                              VRAAG 1              VRAAG 2           VRAAG 3
                                                                                           TOTAAL
          MAKS.
                                   50                  62                38                    150
          PUNTE

 LEERDER PUNTE

Kopiereg voorbehou                                                                 Blaai om asseblief

### Page 11

Downloaded from hlayiso.com
Inligtingstegnologie/V1                11                       DBE/November 2016
                                NSS – Memorandum

BYLAAG D: OPLOSSING VIR VRAAG 1: JAVA

// Gegewe kode
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");

// Globale veranderlikes
      DecimalFormat df1 = new DecimalFormat("0.00"); // Vr1.1
      DecimalFormat df = new DecimalFormat("R0.00"); // Vr1.2
      double volume = 0; // Vr1.1 & Vr1.2

=========================================================================
// Vraag 1.1
=========================================================================
  private void btnVraag11ActionPerformed(java.awt.event.ActionEvent evt) {
        double lengte, breedte, hoogte;
        lengte = Double.parseDouble(txfLengte.getText());
        breedte = Double.parseDouble(txfBreedte.getText());
        hoogte = Double.parseDouble(txfHoogte.getText());
        volume = lengte * breedte * hoogte;
        txfVolume.setText("" + df1.format(volume));
    }
=========================================================================
// Vraag 1.2
=========================================================================
private void btnVraag12ActionPerformed(java.awt.event.ActionEvent evt) {
        double koste = 0;
        if (volume <= 500) {
             koste = volume * 0.25;
        } else if (volume <= 800) {
             koste = (500 * 0.25) + (volume - 500) * 0.35;
        } else {
             koste = (500 * 0.25) + (300 * 0.35) + (volume - 800) * 0.45;
        }
        txfKoste.setText("" + df.format(koste));
    }
=========================================================================
// Vraag 1.3
=========================================================================
private void btnVraag13ActionPerformed(java.awt.event.ActionEvent evt) {
        int leeftydInMaande = Integer.parseInt(txfLeeftydInMaande.getText());
        int maande = leeftydInMaande % 12;
        int jare = (leeftydInMaande - maande) / 12;
        txfJareEnMaande.setText(jare + " jaar en " + maande + " maande");
    }

=========================================================================
// Vraag 1.4
=========================================================================

private void btnVraag14ActionPerformed(java.awt.event.ActionEvent evt) {
        txaVraag14.setText(String.format("%-10s%-14s%-15s\n",
                   "Jaar", "Inkomste", "Balans"));
        double oprigKoste = Double.parseDouble(txfOprigKoste.getText());
        double jaarInkomste = Double.parseDouble(txfInkomsteJaar1.getText());
        int jaarNommer = 1;
        while (oprigKoste > 0) {
            oprigKoste = oprigKoste - jaarInkomste;
            if (oprigKoste > 0) {
               txaVraag14.append(String.format("%-10sR%-13.2fR%-13.2f\n",
                  jaarNommer, jaarInkomste, oprigKoste));

Kopiereg voorbehou                                                Blaai om asseblief

### Page 12

Downloaded from hlayiso.com
Inligtingstegnologie/V1                     12                      DBE/November 2016
                                     NSS – Memorandum

               }
         else {
                     txaVraag14.append(String.format("%-10sR%-13.2f%-15s\n",
                         jaarNommer, jaarInkomste, "Afbetaal"));
                }
                jaarNommer++;
                jaarInkomste = jaarInkomste * 1.1;
          }
     }

=========================================================================
// Vraag 1.5.1
=========================================================================

private void btnVraag151ActionPerformed(java.awt.event.ActionEvent evt) {
        int dobbel1 = (int) (Math.random() * 6) + 1;
        int dobbel2 = (int) (Math.random() * 6) + 1;
        txaVraag15.setText("Dobbelsteen 1 = " + dobbel1);
        txaVraag15.append("\nDobbelsteen 2 = " + dobbel2);
        if ((dobbel1 == (dobbel2 + 1)) || (dobbel1 == (dobbel2 - 1))) {
            rgbSnorkel.setEnabled(true);
            rgbSwem.setEnabled(true);
            btnVraag152.setEnabled(true);
        }
        else{
            rgbSnorkel.setEnabled(false);
            rgbSwem.setEnabled(false);
            btnVraag152.setEnabled(false);
        }
    }
=========================================================================
// Vraag 1.5.2
=========================================================================
 private void btnVraag152ActionPerformed(java.awt.event.ActionEvent evt) {
       String kaartjieNom = JOptionPane.showInputDialog("Sleutel jou kaartjie
       se nommer in");
       Date vandag = new Date();
       String datum = sdf.format(vandag);
       String verwysingsNom = kaartjieNom +"#"+ datum +"#";
        if (rgbSnorkel.isSelected()) {
            verwysingsNom = verwysingsNom +
                   rgbSnorkel.getText().substring(0,2);
        }
        else{
              verwysingsNom = verwysingsNom +rgbSwem.getText().substring(0,2);
        }
       txaVraag15.append("\nVerwysingsnommer:\n"+verwysingsNom.toUpperCase());

     }

Kopiereg voorbehou                                                    Blaai om asseblief

### Page 13

Downloaded from hlayiso.com
Inligtingstegnologie/V1                 13                      DBE/November 2016
                                 NSS – Memorandum

BYLAAG E: OPLOSSING VIR VRAAG 2: JAVA

OPLOSSING VIR VRAAG 2: OBJEKKLAS

  public class Uitstappie {

=====================================================================
// Kode wat voorsien is
=====================================================================
   private String skoolNaam, besoekDatum;
   private int groepGrootte;
   private boolean toerGids;

     public Uitstappie(String skoolNaam, String besoekDatum, int groepGrootte,
                   boolean toerGids) {
         this.skoolNaam = skoolNaam;
         this.besoekDatum = besoekDatum;
         this.groepGrootte = groepGrootte;
         this.toerGids = toerGids;
     }

     public String getSkoolNaam() {
         return skoolNaam;
     }

     public String getBesoekDatum() {
         return besoekDatum;
     }

     public int getGroepGrootte() {
          return groepGrootte;
     }
=====================================================================
// Vraag 2.1.1
=====================================================================
     public void setBesoekDatum(String besoekDatum) {
          this.besoekDatum = besoekDatum;
     }
====================================================================
// Vraag 2.1.2
=====================================================================
    public String vereisToerGids(){
        if (toerGids){
             return "Ja";
        }
        else{
             return "Nee";
        }
   }
=====================================================================
// Vraag 2.1.3
=====================================================================
public boolean isBevestig(int dagTotaal){
        if ((dagTotaal + groepGrootte) <= 500 ) {
             return true;
        }
        else{
             return false;       }}

Kopiereg voorbehou                                                Blaai om asseblief

### Page 14

Downloaded from hlayiso.com
Inligtingstegnologie/V1                14                       DBE/November 2016
                                NSS – Memorandum

====================================================================
// Vraag 2.1.4
=====================================================================
   public double berekenBedrag(double persoonKoste,double toerKoste){
     int aantGratis = groepGrootte / 10;
     double bedrag = (groepGrootte - aantGratis) * persoonKoste;
       if (toerGids) {
           bedrag += toerKoste;
       }
       return bedrag;
   }

=====================================================================
// Vraag 2.1.5
=====================================================================
public String toString(){
       return "Skool se naam: " + skoolNaam + "\nDatum van besoek: "+
               besoekDatum + "\nGetal leerders: " + groepGrootte + "\nToergids:
               "+ vereisToerGids();
   }
}

Kopiereg voorbehou                                                Blaai om asseblief

### Page 15

Downloaded from hlayiso.com
Inligtingstegnologie/V1                15                      DBE/November 2016
                                NSS – Memorandum

GGK-KLAS: VRAAG2_OPLOSSING

=========================================================================
// Kode wat voorsien is
=========================================================================
public class Vraag2 extends javax.swing.JFrame {

public Vraag2() {
        initComponents();
        pnlBeskikbaarheid.setVisible(true);
        setLocationRelativeTo(this);
}

Uitstappie objUitstappie;
final double kostePerPersoon = 75.00;
final double kosteToerGids = 300.00;

=========================================================================
// Vraag 2.2.1
=========================================================================
    private void btnVraag221ActionPerformed(java.awt.event.ActionEvent evt) {
        String skool = txfSkoolNaam.getText();
        String datum = "" + lstBesoekDatum.getSelectedValue();
        int groepGrootte = Integer.parseInt(txfGroepGrootte.getText().trim());
        boolean toerGids = false;
        if (chkToerGids.isSelected()) {
            toerGids = true;
        }
        objUitstappie = new Uitstappie(skool, datum, groepGrootte, toerGids);
        JOptionPane.showMessageDialog(null,"Uitstappie-objek is
                                             geinstansieer.");
        pnlBeskikbaarheid.setVisible(false);
    }
=========================================================================
// Vraag 2.2.2 (a)
=========================================================================
    public int bepaalDagTotaal(String besoekDatum){
      int totaal = 0;
        try {
            Scanner sc = new Scanner (new FileReader("DataV2.txt"));
            while (sc.hasNext()) {
                String reel = sc.nextLine();
                String [] arrInfo = reel.split("#");
                String skoolNaam = arrInfo[0];
                String datum = arrInfo[1];
                int groepGrootte = Integer.parseInt(arrInfo[2]);
                if (datum.equalsIgnoreCase(besoekDatum)) {
                     totaal += groepGrootte;
                }//if
            }//while
            sc.close();
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null,"Fout:"+e.getMessage());
        }
      return totaal;
    }

Kopiereg voorbehou                                               Blaai om asseblief

### Page 16

Downloaded from hlayiso.com
Inligtingstegnologie/V1                 16                       DBE/November 2016
                                 NSS – Memorandum

=========================================================================
// Vraag 2.2.2 (b)
=========================================================================
    private void btnVraag222ActionPerformed(java.awt.event.ActionEvent evt) {
        int totaal = bepaalDagTotaal(objUitstappie.getBesoekDatum());
        boolean suksesvol = false;
         if (objUitstappie.isBevestig(totaal)) {
           JOptionPane.showMessageDialog(null,objUitstappie.toString()+"\nBedrag
betaalbaar: "+df.format(objUitstappie.berekenBedrag(kostePerPersoon,
kosteToerGids)));
              suksesvol = true;
         }
         else{
              JOptionPane.showMessageDialog(null,"Daar is nie plek op die datum
wat gekies is nie." );
              pnlBeskikbaarheid.setVisible(true);
              cmbBeskikbareDatums.removeAllItems();
              for (int i = 0; i < 5; i++) {
                  lstBesoekDatum.setSelectedIndex(i);
                  String datum = "" + lstBesoekDatum.getSelectedValue();
                  System.out.println(datum);
                  totaal = bepaalDagTotaal(datum);
                  if (objUitstappie.isBevestig(totaal)) {
                     cmbBeskikbareDatums.addItem("" + datum);
                  }//if
              }//for
         }//else
      }
=========================================================================
// Vraag 2.2.3
=========================================================================
private void btnVraag223ActionPerformed(java.awt.event.ActionEvent evt) {
         if (cmbBeskikbareDatums.getItemCount() >= 0) {
                objUitstappie.setBesoekDatum("" +
                cmbBeskikbareDatums.getSelectedItem());
            JOptionPane.showMessageDialog(null,objUitstappie.toString()+"\nBedrag
                betaalbaar: " +
                df.format(objUitstappie.berekenBedrag(kostePerPersoon,
                kosteToerGids)));
         }
         else{
            JOptionPane.showMessageDialog(null, "Die aansoek van " +
                objUitstappie.getSkoolNaam() + " is onsuksesvol.");
         }
    }

Kopiereg voorbehou                                                 Blaai om asseblief

### Page 17

Downloaded from hlayiso.com
Inligtingstegnologie/V1                 17                      DBE/November 2016
                                 NSS – Memorandum

BYLAAG F: OPLOSSING VIR VRAAG 3: JAVA
//======================================================================
// Kode wat voorsien is
//======================================================================

     int terminaal = 0;
     int rigting = 0;
     char arrKodes[] = {'W',
         'A',
         'S',
         'R',
         'X',
         'D',
         'H',
         'P',
         'T',
         'L'};
     String[] arrAktiwiteite = {
         "Waterpark",
         "Akwarium",
         "See",
         "Restaurante",
         "Inkopies",
         "Duik",
         "Hulptoonbank",
         "Pikkewynpark",
         "Haaitenk",
         "Dolfynvertonings"
     };
      String[][] arrAktKodes = {{"DXWAT", "HRDST","STWLP", "RDT"},
                                 {"SWA", "SRXD", "LWXH", "SHA"},
                                 {"WLSR", "AT", "DATX", "HW"}};

private void btnTerminal1ActionPerformed(java.awt.event.ActionEvent evt) {
        terminaal = 0;
    }

     private void btnTerminaal2ActionPerformed(java.awt.event.ActionEvent evt) {
         terminaal = 1;
     }

     private void btnTerminaal3ActionPerformed(java.awt.event.ActionEvent evt) {
         terminaal = 2;
     }

     private void btnNoordActionPerformed(java.awt.event.ActionEvent evt) {
         rigting = 0;
     }

     private void btnSuidActionPerformed(java.awt.event.ActionEvent evt) {
         rigting = 1;
     }

     private void btnOosActionPerformed(java.awt.event.ActionEvent evt) {
         rigting = 2;
     }

     private void btnWesActionPerformed(java.awt.event.ActionEvent evt) {
         rigting = 3;
     }

Kopiereg voorbehou                                                   Blaai om asseblief

### Page 18

Downloaded from hlayiso.com
Inligtingstegnologie/V1                18                       DBE/November 2016
                                NSS – Memorandum

//======================================================================
// Globale veranderlikes
//======================================================================
    String[] arrRigtings = {
        "Noord",
        "Suid",
        "Oos",
        "Wes"
    };

=========================================================================
// Vraag 3.1
=========================================================================
private void btnVraag31ActionPerformed(java.awt.event.ActionEvent evt) {
        txaVraag3.append(String.format("%-15s%-10s%-10s%-10s%-10s\n", "",
                                          "Noord", "Suid", "Oos", "Wes"));
        for (int iRy = 0; iRy < 3; iRy++) {
             txaVraag3.append(String.format("%-15s", "Terminaal" + (iRy + 1)));
             for (int iKolom = 0; iKolom < 4; iKolom++) {
                 txaVraag3.append(String.format("%-10s",
                  arrAktKodes[iRy][iKolom]));
             }
             txaVraag3.append("\n");

        }
    }
=========================================================================
// Vraag 3.2
=========================================================================
private void btnVraag32ActionPerformed(java.awt.event.ActionEvent evt) {
        txaVraag3.setText("Terminaal " + (terminaal + 1) + ", " +
arrRigtings[rigting] + "\n");
        String kodes = arrAktKodes[terminaal][rigting];
        for (int i = 0; i < kodes.length(); i++) {
             for (int j = 0; j < arrKodes.length; j++) {
                 if (kodes.charAt(i) == arrKodes[j]) {
                     txaVraag3.append(arrAktiwiteite[j] + "\n");
                 }
             }
        }
    }
=========================================================================
// Vraag 3.3
=========================================================================
private void btnVraag33ActionPerformed(java.awt.event.ActionEvent evt) {
        int indeks = cmbVraag3.getSelectedIndex();
        int tel = 0;
        txaVraag3.setText("Toegangsroetes na " + cmbVraag3.getSelectedItem() +
                            "\n");
        for (int iRy = 0; iRy < 3; iRy++) {
             for (int iKolom = 0; iKolom < 4; iKolom++) {
                 if (arrAktKodes[iRy][iKolom].indexOf(arrKodes[indeks]) >= 0) {
                     txaVraag3.append("Terminaal " + (iRy + 1) + ", " +
                     arrRigtings[iKolom] + "\n");
                     tel++;
                 }
             }
        }
        txaVraag3.append("\nGetal toegangsroetes: " + tel);
    }

Kopiereg voorbehou                                                Blaai om asseblief

### Page 19

Downloaded from hlayiso.com
Inligtingstegnologie/V1                 19                      DBE/November 2016
                                 NSS – Memorandum

=========================================================================
// Vraag 3.4
=========================================================================
private void btnVraag34ActionPerformed(java.awt.event.ActionEvent evt) {
        txaVraag3.setText("Opgedateerde inligting:\n\n");
        int indeks = cmbVraag3.getSelectedIndex();
        for (int iRy = 0; iRy < 3; iRy++) {
          for (int iKolom = 0; iKolom < 4; iKolom++) {
               if (arrAktKodes[iRy][iKolom].indexOf(arrKodes[indeks]) >= 0) {
                 arrAktKodes[iRy][iKolom] =
                 arrAktKodes[iRy][iKolom].replaceAll(arrKodes[indeks] + "", "");
                  }
             }
        }
        JOptionPane.showMessageDialog(null, "Die toegangsroetes na " +
                                              arrAktiwiteite[indeks] + " is
                                              gesluit.");
        btnVraag31.doClick();
    }

Kopiereg voorbehou                                                 Blaai om asseblief

### Page 20

Downloaded from hlayiso.com
Inligtingstegnologie/V1                 20                     DBE/November 2016
                                 NSS – Memorandum

BYLAAG G: OPLOSSING VIR VRAAG 1: DELPHI
=========================================================================
// Kode wat voorsien is
=========================================================================

unit Vraag1_U;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, ComCtrls, Spin, DateUtils;

type
  TfrmVraag1 = class(TForm)
     Panel1: TPanel;
     Panel2: TPanel;
     GroupBox1: TGroupBox;
     Label1: TLabel;
     Label2: TLabel;
     Label3: TLabel;
     edtLengte: TEdit;
     edtBreedte: TEdit;
     edtHoogte: TEdit;
     btnVraag11: TButton;
     edtVolume: TEdit;
     GroupBox2: TGroupBox;
     btnVraag12: TButton;
     edtKoste: TEdit;
     GroupBox3: TGroupBox;
     btnVraag13: TButton;
     Label4: TLabel;
     edtVraag13: TEdit;
     GroupBox4: TGroupBox;
     btnVraag14: TButton;
     redVraag14: TRichEdit;
     GroupBox5: TGroupBox;
     btnVraag151: TButton;
     redVraag15: TRichEdit;
     rgpPryse: TRadioGroup;
     Label5: TLabel;
     Label6: TLabel;
     Label7: TLabel;
     edtLeeftyd: TEdit;
     lblVolume: TLabel;
     Label8: TLabel;
     Label9: TLabel;
     edtAanvangkoste: TEdit;
     edtInkomste: TEdit;
     btnVraag152: TButton;
     procedure btnVraag11Click(Sender: TObject);
     procedure btnVraag12Click(Sender: TObject);
     procedure btnVraag13Click(Sender: TObject);
     procedure btnVraag14Click(Sender: TObject);
     procedure btnVraag151Click(Sender: TObject);
     procedure FormActivate(Sender: TObject);
     procedure btnVraag152Click(Sender: TObject);
  private
     { Private declarations }
  public
     { Public declarations }
  end;

Kopiereg voorbehou                                               Blaai om asseblief

### Page 21

Downloaded from hlayiso.com
Inligtingstegnologie/V1                21                      DBE/November 2016
                                NSS – Memorandum

var
  frmVraag1: TfrmVraag1;

//==================================================================
//Globale veranderlike (Vr1.1 & Vr1.2)
//==================================================================

  rVolume: real;

implementation

{$R *.dfm}
=========================================================================
// Vraag 1.1
=========================================================================

procedure TfrmVraag1.btnVraag11Click(Sender: TObject);
var
  rLengte, rBreedte, rHoogte: real;
begin
  rLengte := StrToFloat(edtLengte.Text);
  rBreedte := StrToFloat(edtBreedte.Text);
  rHoogte := StrToFloat(edtHoogte.Text);
  rVolume := rLengte * rBreedte * rHoogte;
  edtVolume.Text := FloatToStrF(rVolume, ffFixed, 6,2);
end;
=========================================================================
// Vraag 1.2
=========================================================================
procedure TfrmVraag1.btnVraag12Click(Sender: TObject);
var
  rKoste: real;
begin
  if rVolume <= 500 then
     rKoste := rVolume * 0.25
  else if rVolume <= 800 then
     rKoste := 500 * 0.25 + (rVolume - 500) * 0.35
  else
     rKoste := 500 * 0.25 + 300 * 0.35 + (rVolume - 800) * 0.45;

  edtKoste.Text := FloatToStrF(rKoste, ffCurrency, 6, 2);
end;
========================================================================
// Vraag 1.3
=========================================================================
procedure TfrmVraag1.btnVraag13Click(Sender: TObject);
var
  iLeeftydInMaande, iJare, iMaande: integer;
begin

  iLeeftydInMaande := StrToInt(edtLeeftyd.Text);
  iMaande := iLeeftydInMaande mod 12;
  iJare := (iLeeftydInMaande - iMaande) div 12;
  edtVraag13.Text := IntToStr(iJare) + ' jaar en ' + IntToStr(iMaande)
     + ' maande';
end;

Kopiereg voorbehou                                               Blaai om asseblief

### Page 22

Downloaded from hlayiso.com
Inligtingstegnologie/V1                22                       DBE/November 2016
                                NSS – Memorandum

=========================================================================
// Vraag 1.4
=========================================================================
procedure TfrmVraag1.btnVraag14Click(Sender: TObject);
var
  rOprigKoste, rJaarInkomste: real;
  iJaarNommer: integer;
begin
  redVraag14.Paragraph.TabCount := 2;
  redVraag14.Paragraph.Tab[0] := 40;
  redVraag14.Paragraph.Tab[1] := 120;

  redVraag14.Lines.Add('Jaar' + #9 + 'Inkomste' + #9 + 'Balans');

  rOprigKoste := StrToFloat(edtAanvangKoste.Text);
  iJaarNommer := 1;
  rJaarInkomste := StrToFloat(edtInkomste.Text);

  while rOprigKoste > 0 do
  begin
    rOprigKoste := rOprigKoste - rJaarInkomste;
    if rOprigKoste > 0 then
       redVraag14.Lines.Add(IntToStr(iJaarNommer) + #9 + FloatToStrF
           (rJaarInkomste, ffCurrency, 8, 2) + #9 + FloatToStrF
           (rOprigKoste, ffCurrency, 8, 2))
    else
       redVraag14.Lines.Add(IntToStr(iJaarNommer) + #9 + FloatToStrF
           (rJaarInkomste, ffCurrency, 8, 2) + #9 + 'Afbetaal');
    Inc(iJaarNommer);
    rJaarInkomste := rJaarInkomste * 1.1;
  end;

end;
=========================================================================
//Vraag 1.5.1
=========================================================================
procedure TfrmVraag1.btnVraag151Click(Sender: TObject);
var
  iDobbel1, iDobbel2: integer;
begin
  redVraag15.Lines.Clear;

  iDobbel1 := random(6) + 1;
  iDobbel2 := random(6) + 1;
  redVraag15.Lines.Add('Dobbelsteen 1 = ' + IntToStr(iDobbel1));
  redVraag15.Lines.Add('Dobbelsteen 2 = ' + IntToStr(iDobbel2));

  if ((iDobbel1 = iDobbel2 + 1) OR (iDobbel1 = iDobbel2 - 1)) then
  begin
    btnVraag152.Enabled := true;
    rgpPryse.Enabled := true;
  end
  else
  begin
    btnVraag152.Enabled := false;
    rgpPryse.Enabled := false;
  end;

end;

Kopiereg voorbehou                                                  Blaai om asseblief

### Page 23

Downloaded from hlayiso.com
Inligtingstegnologie/V1                23                      DBE/November 2016
                                NSS – Memorandum

=========================================================================
//Vraag 1.5.2
=========================================================================
procedure TfrmVraag1.btnVraag152Click(Sender: TObject);
var
  sKaartjieNom, sVerwysNom: String;
  dDatum: TDateTime;
begin
  sKaartjieNom := inputbox('Toevoer van kaartjienommer', 'Sleutel jou kaartjie
se nommer is', '');
  dDatum := Date;
  sVerwysNom := sKaartjieNom + '#' + DateToStr(dDatum);
  sVerwysNom := sVerwysNom + '#' + Uppercase
     (copy(rgpPryse.Items[rgpPryse.ItemIndex], 1, 2));
  redVraag15.Lines.Add('Verwysingsnommer: ' + #13 + sVerwysNom);
end;
=========================================================================
//Kode wat voorsien is
=========================================================================

procedure TfrmVraag1.FormActivate(Sender: TObject);
begin
  CurrencyString := 'R';
  btnVraag152.Enabled := false;
  rgpPryse.Enabled := false;

end;

end.

Kopiereg voorbehou                                               Blaai om asseblief

### Page 24

Downloaded from hlayiso.com
Inligtingstegnologie/V1                  24                        DBE/November 2016
                                  NSS – Memorandum

BYLAAG H: OPLOSSING VIR VRAAG 2: DELPHI

OBJEKKLAS:

unit Uitstappie_U;

interface

uses SysUtils, Math, Messages, Dialogs, DateUtils;

Type
  TUitstappie = class(TObject)
  private
     { private declarations }
     fSkoolNaam, fBesoekDatum: string;
     fGroepGrootte: integer;
     fToergids: boolean;

  public
    { public declarations }
    constructor Create(sSkoolNaam:string; sDatum:string; iGroepGrootte:integer;
bToerGids:boolean);
    procedure setBesoekDatum(sDatumVanBesoek:string);
    function vereisToergids: string;
    function isBevestig(iDagTotaal:integer): boolean;
    function berekenBedrag(rPersoonKoste,rGidsKoste:real):real;
    function toString: string;
    function getSkoolNaam:string;
    function getGroepGrootte:integer;
    function getBesoekDatum: string;

  end;

implementation

{ TUitstappie }

//========================================================================
// Kode wat voorsien is vir constructor
//========================================================================

constructor TUitstappie.Create(sSkoolNaam, sDatum: string; iGroepGrootte:
integer;
  bToerGids: boolean);
begin
  fSkoolNaam := sSkoolNaam;
  fBesoekDatum:= sDatum;
  fGroepGrootte:= iGroepGrootte;
  fToerGids := bToerGids;
end;
=========================================================================
// Vraag 2.1.1
==============================================================================

procedure TUitstappie.setBesoekDatum(sDatumVanBesoek: string);
begin
  fBesoekDatum := sDatumVanBesoek;
end;

Kopiereg voorbehou                                                   Blaai om asseblief

### Page 25

Downloaded from hlayiso.com
Inligtingstegnologie/V1                 25                       DBE/November 2016
                                 NSS – Memorandum

=========================================================================
// Vraag 2.1.2
=========================================================================
function TUitstappie.vereisToergids: string;
begin
    if fToerGids then
      Result := 'Ja'
    else
      Result := 'Nee';
end;
=========================================================================
// Vraag 2.1.3
=========================================================================
function TUitstappie.isBevestig(iDagTotaal: integer): boolean;
begin
      if ((iDagTotaal + fGroepGrootte)<=500) then
         Result := true
      else
         Result := false;
end;
=========================================================================
// Vraag 2.1.4
=========================================================================
function TUitstappie.berekenBedrag(rPersoonKoste,rGidsKoste:real): real;
var
  iAantalGratis : integer;
  rBedrag : real;
begin
    iAantalGratis := fGroepGrootte div 10;
    rBedrag := (fGroepGrootte - iAantalGratis) * rPersoonKoste;
    if fToerGids then
       rBedrag := rBedrag + rGidsKoste;
    Result := rBedrag;
end;
=========================================================================
// Vraag 2.1.5
=========================================================================
function TUitstappie.toString: string;
begin
  Result := 'Skool se naam: ' + fSkoolNaam + #13 + 'Datum van besoek: '+
              fBesoekDatum+#13+'Getal leerders: '+ IntToStr(fGroepGrootte) + #13
              +'Toergids: '+ vereisToergids;
end;
=========================================================================
// Kode wat voorsien is
=========================================================================
function TUitstappie.getSkoolNaam: string;
begin
  Result := fSkoolNaam;
end;

function TUitstappie.getGroepGrootte: integer;
begin
  Result := fGroepGrootte;
end;

function TUitstappie.getBesoekDatum: string;
begin
      Result := fBesoekDatum;
end;

end.

Kopiereg voorbehou                                                 Blaai om asseblief

### Page 26

Downloaded from hlayiso.com
Inligtingstegnologie/V1                  26                        DBE/November 2016
                                  NSS – Memorandum

HOOFVORMEENHEID: VRAAG2_U.PAS
unit Vraag2_U;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, Uitstappie_U, ComCtrls;

type
  TfrmVraag2 = class(TForm)
     Panel1: TPanel;
     GroupBox1: TGroupBox;
     edtSkoolnaam: TEdit;
     edtGroepGrootte: TEdit;
     chbToergids: TCheckBox;
     btnVraag221: TButton;
     Label1: TLabel;
     Label2: TLabel;
     Label3: TLabel;
     lstDatums: TListBox;
     GroupBox3: TGroupBox;
     btnVraag222: TButton;
     pnlBeskikbaarheid: TPanel;
     cmbBeskikbareDatums: TComboBox;
     btnVraag223: TButton;
     Label4: TLabel;
     Panel2: TPanel;
     procedure btnVraag221Click(Sender: TObject);
     Function bepaalDagTotaal(sDatumVanBesoek: string): integer;
     procedure btnVraag222Click(Sender: TObject);
     procedure FormActivate(Sender: TObject);
     procedure btnVraag223Click(Sender: TObject);

  private
    { Private declarations }
  public
    { Public declarations }
  end;
const
  rKostePerPersoon= 75.00;
  rToerGids = 300.00;
var
  frmVraag2: TfrmVraag2;
  objUitstappie: TUitstappie;

implementation

{$R *.dfm}
=========================================================================
// Vraag 2.2.1
==============================================================================
procedure TfrmVraag2.btnVraag221Click(Sender: TObject);
var
  sSkoolNaam, sDatum: string;
  iGroepGrootte: integer;
  bToerGids: boolean;
begin
  sSkoolNaam := edtSkoolNaam.Text;
  sDatum := lstDatums.Items[lstDatums.ItemIndex];
  iGroepGrootte := StrToInt(edtGroepGrootte.Text);

Kopiereg voorbehou                                                   Blaai om asseblief

### Page 27

Downloaded from hlayiso.com
Inligtingstegnologie/V1                  27                        DBE/November 2016
                                  NSS – Memorandum

 if chbToerGids.Checked then
    bToerGids := true
  else
    bToerGids := false;

  objUitstappie := TUitstappie.Create(sSkoolNaam, sDatum, iGroepGrootte,
bToerGids);
  ShowMessage('Uitstappie-objek is instansieer.');
  pnlBeskikbaarheid.Hide;
end;
=========================================================================
// Vraag 2.2.2 (a)
==============================================================================
function TfrmVraag2.bepaalDagTotaal(sDatumVanBesoek: string): integer;
var
  sSkoolNaam, sDatum: string;
  iGroepGrootte, iTotaal: integer;
  bToerGids: boolean;
  teksLeer: TextFile;
  sReel: string;
begin
  if not FileExists('DataV2.txt') then
  begin
     MessageDlg('Leer bestaan nie.', mtError, [mbOk], 0);
     Exit;
  end;
  iTotaal := 0;
  AssignFile(teksLeer, 'DataV2.txt');
  Reset(teksLeer);

  while NOT EOF(teksLeer) do
  begin
     readln(teksLeer, sReel);
     sSkoolNaam := copy(sReel, 1, pos('#', sReel) - 1);
     Delete(sReel, 1, pos('#', sReel));
     sDatum := copy(sReel, 1, pos('#', sReel) - 1);
     Delete(sReel, 1, pos('#', sReel));
     iGroepGrootte := StrToInt(sReel);
     if sDatum = sDatumVanBesoek then
        iTotaal := iTotaal + iGroepGrootte;
  end; // while
  CloseFile(teksLeer);
  Result := iTotaal;
end;
=========================================================================
// Vraag 2.2.2 (b)
==============================================================================
procedure TfrmVraag2.btnVraag222Click(Sender: TObject);
var
  I, iTotaal: integer;
  sDatum: string;
  bSuksesvol: boolean;
begin
    bSuksesvol := false;
  iTotaal := bepaalDagTotaal(objUitstappie.getBesoekDatum);
  if objUitstappie.isBevestig(iTotaal) then
    begin
     ShowMessage(objUitstappie.toString + #13 + 'Totale bedrag: ' + FloatToStrF
          (objUitstappie.berekenBedrag(rKostePerPersoon,rToerGids), ffCurrency,
8, 2));
     bSuksesvol := true;
    end

Kopiereg voorbehou                                                   Blaai om asseblief

### Page 28

Downloaded from hlayiso.com
Inligtingstegnologie/V1                  28                        DBE/November 2016
                                  NSS – Memorandum

  else
    begin
     ShowMessage('Daar is nie plek op die datum wat gekies is nie.');
     cmbBeskikbareDatums.Clear;
     pnlBeskikbaarheid.Show;
     for I := 0 to 4 do
      begin
       sDatum := lstDatums.Items[I];
       iTotaal := bepaalDagTotaal(sDatum);
       if objUitstappie.isBevestig(iTotaal) then
        begin
          cmbBeskikbareDatums.Items.Add(sDatum);
        end;
      end;
  end;
end;
=========================================================================
// Vraag 2.2.3
==============================================================================
procedure TfrmVraag2.btnVraag223Click(Sender: TObject);
var
  sDatum: string;

begin
  if cmbBeskikbareDatums.Items.Count > 0 then
  begin
     objUitstappie.setBesoekDatum
       (cmbBeskikbareDatums.Items[cmbBeskikbareDatums.ItemIndex]);
     ShowMessage(objUitstappie.toString + #13 + 'Bedrag betaalbaar: ' +
FloatToStrF
         (objUitstappie.berekenBedrag(rKostePerPersoon,rToerGids), ffCurrency,
8, 2));
  end
  else
  begin
     ShowMessage('Die aansoek van ' + objUitstappie.getSkoolnaam +
         ' was onsuksesvol.');
  end;
end;
=========================================================================
// Kode wat voorsien is
=========================================================================
procedure TfrmVraag2.FormActivate(Sender: TObject);
begin
  pnlBeskikbaarheid.Hide;
  CurrencyString := 'R';
end;

end.

Kopiereg voorbehou                                                   Blaai om asseblief

### Page 29

Downloaded from hlayiso.com
Inligtingstegnologie/V1                29                      DBE/November 2016
                                NSS – Memorandum

BYLAAG I: OPLOSSING VIR VRAAG 3: DELPHI
unit Vraag3_U;

interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, ExtCtrls, ComCtrls;

type
  TfrmVraag3 = class(TForm)
     Panel1: TPanel;
     GroupBox1: TGroupBox;
     btnTerminaal1: TBitBtn;
     btnTerminaal2: TBitBtn;
     btnTerminaal3: TBitBtn;
     GroupBox2: TGroupBox;
     btnNoord: TBitBtn;
     btnSuid: TBitBtn;
     btnOos: TBitBtn;
     btnWes: TBitBtn;
     GroupBox3: TGroupBox;
     btnVraag31: TButton;
     btnVraag32: TButton;
     btnVraag33: TButton;
     btnVraag34: TButton;
     redVraag3: TRichEdit;
     cmbVraag33: TComboBox;
     GroupBox4: TGroupBox;
     procedure btnVraag31Click(Sender: TObject);
     procedure FormActivate(Sender: TObject);
     procedure btnVraag32Click(Sender: TObject);
     procedure btnTerminaal1Click(Sender: TObject);
     procedure btnTerminaal2Click(Sender: TObject);
     procedure btnTerminaal3Click(Sender: TObject);
     procedure btnNoordClick(Sender: TObject);
     procedure btnSuidClick(Sender: TObject);
     procedure btnOosClick(Sender: TObject);
     procedure btnWesClick(Sender: TObject);
     procedure btnVraag33Click(Sender: TObject);
     procedure btnVraag34Click(Sender: TObject);
  private
     { Private declarations }
  public
     { Public declarations }
  end;
=========================================================================
// Kode wat voorsien is
=========================================================================
var
  frmVraag3: TfrmVraag3;
  arrKodes: array [1 .. 10] of char = (
     'W',
     'A',
     'S',
     'R',
     'X',
     'D',
     'H',
     'P',
     'T',
     'L'
  );
Kopiereg voorbehou                                               Blaai om asseblief

### Page 30

Downloaded from hlayiso.com
Inligtingstegnologie/V1                30                      DBE/November 2016
                                NSS – Memorandum

  arrAktiwiteite: array [1 .. 10] of String = (
     'Waterpark',
     'Akwarium',
     'See',
     'Restaurante',
     'Inkopies',
     'Duik',
     'Hulptoonbank',
     'Pikkewynpark',
     'Haaitenk',
     'Dolfynvertonings'
  );
  arrAktKodes: array [1 .. 3, 1 .. 4] of String = (('DXWAT', 'HRDST',
       'STWLP', 'RDT'), ('SWA', 'SRXD', 'LWXH', 'SHA'),
     ('WLSR', 'AT', 'DATX', 'HW'));

  iTerminaal: integer = 1;
  iRigting: integer = 1;
//==================================================================
// Globale veranderlikes
//==================================================================
  arrRigtings: array [1 .. 4] of string = (
     'Noord',
     'Suid',
     'Oos',
     'Wes'
  );
=========================================================================
// Kode wat voorsien is
=========================================================================
implementation

{$R *.dfm}
procedure TfrmVraag3.btnTerminaal1Click(Sender: TObject);
begin
  iTerminaal := 1;
end;

procedure TfrmVraag3.btnTerminaal2Click(Sender: TObject);
begin
  iTerminaal := 2;
end;

procedure TfrmVraag3.btnTerminaal3Click(Sender: TObject);
begin
  iTerminaal := 3;
end;

procedure TfrmVraag3.btnNoordClick(Sender: TObject);
begin
  iRigting := 1;
end;

procedure TfrmVraag3.btnSuidClick(Sender: TObject);
begin
  iRigting := 2;
end;

procedure TfrmVraag3.btnOosClick(Sender: TObject);
begin
  iRigting := 3;
end;

Kopiereg voorbehou                                               Blaai om asseblief

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

## Related documents

- [Information Technology P1 Nov 2016 Afr](https://www.hlayiso.com/library/information-technology-p1-nov-2016-afr/320c8009-f78a-4826-8d92-19579f5df5e4) — Information Technology · QP · 2016 · Afr
- [Information Technology P1 Nov 2016 Eng](https://www.hlayiso.com/library/information-technology-p1-nov-2016-eng/5824b493-9d09-4250-ac0e-b7015e6d6080) — Information Technology · QP · 2016 · Eng
- [Information Technology P2 Nov 2016 Memo Afr](https://www.hlayiso.com/library/information-technology-p2-nov-2016-memo-afr/85756101-2bb5-41d5-9333-dc1f7e95dff6) — Information Technology · Memo · 2016 · Afr
- [Information Technology P1 Feb March 2016 Memo Eng](https://www.hlayiso.com/library/information-technology-p1-feb-march-2016-memo-eng/fae1d47d-d297-4e9b-9dc5-dd36d600d7df) — Information Technology · Memo · 2016 · 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

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