Programmeermethoden
Werkcollege 8: Op papier II en Derde opgave II
Het
achtste werkcollege van het vak
Programmeermethoden
vindt plaats in
de week van
28 oktober tot met 1 november 2024.
Voorbereiding
Als voorkennis wordt bekend verondersteld:
-
Inhoud colleges tot en met deze week. Met name OOP en arrays.
Het eigenlijke werkcollege
Doe
deze opgaven op papier.
Maak allereerst de opgaven 1a en 2a.
Werk verder aan de derde programmeeropgave.
Zie ook de tips bij het zevende werkcollege.
Vergeet niet een constructor te maken,
die bijvoorbeeld de Life-wereld "schoon" maakt.
-
Zorg er allereerst voor dat het menu werkt,
zie zoals gezegd het zevende werkcollege.
Maak in het menu eenmalig een object MijnLife van klasse (class) life. Let goed op waar je dit doet. (Als je dit object moet doorgeven, bijvoorbeeld aan een submenu, vergeet dan niet dat dit call-by -reference moet.)
- Maak de memberfunctie(s) maakschoon ( ): de hele wereld of alleen de "view"?
- En zorg er voor dat de memberfuncties afdrukken ( ) en vulrandom ( ) in orde zijn, zie sheet 3–10 van het achtste college.
Hoe gaat de "cursor" werken (zie ook later)? Hoe gebruik je de randomgenerator van sheets 9 en 10 op een redelijke manier?
- Denk er bij de optie "Een" aan de volgende generatie eerst in een andere wereld te berekenen,
en deze dan in zijn geheel terug te kopiëren.
Test de werking bijvoorbeeld ook door een "hard-coded" glider te laten bewegen.
- Maak de optie "Gaan",
die een flink aantal (een member-variabele) keren "Een" doet.
- Laat de grootte van de view aanpassen.
Gebruik leesOptie en leesGetal,
deze laatste om bijvoorbeeld de nieuwe hoogte in te lezen.
Dit gebeurt in het Parameter-menu.
- En laat de symbolen voor levende en dode cel aanpassen.
Dwing af dat ze verschillend zijn. Membervariabelen! Memberfuncties!
- Maak de "view" helemaal in orde.
Kan deze verplaatst worden? Stapgrootte?
- Werkt het wijzigen van het random-percentage?
Membervariabele! Memberfunctie!
-
Maak nu het toggelen onder de "cursorpositie"; dit is een eenregelige functie (tip: b = ! b;). De cursorpositie bestaat uit twee membervariabelen; let erop of deze altijd corresponderen met een punt binnen de wereld, en laat de functie afdrukken ( ) de positie netjes in beeld brengen.
- Maak ook het "verplaatsen" van de cursor.
- Lees de glidergun in uit een
file.
- Maak tot slot de andere opties af.
Huiswerk
Maak opgaven met arrays uit de
opgavenbundel
(Opgaven 31 tot en met 36).
De antwoorden op de opgaven worden tevens via WWW verspreid,
evenals de uitwerkingen van oude tentamens.
Als er vragen over de opgaven zijn, laat het weten.