Programmeren 1
Herhaling
Doelstelling
We leren werken met de foreach-lus. Verder maken we oefeningen op verschillende concepten uit recente lessen.
Leerpad
Herhaal indien nodig volgende concepten uit eerdere lessen:
- De for-lus
- Arrays
- Exceptions
- De switch-constructie
- Files
- Enumerated types
Bekijk dit filmpje dat de foreach-lus uitlegt.
Oefeningen
Maak volgende oefeningen. Modeloplossingen komen 12 december online.
Breid het programma
OefeningenForEachuit het filmpje uit zodat er meer volledige zinnen geprint worden inDemonstreerForEach. Voor elk dier komt het woordje "De", na elk werkwoord kunnen drie woorden komen: "goed", "slecht" en "graag". Aan het einde van elke zin komt een punt. Zorg ervoor dat elke mogelijke zin die je op deze manier kan vormen wordt afgeprint.Pas je klasse
OefeningenExceptionsaan. Voeg vier methodes toe, genaamdTraceMethode1,TraceMethode2,TraceMethode3enTraceMethode4. Elke methode roept de volgende op, dusTraceMethode1roeptTraceMethode2op enzovoort. De laatste,TraceMethode4gooit meteen een exception. Vang in elke methode de exception op door af te printen van welke methode de fout komt en welke methode actief is op het moment van het opvangen. Na het printen gooi je de exception opnieuw. Alleen inTraceMethode1hoef je de exception niet opnieuw te gooien. Je programma zou dus bijvoorbeeld volgende tekst kunnen printen: "Er trad een exception op tijdens het oproepen van TraceMethode4. Gevangen in TraceMethode3 en doorgegeven. Er trad een exception op tijdens het oproepen van TraceMethode3. Gevangen in TraceMethode2 en doorgegeven. Er trad een exception op tijdens het oproepen van TraceMethode2. Gevangen in TraceMethode1.Pas je bestand
Program.csaan zodat het gebruik maakt van een switch-constructie in plaats van een lange opeenvolging van if-elses.Schrijf in
OefeningenSwitch.cstwee nieuwe methodes,IsKlinker(string letter)enControleerKlinker(). De eerste krijgt een string van één letter en geeft een boolean terug die uitdrukt of het een klinker ("a","e","i","o" of "u") is of niet. Gebruik hiervoor eenswitchen schrijf zo weinig mogelijk verschillende gevallen. De tweede leest een regel tekst in en controleert eerst de lengte. Deze moet 1 zijn, anders is de regel tekst sowieso geen klinker. Daarvoor gebruik je (als je stringlineheet)line.Length. Als de string langer is, wordt er een foutboodschap geprint. Anders wordtIsKlinkergebruikt om na te gaan of het een klinker is en wordt "Het is een klinker." of "Het is geen klinker." geprint, naargelang wat voor letter het is.Pas je
switchuit de vorige oefening aan om minderreturnstatements te bevatten. Hiervoor groepeer je cases: als je twee cases hebt, bijvoorbeeld "a" en "b" die tot hetzelfde resultaat leiden, zijn volgende stukjes code identiek:case "a": DoeIets(); break; case "b": DoeIets(); break;
encase "a": case "b": DoeIets(); break;
Gebruik dus de tweede vorm.Schrijf een klasse
OefeningenEnums. Definieer hierin twee enums,PersonageenKleur. VoorPersonagezijn er volgende waarden:- Donatello
- Leonardo
- Michelangelo
- Raphael
- Splinter
- Shredder
- Beabop
- Rocksteady
- April
Kleurheb je:- Paars
- Blauw
- Oranje
- Rood
Associeer(Personage personage)die de kleur die bij een personage hoort uitprint en hiervoor eenswitchgebruikt. Enkel de eerste vier namen krijgen een kleur, bij de rest print je: "Dit personage krijgt geen kleur." Schrijf ten slotte een methodeAssocieerAllePersonages()die bovenstaande methode voor alle personages oproept. Je mag dit met de hand uitschrijven, want een enum doorlopen werkt anders dan een array doorlopen.Schrijf een klasse
Appender. Deze heeft een methode,AppendGloria. Deze methode opent een bestand van precies vier regels,langzalhijleven.txten voegt drie regels toe aan het einde, namelijk "In de gloria!", "In de gloria!" en "Hiep hiep hiep hoera!". Dit bestand plaats je in dezelfde map alsAppender.csen je vult zelf vier regels in. Als je al gehoord hebt van "append mode": dit gebruiken we niet, enkelReadLineenWriteLine. Enkel de concepten uit de les (of het Yellow Book, voor wie deze niet kon bijwonen) zijn hier nodig. Test je programma grondig. Controleer bij het schrijven ook regelmatig oflangzalhijleven.txtnog steeds de vier oorspronkelijke regels bevat. Wanneer je met bestanden leert werken, gebeurt het wel eens dat je per ongeluk een bestand wist.Schrijf een klasse
BubbleSorter. Deze heeft één methode:IsSorted(int[] arr). De methode controleert of een lijst van getallen gesorteerd is. Dat is zo wanneer ieder element kleiner dan of gelijk aan het volgende element is. Als de lijst gesorteerd is, wordttrueteruggegeven, andersfalse.