Opgave 12 (2025)

Oefening 1 - Sauna (5 punten)

Info

Ga ervan uit dat de gebruiker géén foute invoer doet.

Opgave

Gegeven volgende flowchart voor een sauna. De gebruiker kan via een menu'tje ingeven wat hij wenst te doen. Pas de flowchart toe en houdt rekening met volgende zaken:

  1. De veiligheidsvoorschriften tonen gewoon de tekst "OPGELET WARM!" in rode letters.

  2. Telkens het menu moet getoond worden, wordt het scherm leeggemaakt (zodat het menu bovenaan terug komt). De huidige temperatuur wordt getoond (zie stap 3 en 4)

  3. De sauna start met 5 houtblokken op het vuur. Ieder houtblok zorgt voor 10 graden warmte. Als de gebruiker dus 60 graden wenst, dan moet er 1 blok toegevoegd worden. Telkens een blok wordt toegevoegd wordt de nieuwe warmte getoond. De sauna zal nooit voorbij de gewenste warmte gaan. Als de gebruiker dus 75 graden wenst, dan zullen er in totaal 7 blokken op het vuur moeten liggen.

  4. Telkens het menu wordt getoond verminder het aantal blokken met 1. (dit wil zeggen dat de 5 startblokken ogenblikkelijk 4 worden wanneer het programma opstart en het menu toont).

Voorbeeld uitvoer

Tekst die start met ">" is invoer van de gebruiker.

Welkom bij de sauna (40 graden). Je keuze? 1=voorschriften, 2= opwarmen, 3= stoppen.
>1
OPGELET WARM!
(scherm wordt leeg gemaakt)
Welkom bij de sauna (30 graden). Je keuze? 1=voorschriften, 2= opwarmen, 3= stoppen.
>2
Hoe warm moet het worden?
>65
1 blok toegevoegd. Het is nu 40 graden.
1 blok toegevoegd. Het is nu 50 graden.
1 blok toegevoegd. Het is nu 50 graden.
OPGELET WARM!
(scherm wordt leeg gemaakt)
Welkom bij de sauna (40 graden). Je keuze? 1=voorschriften, 2= opwarmen, 3= stoppen.
>3

Oefening 2 - Kentekengenerator (6 punten)

Info

Ga ervan uit dat de gebruiker géén foute invoer doet.

Opgave

Schrijf volgende 3 methoden:

  • Een methode A (naam: GenGetal)die aan de gebruiker een getal vraagt en dit getal verdubbeld teruggeeft. Indien de gebruiker een negatief getal opgeeft dan zal de methode 0 teruggeven. Deze methode bereist geen parameters.

  • Een methode B (naam: GenLandcode)die iedere aanroep een string bestaande uit 2 random karakters (hoofdletters "A" tot en met "Z") teruggeeft. 25% van de tijd zal de methode de string "XX" teruggeven in plaats van een random sequentie. Deze methode vereist geen parameters.

  • Een methode C (naam: Combineer) waar een landcode (bv "BE") en een geheel getal aan kan meegegeven worden. De landcode is optioneel (standaard : "BE"). De methode zal de landcode en het getal samengevoegd als een string teruggeven. Als er dus "FR" en 5 wordt meegegeven, geeft de methode FR5 terug.

Maak een methode GenereerAutoKenteken. Deze methode heeft geen invoer en geeft een string terug, als volgt:

  1. Het roept eerst methode A aan.

  2. Het roept methode B aan.

  3. Het gebruikt de uitvoer van voorgaande methoden om methode C aan te roepen. Indien methode B "XX" teruggaf, dan zal methode C zonder landcode parameter worden aangeroepen.

Roep de methode GenereerAutoKenteken 5 keer aan vanuit de main en bewaar de kentekens in een arrays.

Toon finaal alle gegenereerde kentekens in de array aan de gebruiker.

Voorbeeld uitvoer

Tekst die start met ">" is invoer van de gebruiker.

