Week 2
{% hint style="info" %} Voor de volgende oefeningen dien je telkens zelf te bepalen welke methoden (met bijhorende parameters en return types) nodig zijn om tot een gestructureerde oplossing te komen.
{% hint style="info" %} Voor de volgende oefeningen dien je telkens zelf te bepalen welke methoden (met bijhorende parameters en return types) nodig zijn om tot een gestructureerde oplossing te komen.
Schrijf een herbruikbare methode die de inhoud van een integer-array visueel weergeeft in de console.
Functionele vereisten:
Demonstratie: Toon de werking aan in je Main-methode met minstens twee verschillende arrays.
Verwachte output: 
Ontwikkel een applicatie die parkeerkosten berekent. De applicatie moet eerst vragen hoeveel auto's er verwerkt moeten worden, en vervolgens per auto de parkeerduur opvragen.
Tarieven: Het basistarief bedraagt € 2,00 voor een parkeerduur tot en met 3 uur. Indien er langer geparkeerd wordt, wordt er na deze 3 uur een supplement aangerekend van € 0,50 per begonnen uur. De maximale dagprijs is begrensd op € 10,00. Je mag ervan uitgaan dat een auto nooit langer dan 24 uur parkeert.
Technische vereisten:
Voorbeeldoutput:


Implementeer het Caesar-algoritme om tekst te versleutelen en te ontcijferen.
Algoritme: Bij dit systeem wordt elke letter in de tekst vervangen door een letter die een vast aantal plaatsen verderop in het alfabet staat. Wanneer het einde van het alfabet bereikt wordt, telt men verder vanaf 'A' (cyclische verschuiving). Bijvoorbeeld: bij een verschuiving van 3 wordt 'A' een 'D', 'B' een 'E', enzovoort. 'Z' wordt in dit geval 'C'.
Formule: Gebruik de formule: nieuweIndex = (oudeIndex + sleutel) % 26 (waarbij A=0, B=1, ...).
Opdracht: Schrijf een programma dat de gebruiker om een tekst en een sleutel (verschuiving) vraagt. Het programma moet in staat zijn om de tekst te versleutelen en nadien de versleutelde tekst weer correct te ontsleutelen. Je oplossing moet gebruik maken van arrays van karakters (char[]) voor de interne verwerking.

Schrijf een validatie-methode voor Belgische ondernemingsnummers.
Een ondernemingsnummer (formaat: BE 0xxx.xxx.xxx) is geldig als het voldoet aan volgende controle: Wanneer men de eerste 7 cijfers (na de '0') als één getal beschouwt, en men berekent de rest bij deling door 97, dan moet 97 min deze rest gelijk zijn aan de laatste 2 cijfers van het nummer.
Vereiste: De methode accepteert het nummer als string (inclusief "BE", spaties en punten) en geeft aan of dit geldig is of niet.
Analyseer onderstaande problemen en implementeer de oplossingen. Let goed op het onderscheid tussen het aanmaken van een nieuwe array en het aanpassen van een bestaande array.
Programmeer een module om de determinant van een matrix te berekenen.
Opdracht: Begin met ondersteuning voor een 2x2 matrix. De determinant van een matrix [[a, b], [c, d]] bereken je als (a * d) - (b * c) (kruisproduct). Zorg ervoor dat je oplossing gebruik maakt van meerdimensionale arrays ([,]).
Uitbreidbaarheid: Denk na over hoe je de code zou structureren om later ook 3x3 matrices te ondersteunen.
Test data: Voor matrix $\begin{pmatrix} 2 & 4 \ 3 & 5 \end{pmatrix}$ is het resultaat -2.
Breid je eerdere visualisatie-methode (ArrayViewer) uit zodat deze ook correct werkt voor 2D-matrices (rijen en kolommen proper uitgelijnd).
Implementeer het matrixproduct van twee matrices $A$ en $B$. Zorg voor een correcte controle op de dimensies (aantal kolommen van A moet gelijk zijn aan aantal rijen van B).
Een team wenst statistische analyse uit te voeren op de prestaties van hun spelers (rugnummers 1 t.e.m. 12). Er moeten twee types acties bijgehouden worden: positieve en negatieve. Opdracht: Schrijf een programma dat interactief data kan invoeren. De gebruiker geeft een rugnummer en het type actie in (gebruik 'P' voor positief, 'N' voor negatief), gevolgd door het aantal keer dat deze actie voorkwam. De gebruiker bepaalt zelf wanneer de invoer stopt.
Na afloop toont het programma een rapport met:
Een typische invoer kan dus zijn:
2
P
6
De coach kiest dus de speler met rugnummer 2, kiest voor een positieve actie ('P'), en voert 6 in als aantal.
In de array op index 1 (rugnummer -1) zal in de 0'de kolom (0 = positieve, 1 = negatieve) het getal 6 geplaatst worden.
Vervolgens kan de coach een ander rugnummer (of hetzelfde) invoeren en zo verder.
Wanneer de coach 99 invoert stopt het programma en worden de finale statistieken getoond
Rugnummer Positief Negatief Verschil
1 5 2 3
2 6 7 -1
Simuleer de bewegingen van een robot op een rooster. De robot start op een bepaalde coördinaat en kijkt in een bepaalde windrichting (N, O, Z, W).
De robot accepteert een string van commando's:
Doel: Bepaal de eindcoördinaat en eindrichting na het uitvoeren van een reeks commando's.
Implementeer het klassieke spel "Galgje".
Vereisten:
*).Schrijf een methode die de som berekent van een willekeurige hoeveelheid integers. De methode moet zo ontworpen zijn dat ze kan aangeroepen worden met eender welk aantal argumenten (bv. Som(1, 2) maar ook Som(1, 2, 3, 4, 5)).
Onderzoek welke C# language feature hiervoor gebruikt kan worden.