Oefeningen worden sinds vorig hoofdstuk al eens wat langer. Het is belangrijk dat eerste de volledige opgave doorneemt voor je begint te programmeren. Deze gewoonte is essentieel indien je over enkele weken grote 2uur-durende projecten tot een goed einde wenst te brengen.
BMI met if (Essential)
Pas je BMI-programma uit het vorige hoofdstuk aan zodat je programma feedback geeft aan de gebruiker naargelang het berekende BMI.
De kleur tussen haakjes geeft aan in welke kleur je deze tekst zet:
- Onder de 18,5 (rood): ondergewicht.
- Van 18,5 tot 25, met 25 niet inbegrepen (groen): normaal gewicht.
- Van 25 tot 30, met 30 niet inbegrepen (donkergeel): overgewicht. Je loopt niet echt een risico, maar je mag niet dikker worden.
- Van 30 tot 40, met 40 niet inbegrepen (rood): Zwaarlijvigheid (obesitas). Verhoogde kans op allerlei aandoeningen zoals diabetes, hartaandoeningen en rugklachten. Je zou 5 tot 10 kg moeten vermageren.
- 40 of meer (magenta): ernstige zwaarlijvigheid. Je moet dringend vermageren want je gezondheid is in gevaar (of je hebt je lengte of gewicht in verkeerde eenheid ingevoerd).
Merk op dat we enkel steeds de bovengrens testen in de if. Dit verkleint de kans op fouten. Zie je bijvoorbeeld de bug in deze code?
if(bmi < 18.5)
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("Ondergewicht");
}
else if(bmi > 18.5 && bmi < 25)
{
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("Normaal gewicht");
}Inderdaad: bmi > 18.5 moest bmi >= 18.5 want bovenstaande code zou dan nooit “Normaal gewicht” tonen indien de gebruiker exact 18.5 als BMI heeft. Daarom dat we dus de ondergrens niet testen: aangezien we niet in de vorige if gingen weten we automatisch dat bmi dan wél groter is dan de waarde die we testen.
Op het einde eindigen we niét met else if(bmi>=40) maar met een else, daar we al weten dat bmi groter of gelijk is aan 40 als hij niet in de vorige if ging.
Deze oplossing is afgeschermd.
Studenten krijgen de sleutel van hun lesgever. Heb je de sleutel al eens op dit toestel
gebruikt, dan verschijnt de oplossing hier vanzelf.
Schoenverkoper
Fase 1: Maak een oefening die aan de gebruiker vraagt hoeveel paar schoenen hij wenst te kopen. Ieder paar schoenen kost steeds 20 euro. Indien de gebruiker 10 paar of meer koopt kosten de eerste 9 paar nog steeds 20 euro, de overige kosten echter maar 10 euro. Toon aan de gebruiker de totale prijs.
Voorbeeld:
- 8 schoenen kost 8x20 = 160 euro
- 12 schoenen kost 9x20 + 3x10 = 210 euro
Deze oplossing is afgeschermd.
Studenten krijgen de sleutel van hun lesgever. Heb je de sleutel al eens op dit toestel
gebruikt, dan verschijnt de oplossing hier vanzelf.
Fase 2: Voeg nu toe dat het programma eerst aan de kassier vraagt tot hoeveel schoenen de korting niet geldt.
Voorbeeld:
- De kassierster voert 6 in. Dan kosten 8 schoenen: 6x20 + 2x10 = 140 euro.
Deze oplossing is afgeschermd.
Studenten krijgen de sleutel van hun lesgever. Heb je de sleutel al eens op dit toestel
gebruikt, dan verschijnt de oplossing hier vanzelf.
Je hebt niet noodzakelijk een if voor deze oefening nodig. Indien je deze oefening zonder if kunt oplossen, dan krijg je als extra opgave bij:
Fase 3: Zorg ervoor dat de kassier enkel een getal van 3 tot en met 10 kan invoeren bij de vraag tot hoeveel schoenen de korting niet geldt. Indien de kassier een getal buiten deze range invoert wordt de gewone korting toegekend, namelijk vanaf 10 of meer schoenen.
Deze oplossing is afgeschermd.
Studenten krijgen de sleutel van hun lesgever. Heb je de sleutel al eens op dit toestel
gebruikt, dan verschijnt de oplossing hier vanzelf.
Ohm-berekenaar
Vraag aan de gebruiker wat hij wenst te berekenen: spanning, weerstand of stroomsterkte. Vraag vervolgens de 2 andere waarden (als dus de gebruiker “Spanning” kiest vraag je aan de gebruiker de stroomsterkte en de weerstand) en bereken m.b.v. de wet van Ohm de gewenste waarde tot 2 cijfers na de komma.
Voorbeeld output:
Wat wil je berekenen? spanning, weerstand of stroomsterkte?
stroomsterkte
Geef me dan de spanning:
>34,4
Geef me dan de weerstandswaarde:
>3,4
De stroomsterkte bedraagt dan 10,12 Ampere
Deze oplossing is afgeschermd.
Studenten krijgen de sleutel van hun lesgever. Heb je de sleutel al eens op dit toestel
gebruikt, dan verschijnt de oplossing hier vanzelf.
Orakeltje van Delphi, part deux (Essential)
We gaan het Orakeltje verbeteren. Voor het orakel je vertelt hoe lang je te leven hebt zal het eerste vragen of je een vrouw (v) of een man (m) bent. Dan vraagt ze je leeftijd. Mannen leven maximum tot hun 120 jaar. Vrouwen echter tot 150 jaar. Laat het orakel een duur voorspellen die kan. Als een vrouw van 50 de vraag stelt dan zal het orakel dus een getal van 5 tot en met 100 (150-50) genereren. Een man van 35 zal van 5 tot en met 85 (120-35) jaren langer kunnen leven.
Deze oplossing is afgeschermd.
Studenten krijgen de sleutel van hun lesgever. Heb je de sleutel al eens op dit toestel
gebruikt, dan verschijnt de oplossing hier vanzelf.
Casino (Essential)
Genereer een random getal van 1 t.e.m. 6 maar toon dit niet aan de gebruiker. Vraag aan de gebruiker welk getal hij denkt dat de computer heeft “geworpen”. Indien de gebruiker juist raadt verschijnt er “proficiat” op het scherm. Anders: “You lose. Ik wierp [getal]”.
Voorbeeld:
Welk getal heb ik geworpen?
>3
You lose. Ik wierp 1.
Deze oplossing is afgeschermd.
Studenten krijgen de sleutel van hun lesgever. Heb je de sleutel al eens op dit toestel
gebruikt, dan verschijnt de oplossing hier vanzelf.
Casino 3
Vul de voorgaande oefening aan, maar laat de gebruiker 3x na mekaar raden. Enkel als hij juist raadt mag hij nog eens raden. Als hij ook de derde juist raadt wint hij. In alle andere gevallen niet.
Voorbeeld output:
Welk getal heb ik geworpen?
4
Welk getal heb ik nu geworpen?
1
You lose!
en
Welk getal heb ik geworpen?
4
Welk getal heb ik nu geworpen?
1
Welk getal heb ik nu geworpen?
5
Proficat!
Deze oplossing is afgeschermd.
Studenten krijgen de sleutel van hun lesgever. Heb je de sleutel al eens op dit toestel
gebruikt, dan verschijnt de oplossing hier vanzelf.
Schaakstuk
Definieer de verschillende schaakstukken in een enum-type (Pion, Loper, Koning, etc.). Maak 2 variabelen aan van dit nieuwe datatype en vraag aan de gebruiker welke waarde elke moet krijgen (bv variabele 1 een pion , variabele 2 een koningin).
Toon aan de gebruiker hoe elke variabele kan bewegen (Pion: “Rechtdoor, 1 of 2 vakjes”, Loper: “Schuin”, etc.), gebruik hiervoor een switch (die je 3x zal nodig hebben)
Indien beide variabelen hetzelfde stuk zijn dan toont de applicatie de tekst “Beide zijn hetzelfde.” gevolgd door hoe ze kunnen bewegen.
Voorbeeld werking:
Welk stuk is stuk1?
>Toren
Welk stuk is stuk2?
>Koningin
Stuk1 kan enkel horizontaal of verticaal bewegen.
Stuk2 kan in alle richtingen bewegen
Ander voorbeeld:
Welk stuk is stuk1?
>Loper_
Welk stuk is stuk2?
>Loper
Beide zijn het zelfde en kunnen enkel schuin bewegen.
Deze oplossing is afgeschermd.
Studenten krijgen de sleutel van hun lesgever. Heb je de sleutel al eens op dit toestel
gebruikt, dan verschijnt de oplossing hier vanzelf.
Quiz
Maak een quiz. Maak gebruik van het switch-statement om de input van de gebruiker (a, b, c of d) te verwerken en bij iedere vraag aan te geven of dit juist of fout is. Voorzie 3 multiple choice vragen. Houd bij hoe vaak de speler juist antwoordde en geef op het einde de eindscore (Juist is +2, fout is -1).
Zoek op hoe je de kleur van de letters en de achtergrond in een console-applicatie kunt aanpassen en pas dit toe op je quiz om deze er iets boeiender uit te laten zien. Toon iedere vraag op een nieuw scherm.
Deze oplossing is afgeschermd.
Studenten krijgen de sleutel van hun lesgever. Heb je de sleutel al eens op dit toestel
gebruikt, dan verschijnt de oplossing hier vanzelf.
Schrikkeljaar (Essential)
De gebruiker voert een jaartal in en jouw programma toont of het wel of geen schrikkeljaar is. Een schrikkeljaar is deelbaar door 4, behalve als het ook deelbaar is door 100, tenzij het wél deelbaar is door 400. Bijvoorbeeld: * 1997: geen schrikkeljaar * 1996: wél schrikkeljaar * 1900: geen schrikkeljaar * 2000: wél schrikkeljaar
Kan je dit oplossen met 1 if-statement (met gecombineerde logische expressie?)
Deze oplossing is afgeschermd.
Studenten krijgen de sleutel van hun lesgever. Heb je de sleutel al eens op dit toestel
gebruikt, dan verschijnt de oplossing hier vanzelf.
Kleurcode weerstand naar ohm
Vraag aan de gebruiker om de ringkleuren van de eerste 3 ringen in te voeren als tekst (bv groen). Toon vervolgens de waarde van deze weerstand (kleuren van de ringen kan je in deze tabel vinden) Als dus de gebruiker na elkaar invoert:
rood
paars
rood
Dan zal het programma tonen:
Deze weerstand heeft een waarde van 2700 Ohm
Waarom? Ring 1 is rood en heeft waarde 2. Ring 2 is paars en heeft waarde 7. Samen dus 27. Ring 3 heeft waarde rood, wat wil zeggen dat de vermenigvuldigingsfactor 100 is.
Los deze oefening op met meerdere switchstatements.
Deze oplossing is afgeschermd.
Studenten krijgen de sleutel van hun lesgever. Heb je de sleutel al eens op dit toestel
gebruikt, dan verschijnt de oplossing hier vanzelf.
GuntherD Stemwijzer (Essential)
Kan jij volgende ludieke stemwijzer van GuntherD in een eenvoudig programma gieten dat door een reeks j/n vragen aan de gebruiker uiteindelijk zijn “stemprofiel” toont?