Geef een getal in: 
_24
Geef een getal in: 
_5
Geef een getal in: 
_-12
Geef een getal in: 
_65
Geef een getal in: 
_74

Gegenereerde kentekens:
BE48
BE10
HQ0
PL130
BE148

Oefening 3 - IP IP IP (8 punten)

Info

Ga ervan uit dat de gebruiker géén foute invoer doet.

Opgave

Volgende methode kan je gebruiken om het IP-adres van je computer te verkrijgen. Deze methode zal je IP-adres teruggeven als een array van 4 strings. Als je adres het volgende is "192.168.1.100", dan zal de methode dit teruggeven als de stringarray met de waarden: "192","168","1","100".

static string[] VerkrijgIP()
{
    try
    {
        var host = Dns.GetHostEntry(Dns.GetHostName());
        foreach (var ip in host.AddressList)
        {
            if (ip.AddressFamily == AddressFamily.InterNetwork)
            {
                return ip.ToString().Split(".");
            }
        }
        return new string[] { "0","0","0","0"}; //indien geen adres gevonden
    }
    catch (Exception ex)
    {
        return new string[] { "0", "0", "0", "0" };
    }
}

Gebruik deze methode om volgende zaken te doen (OPGELET: bovenstaande methodecode mag NIET aangepast worden):

Basis informatie

In het hoofdprogramma gebeuren volgende zaken:

  1. Je toont je eigen IP-adres (verkregen via de VerkrijgIP methode), waarbij je een punt plaatst tussen ieder deel, bijvoorbeeld: "192.168.1.100".

  2. Je toont het masker, waarbij we veronderstellen dat het laatste element uit de array het masker is. Dit laatste deel tonen we als "x" .Als ons huidige IP adres "10.3.34.234" is dan tonen we: "10.3.34.x".

Hulp-methoden

Maak een aantal hulpmethoden aan (bepaald zelf return type en eventuele parameters), met volgende eigenschappen.

  1. IsLokaal: deze methode controleert of een meegegeven IP-adres uit een lokaal netwerk komt. Een IP-adres is lokaal indien het eerste van de 4 delen 10 of 192 is. "10.34.42.2" is dus een lokaal adres. "34.10.12.111" is geen lokaal adres.

  2. ToonOmgekeerd: deze methode toont het meegegeven IP-adres omgekeerd op het scherm. "192.168.1.100" wordt dan "100.1.168.192" op het scherm.

  3. IsCorrectAdres: deze methode controleert of een meegegeven IP-adres een legaal adres is. Een IP-adres is geldig indien ieder deel een getal is tussen 1 tot en met 254. Volgende adres is dus geen correct adres "192.304.2.6", vanwege het tweede deel dat hoger is dan 254.

  4. IsGelijk: deze methode zal laten weten of 2 meegegeven IP-adressen identiek zijn.

  5. VerhoogAdres: deze methode zal het meegegeven IP-adres met eentje verhogen. Het zal het achterste getal met 1 verhogen. Indien het getal op 255 komt, dan wordt dit getal terug 1 (je hoeft niets met het 2e getal te doen). "192.168.1.100" zal "192.168.1.101" worden. "192.157.23.254" zal "192.157.23.1" worden. Het nieuwe adres wordt terug als een string-array gegeven uit de methode.

Toon de werking in je main aan van deze methoden, gebruik makend van je eigen IP-adres dat je van de methode VerkrijgIP kreeg..

Voorbeeld uitvoer

Tekst die start met ">" is invoer van de gebruiker.

Je ipadres is: 192.168.1.100
Het masker: 192.168.1.x

Werking Islokaal: Dit is een lokaal adres.
Werking Omgekeerd: 100.1.168.192
Werking IsCorrectAdres: Dit is een correct adres
Werking IsGelijk( vergeleken met 192.168.1.105): deze zijn niet gelijk
Werking VerhoogdAdres, nieuwe adres is: 192.168.1.101

Last updated

Was this helpful?