- Begin pas aan deze oefeningen als je de oefeningen van week 1 vlot kan oplossen.
- Deze week komen geneste lussen en grotere programma’s aan bod. Kan je ze oplossen, dan heb je hoofdstuk 6 in de vingers. Bekijk zeker het Wiskunde-quizprogramma!
- Let op Ook hier geen
continue, enbreakenkel in eenswitchof bij zoek-en-stop (zie het boeteblad). - In de voorbeelduitvoer begint gebruikersinvoer met
>.
Tafels van supervermenigvuldigen (Essential)
Gebruik de kracht van geneste loops om pijlsnel alle tafels van vermenigvuldigen op het scherm te tonen van de getallen 1 tot en met n: dus 1 x 1, 1 x 2, …, 1 x n, 2 x 1, 2 x 2, …, 2 x n, tot en met n x n.
Tot en met welk getal?
>3
1 x 1 = 1
1 x 2 = 2
1 x 3 = 3
2 x 1 = 2
2 x 2 = 4
2 x 3 = 6
3 x 1 = 3
3 x 2 = 6
3 x 3 = 9
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.
Deel 2. Toon nu de tafels tot en met 10 van elk getal van 1 tot en met n, maar elke tafel horizontaal. Typt de gebruiker 8, dan verschijnt er:
1x1=1,2x1=2,3x1=3,4x1=4,5x1=5,6x1=6,7x1=7,8x1=8,
1x2=2,2x2=4,3x2=6,4x2=8,5x2=10,6x2=12,7x2=14,8x2=16,
...
1x10=10,2x10=20,3x10=30,4x10=40,5x10=50,6x10=60,7x10=70,8x10=80,
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.
Sterrenpatronen (Essential)
Vraag de gebruiker een hoogte en teken een patroon van sterretjes. In Als de inner loop van de outer afhangt zag je al de gewone driehoek. Hier gaan we verder.
Deel 1. Een omgekeerde driehoek. Met hoogte 5:
*****
****
***
**
*
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.
Deel 2. Een rechts uitgelijnde driehoek: eerst spaties, dan sterren. Met hoogte 5:
*
**
***
****
*****
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.
Deel 3 (PRO). Een piramide. Met hoogte 5:
*
***
*****
*******
*********
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.
Tekenen (Essential)
Lees twee getallen in, de breedte en de hoogte. Beide moeten van 2 tot en met 20 zijn: blijf vragen tot dat klopt. Teken daarna een open rechthoek van * met die breedte en hoogte. Met 10 en 4:
Breedte (2 tot en met 20)?
>25
Breedte (2 tot en met 20)?
>10
Hoogte (2 tot en met 20)?
>4
* * * * * * * * * *
* *
* *
* * * * * * * * * *
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.
Priemgetallen
Een priemgetal is een getal groter dan 1 dat enkel deelbaar is door 1 en door zichzelf. 2, 3, 5, 7, 11 en 13 zijn priemgetallen, 9 niet (9 = 3 x 3).
Deel 1. Vraag een getal en toon of het een priemgetal is.
Geef een getal:
>97
97 is een priemgetal.
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.
Deel 2. Toon alle priemgetallen van 1 tot en met n.
Tot en met welk getal?
>30
2 3 5 7 11 13 17 19 23 29
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.
Zodra je één deler gevonden hebt, weet je genoeg: het getal is geen priemgetal. Daarom staat isPriem mee in de lusvoorwaarde, en stopt de lus vanzelf. Dit is het zoek-en-stop-patroon, en daar mag volgens het boeteblad ook een break. Toch is de bool in de voorwaarde de nettere keuze: wie de for leest, ziet meteen wanneer ze stopt. Zie break in geneste loops.
Hoger Lager (Essential)
Het klassieke raadspel tegen de computer, in drie delen.
Deel 1. Het programma kiest een willekeurig getal van 1 tot en met 100. De gebruiker gokt, en het programma zegt of het getal hoger of lager ligt. Dat blijft doorgaan tot de gok juist is, of tot de gebruiker opgeeft door een negatief getal te typen. Op het einde toont het programma hoeveel beurten er nodig waren.
Aan welk getal denk ik? (negatief getal om te stoppen)
>50
Hoger!
Aan welk getal denk ik? (negatief getal om te stoppen)
>75
Hoger!
Aan welk getal denk ik? (negatief getal om te stoppen)
>82
Juist! Je had 3 beurt(en) nodig.
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.
Deel 2. De gebruiker krijgt nu hoogstens 7 beurten. Zijn ze op, dan toont het programma het getal.
Denkvraag: waarom net 7? Met een slimme strategie heb je nooit meer nodig. Welke strategie is dat?
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.
Deel 3. Vraag na elk spel of de gebruiker nog eens wil spelen (j of n). Elk nieuw spel trekt een nieuw getal.
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.
Wiskundequiz (Essential)
Maak een applicatie waarmee je de tafels van vermenigvuldigen oefent. Het programma vraagt telkens een willekeurige vermenigvuldiging van twee getallen van 1 tot en met 10, en de gebruiker typt de uitkomst. Is ze juist, dan volgt de volgende vraag. Bij een fout stopt het programma en toont het hoeveel keer de gebruiker juist antwoordde.
Hoeveel is 7 x 4?
>28
Goed zo!
Hoeveel is 10 x 6?
>66
Fout, het was 60.
Je had 1 keer juist.
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.
Wiskundequiz met levels (Essential)
Bouw levels in de wiskundequiz. Je start in level 1, en per 5 juiste antwoorden stijg je een level. Het level bepaalt hoe groot de getallen zijn: de getallen gaan van 1 tot en met 5 keer het level. In level 1 dus van 1 tot en met 5, in level 2 tot en met 10, in level 3 tot en met 15, enzovoort.
Level 1: hoeveel is 4 x 3?
>12
Goed zo!
...
Level 1: hoeveel is 2 x 1?
>2
Goed zo!
LEVEL UP! Je zit nu in level 2.
Level 2: hoeveel is 8 x 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.
PRO. Bij een fout antwoord stopt het spel niet meer meteen. De gebruiker zakt een level (maar nooit onder level 1). Pas na 3 foute antwoorden stopt het spel.
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.
Wiskunde-quizprogramma
Combineer de wiskundequiz met levels met een menu zoals in Codemenu. Het menu verschijnt bij de start, en de gebruiker kiest wat hij wil doen:
- Gewoon spelen, vanaf level 1.
- Starten op een bepaald level: de gebruiker typt daarna het level.
- Studeren: de oplossing wordt telkens getoond, en de gebruiker hoeft niets in te typen. Er verschijnen 10 opgaven van level 1, elke 5 seconden een nieuwe. Met
System.Threading.Thread.Sleep(5000)pauzeer je je programma 5 seconden (5000 ms).
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.
Steen schaar papier (Essential)
Maak een applicatie waarmee de gebruiker steen-schaar-papier speelt tegen de computer. De gebruiker typt steen, schaar of papier en drukt op enter. Daarna kiest de computer willekeurig steen, schaar of papier. De winnaar van de ronde krijgt 1 punt:
- Steen wint van schaar, verliest van papier.
- Papier wint van steen, verliest van schaar.
- Schaar wint van papier, verliest van steen.
- Kiezen beide hetzelfde, dan krijgt niemand een punt.
Na elke ronde toont het programma wie de ronde won en wat de tussenstand is. Wie als eerste 5 punten haalt, wint.
Teken eerst een flowchart van je applicatie.
Los dit op met een enum: je code wordt een pak leesbaarder. De keuze van de computer is dan een willekeurig getal van 0 tot en met 2 dat je naar je enum cast. Een enum begint immers bij 0.
Steen, schaar of papier?
>steen
Ik koos Schaar.
Jij wint deze ronde!
Tussenstand: jij 1, ik 0
Steen, schaar of papier?
>papier
Ik koos Papier.
Gelijkspel! Niemand krijgt een punt.
Tussenstand: jij 1, ik 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.
BeerSong
Schrijf een BeerSong-generator die onderstaande tekst toont. Merk op dat de laatste strofen anders zijn:
99 bottles of beer on the wall, 99 bottles of beer.
Take one down and pass it around, 98 bottles of beer on the wall.
98 bottles of beer on the wall, 98 bottles of beer.
Take one down and pass it around, 97 bottles of beer on the wall.
97 bottles of beer on the wall, 97 bottles of beer.
Take one down and pass it around, 96 bottles of beer on the wall.
...
3 bottles of beer on the wall, 3 bottles of beer.
Take one down and pass it around, 2 bottles of beer on the wall.
2 bottles of beer on the wall, 2 bottles of beer.
Take one down and pass it around, 1 bottle of beer on the wall.
1 bottle of beer on the wall, 1 bottle of beer.
Take it down and pass it around, no more bottles of beer on the wall.
No more bottles of beer on the wall, no more bottles of beer.
Go to the store and buy some more, 99 bottles of beer on the wall.
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.
De slag om Helm’s Deep (Final Essentials)
Tijdens de slag om Helm’s Deep houden Legolas en Gimli een wedstrijd: wie verslaat de meeste vijanden? Schrijf een programma dat deze heroïsche strijd bijhoudt, met een gebruiksvriendelijke interface in kleur.

