Week 2
Film Default (Essential)
Maak een methode FilmRuntime() die 3 parameters accepteert:
Een string die de naam van de film bevat
Een integer die duur in minuten van de film bevat
Een enum-type die het genre van de film bevat (Drama, Actie, etc.)
Indien de duur van de film niet wordt meegeven wordt een standaard lengte van 90 minuten ingesteld. Indien het genre niet wordt meegeven dan wordt deze default op Onbekend ingesteld.
De methode geeft niets terug maar toont eenvoudigweg de film op het scherm, gevolgd door z’n duur en genre in volgende formaat. Voorbeelduitvoer=
Toon aan in je main dat de methode werkt met zowel 1, 2 als 3 parameters. Toon ook aan dat je met named arguments de methode kan aanroepen.
Opwarmers met geavanceerde methoden (Essential)
Zorg ervoor dat de opwarmers vooraan deze reeks oefeningen steeds minstens 1 optionele parameter hebben. Roep deze methoden aan via named parameters.
Roulette (Essential)
Ga ervan uit dat de gebruiker géén foute invoer doet.
Volgende oefening is een variant op een opgave uit de vaardigheidsproef van januari 2024.
Het doel van deze applicatie is aantonen dat je beter niet gokt, want de kans op winst is zeer klein ("het huis wint altijd").
Methode Roulette
Maak een methode Roulette
. De methode aanvaart een double en een int als parameter en geeft een double terug. De int parameter is een optionele parameter die standaard op 10 staat.
De methode zal een casino-simuleren en geeft op het einde de winst (of verlies) van de speler terug. De double die wordt meegegeven is het startkapitaal. De int is het aantal simulaties n. De methode zal n roulette-rondes simuleren en telkens de winst of verlies bijhouden.
Iedere van de n simulaties gebeurt het volgende:
De computer kiest een willekeurig getal tussen 0 en 60. Dit is zogezegd de keuze van de speler bij roulette.
De computer kiest een willekeurig getal tussen 0 en 60. Dit is zogezegd het getal waar de roulette-balletje op belandt.
Indien beide getallen overeenkomen zal het startkapitaal van de speler met 1 verhogen. Indien het getal niet gelijk was wordt er 0.1 van het kapitaal afgehouden.
Finaal geeft de methode terug hoeveel geld er nog overblijft na n simulaties.
Applicatie
Maak een applicatie die aan de gebruiker een startkapitaal vraagt. Vervolgens gebruik je de Roulette
methode om aan de speler te tonen hoeveel er van zijn kapitaal zou overblijven als hij:
10 keer het roulette-spel speelt
100 keer
1000 keer
10000 keer
Toon telkens ook hoeveel verlies (of winst) dit is ten opzichte van het startkapitaal. Bij winst wordt dit verschil in groene letters getoond, bij verlies in rode letters.
Voorbeeld uitvoer
Tekst die start met ">" is invoer van de gebruiker.
Je bent met doubles aan het werken...Is het je opgevallen dat je soms heel vreemde afrondingen krijgt, of dat 10,0 plots 10,00000003 wordt? Dit komt doordat doubles (net als alle datatypes) maar een bendaring kunnen bewaren , vanwege het aantal bytes dat ze innemen. Dit kan soms leiden tot onverwachte afrondingsfouten. Afhankelijk van de oefening is er in dergelijke gevallen niets mis mee om waar nodig dan manueel af te ronden met Math.Round()
.
Here's ChatGPT again (Essential)
We gaan de prompt uit de vorige week-oefeningen om methode-oefeningen te genereren uitbreiden met de specifieke zaken waar vooral deze week op geoefend moet worden, namelijk: optionele parameters, named parameters en method overloaden. Vergeet XXXX niet te vervangen door je eigen context (of laat het staan als je geen inspiratie hebt)
" Je bent een lector van een hogeschool die studenten helpt met programmeren. Je bent heel goed in interessante opgaven in C# te ontwikkelen die studenten motiveert om te blijven programmeren.
Verzin een C# oefening voor mij die me doet oefenen op methoden.
Volgende zaken mogen in de oefening aanwezig zijn:variabelen, if else, switch, expressies, de math bibliotheek en loops. De nadruk ligt op het oefenen op methoden. Specifiek wil ik oefenen op optionele parameters, named parameters en method overloaden. Methoden geven maximum 1 element terug. Gebruik dus geen tuples of sets van returntypes bij methoden.
Volgende zaken mogen niet in de oefening aan bod komen: arrays, lists, linq en object georiënteerd programmeren.
Laat de oefening gaan over XXXX. Toon geen voorbeeldcode of oplossing. Toon wel voorbeelduitvoer. Leg ook expliciet uit welke methoden ik moet schrijven en hoe ze werken Stel ook 3 mogelijke uitbreidingen voor. "
Je oplossing kan je met deze prompt evalueren:
"Hierna volgt mijn oplossing. Kan je deze evalueren op correctheid, naamgeving, mate van overbodige code, etc., Let op: we mogen geen gebruik maken van van arrays, linq, lambdas, goto, break mag enkel in switch, events, delegates en objectgeoriënteerd programmeren. Geef vooral aandacht aan het gebruik van methoden, specifiek named parameters, method overloading en optionele parameters wat het hoofddoel van de opdracht was. Hier mijn code: XXXX "
En zo genereer je een modeloplossing:
" Los deze oefening voor me op in c#. Zonder gebruik te maken van arrays, linq, goto, break op een andere plaats dan een switch, lambdas, events, delegates en object georiënteerd programmeren. Plaats bij de code de nodige commentaar. De nadruk ligt op leren werken met methoden, specifiek named parameters, method overloading en optionele parameters . Geef dus aandacht in je commentaar in de uitleg van hoe deze methoden geschreven werden. "
Oude oefeningen leesbaarder maken
Kan je code uit vorige hoofdstukken herbruiken door deze in handige methoden te plaatsen zodat je code leesbaarder én bruikbaarder wordt?
Verhaalgenerator
Bekijk het all-one-project "De verhaal generator": kan jij dit project afwerken zoals onderaan de opgave wordt voorgesteld?
Hoe ver geraak je?
Last updated