Oefeningen H5

circle-exclamation

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

Schoenverkoper

a) 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

b) 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.

circle-info

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:

c) 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.

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:

BankRekening controle

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.

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:

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:

en

Schaakstuk

Quiz

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?)

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 vindenarrow-up-right) Als dus de gebruiker na elkaar invoert:

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.

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?

Bron Stubru

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.

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:

(bron oefening: gemaakt samen met ChatGpt)

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.

Schaak-Elo met if en Random

Fifa ranking berekenen (PRO)

FIFA berekent de score per nationaal voetbal team met een eigen formule bronarrow-up-right waarvan de belangrijkste informatie hier samengevat wordt:

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

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:

  1. Maak een enum Genre met minstens 4 genres (bv. Drama, ScienceFiction, Horror, Comedy).

  2. Vraag de gebruiker om een genre te kiezen (toon de opties).

  3. Vraag de gebruiker om de stars-rating van de regisseur (1 t.e.m. 5).

  4. 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 switch om 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:

Last updated

Was this helpful?