Het programma blijft vragen tot de gebruiker EINDE typt:
- Wie heeft er een vijand verslagen? (
LegolasofGimli). TypEINDEom de strijd te stoppen en de balans op te maken. - Wat voor vijand was het? (
Orc,Uruk-haiofTroll). Deze vraag komt enkel als er geenEINDEgetypt werd.
Puntenverdeling:
- Een Orc is 1 punt waard.
- Een Uruk-hai is 3 punten waard.
- Een Troll is 5 punten waard.
Speciale regels (The Extended Edition):
- Kill streak: houd bij wie de vorige kill maakte. Maakt dezelfde held 3 kills na elkaar, dan krijgt hij bij die derde kill 10 bonuspunten bovenop de punten van de vijand, met een speciale melding (bv. “Legolas is on fire!”). Daarna begint de telling opnieuw: de zesde kill op rij geeft weer bonus, de negende ook.
- Kleuren:
- Groene tekst als Legolas scoort.
- Rode tekst als Gimli scoort.
- Gewone grijze tekst voor de vragen.
- Een onbekende held of een onbekende vijand levert een melding op, en geen punten.
Einde van de strijd: na EINDE toont het programma een rapport:
- De totaalscore van Legolas en van Gimli.
- Wie de winnaar is.
- Hoeveel vijanden ze samen versloegen.
- Hoeveel procent van alle punten Legolas verdiende, met 2 cijfers na de komma.
Wie maakte de kill? (Legolas, Gimli of EINDE)
>Legolas
Wat voor vijand? (Orc, Uruk-hai of Troll)
>Orc
Legolas versloeg een Orc! +1
Wie maakte de kill? (Legolas, Gimli of EINDE)
>Legolas
Wat voor vijand? (Orc, Uruk-hai of Troll)
>Troll
Legolas versloeg een Troll! +5
Wie maakte de kill? (Legolas, Gimli of EINDE)
>Legolas
Wat voor vijand? (Orc, Uruk-hai of Troll)
>Uruk-hai
Legolas versloeg een Uruk-hai! +3
Legolas is on fire! +10 bonuspunten!
Wie maakte de kill? (Legolas, Gimli of EINDE)
>Gimli
Wat voor vijand? (Orc, Uruk-hai of Troll)
>Troll
Gimli versloeg een Troll! +5
Wie maakte de kill? (Legolas, Gimli of EINDE)
>EINDE
=== EINDRAPPORT ===
Legolas: 19 punten
Gimli: 5 punten
Legolas wint de wedstrijd!
Samen versloegen ze 4 vijanden.
Legolas verdiende 79,17% van de punten.
- Je hebt een variabele nodig die onthoudt wie de vorige kill maakte, en een teller voor de streak.
- Vergeet niet
Console.ResetColor()te gebruiken na een gekleurde boodschap.
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.
Become Neo
Een bonusoefening om af te sluiten.

Volgende code genereert een beeld zoals in de cultfilm The Matrix (1999). De lus is bewust oneindig: je stopt het programma door het venster te sluiten.
Random rangen = new Random();
Console.ForegroundColor = ConsoleColor.Green;
while (true)
{
//Genereer nieuw random teken:
char teken = Convert.ToChar(rangen.Next(62, 400));
//Zet teken op scherm
Console.Write(teken);
//10 ms pauze tussen ieder frame (pas gerust aan)
System.Threading.Thread.Sleep(10);
//Af en toe donker kleurtje
if (rangen.Next(0, 3) == 0)
{
Console.ForegroundColor = ConsoleColor.DarkGreen;
}
else
{
Console.ForegroundColor = ConsoleColor.Green;
}
}Vul de code aan zodat de tekens willekeurige kleuren krijgen. Kan je het nog cooler 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.