Deze oplossing is afgeschermd.
Studenten krijgen de sleutel van hun lesgever. Heb je de sleutel al eens op dit toestel
gebruikt, dan verschijnt de oplossing hier vanzelf.
Enum seizoenen (Essential)
Maak een enum die de seizoenen van het jaar bevat. Vraag aan de gebruiker om een maandnummer in te voeren. Gebruik vervolgens een switch om te bepalen in welk seizoen deze maand (grotendeels) ligt. Wijs deze enum toe aan een variabele in de switch. Vervolgens gebruik je een if om, gebaseerd op deze enum-variabele, te tonen of het om een koud seizoen (winter en herfst) of een warm seizoen (zomer en lente) gaat.
Deze oplossing is afgeschermd.
Studenten krijgen de sleutel van hun lesgever. Heb je de sleutel al eens op dit toestel
gebruikt, dan verschijnt de oplossing hier vanzelf.
Enum verkeerslicht (Essential)
Je gaat een programma schrijven dat het gedrag van een verkeerslicht simuleert met behulp van een enum. De gebruiker moet het verkeerslicht (een enum variabele) een status geven (groen, oranje of rood), en op basis daarvan moet het programma een bericht weergeven over wat een bestuurder moet doen.
Gebruik een switch-statement om het gedrag van de bestuurder te bepalen op basis van de invoer.
- Als het licht groen is: Toon het bericht “Je mag doorrijden.”
- Als het licht oranje is: Toon het bericht “Maak je klaar om te stoppen.”
- Als het licht rood is: Toon het bericht “Stop! Wacht tot het licht groen wordt.”
Voorbeeld werking:
Voer de status van het verkeerslicht in (Groen, Oranje, Rood):
>Groen
Je mag doorrijden.
(bron oefening: gemaakt samen met ChatGpt)
Deze oplossing is afgeschermd.
Studenten krijgen de sleutel van hun lesgever. Heb je de sleutel al eens op dit toestel
gebruikt, dan verschijnt de oplossing hier vanzelf.
Enum bij BMI
Maak een enum die de verschillende soorten gewichten voorstelt (Obees, Zwaarlijvig, NormaalGewicht, etc.) Pas de bestaande “BMI met if” oefening aan zodat je deze enum gebruikt om je code leesbaarder te maken.
Deze oplossing is afgeschermd.
Studenten krijgen de sleutel van hun lesgever. Heb je de sleutel al eens op dit toestel
gebruikt, dan verschijnt de oplossing hier vanzelf.
Schaak-Elo met if en Random
In plaats van de 3 mogelijke scenarios (win,loss, draw) vraag je nu aan de gebruiker wie van beide spelers heeft gewonnen (“A”, “B” of “D” van Draw/gelijk) en toont enkel de nieuwe ratings gebaseerd op de ingevoerde uitslag.
Pas je applicatie ook aan als volgt: indien de gebruiker een negatieve rating voor een van de beide spelers opgeeft dan gebeuren er 2 zaken:
- Er verschijnt een foutboodschap (“Negatieve rating mag niet. Ik genereer een random rating.”)
- Je genereert een random rating tussen 500 en 3000, toont dit getal aan de gebruiker, en gebruikt dit vervolgens verder in de applicatie.
Deze oplossing is afgeschermd.
Studenten krijgen de sleutel van hun lesgever. Heb je de sleutel al eens op dit toestel
gebruikt, dan verschijnt de oplossing hier vanzelf.
Fifa ranking berekenen (PRO)
FIFA berekent de score per nationaal voetbal team met een eigen formule . Volgende document vat deze samen..
Schrijf een applicatie die de nieuwe P berekent nadat de gebruiker alle nodige informatie heeft ingevoert. Bij de invoer van I krijgt de gebruiker een keuze menu te zien dat de verschillende zinnetjes toont zonder de I-waarde. De gebruiker kiest uit het menu de juiste importance (bijvoorbeeld door a, b, c, etc. in te voeren) en jouw programma zet dit dan om naar een getal. De gebruiker moet voor W invoeren: gewonnen, verloren, gelijk. Jouw programma zal dit omzetten naar het juiste getal (1, 0.5 of 0).
Deze oplossing is afgeschermd.
Studenten krijgen de sleutel van hun lesgever. Heb je de sleutel al eens op dit toestel
gebruikt, dan verschijnt de oplossing hier vanzelf.
Oscars: The Academy kiest (Final Essential)
Tijd om al je kennis samen te brengen voor het grootste filmevenement van het jaar! Schrijf een programma dat bepaalt of een film in aanmerking komt voor een Oscar-nominatie. Deze oefening bundelt enum, switch, if, Random en user input.
De regels:
- Maak een
enumGenre met minstens 4 genres (bv. Drama, ScienceFiction, Horror, Comedy). - Vraag de gebruiker om een genre te kiezen (toon de opties).
- Vraag de gebruiker om de stars-rating van de regisseur (1 t.e.m. 5).
- Genereer een willekeurige publieksscore op 100.
De berekening:
De totaalscore van de film wordt als volgt berekend:
- Start met de willekeurige publieksscore.
- Doe hier de stars-rating maal 10 bij.
- Gebruik een
switchom punten aan te passen op basis van het genre:- Drama: +20 punten (De Academy is dol op tranentrekkers).
- Comedy: -10 punten (Grappige films winnen zelden).
- ScienceFiction: +5 punten.
- Horror: -20 punten.
- Speciale regel (gebruik een
if): Als de regisseur 5 sterren heeft, krijgt, bovenop de andere punten, de film nog eens +20 punten extra “prestige-bonus”.
De uitslag:
- Totaalscore >= 150: “BEST PICTURE WINNAAR!”
- Totaalscore tussen 120 en 150: “Genomineerd voor Best Picture”
- Totaalscore < 120: “Helaas, volgende keer beter”
Voorbeeld output:
Selecteer genre (Drama, ScienceFiction, Horror, Comedy):
> Horror
Geef rating regisseur (1-5):
> 5
Publieksscore (random): 84
Berekening:
Start: 84
Regisseur bonus: 5 * 10 = +50
Genre (Horror): -20
Prestige bonus (5 sterren): +20
Totaal: 134
Resultaat: Genomineerd voor Best Picture
Deze oplossing is afgeschermd.
Studenten krijgen de sleutel van hun lesgever. Heb je de sleutel al eens op dit toestel
gebruikt, dan verschijnt de oplossing hier vanzelf.