- Let op Schakel IntelliCode en Copilot uit voor je begint (hoe?).
- Maak per oefening een nieuwe solution aan, tenzij de opgave zegt dat je in een bestaande verderwerkt. Zo kan je later makkelijk terugkeren naar een specifieke oefening.
- Kijk pas naar de oplossing als je helemaal klaar bent, en vergelijk dan kritisch. Twijfel je bij het vergelijken met de modeloplossing, vraag het dan aan je lector.
- Zit je vast bij een oefening? Klik onder de opgave op Coach en kopieer de prompt naar een nieuw gesprek in ChatGPT, Copilot Chat of Claude, in je browser (Copilot in Visual Studio blijft uit). Die A.I. kent de oefening en weet welke leerstof je al gezien hebt. Hij geeft je geen code en geen oplossing, enkel vragen en hints.
- Vertel de coach wat je al hebt en waar je vastzit, en plak gerust je code of de foutmelding erbij. Hij kijkt je code ook na op de boetes. Begin voor elke oefening een nieuw gesprek.
- In de voorbeelduitvoer begint gebruikersinvoer met
>. Die>typ je zelf niet: hij toont enkel wat de gebruiker intypt.
Wie ben ik (Essential)
Schrijf een applicatie die onder elkaar volgende informatie op het scherm toont, gebruikmakend van WriteLine():
- Je voornaam en achternaam.
- De stad waar je woont.
- Je leeftijd.
Voorbeeld van de output:
Vincent Van Camp
Boom
38
Daarna: maak je programma stuk. Werkt je programma, breek het dan bewust, telkens op één plek. Kijk wat Visual Studio doet, schrijf de foutboodschap uit de Error List over en herstel de fout voor je aan de volgende begint:
- Haal de puntkomma achter je eerste lijn weg.
- Schrijf
Writeline(met een kleinel) in plaats vanWriteLine. - Haal het laatste aanhalingsteken rond je stad weg.
Druk bij minstens één van de drie toch op de groene startknop, en lees goed wat Visual Studio je dan vraagt voor je iets aanklikt.
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.
Fake GPT (Essential)
Schrijf een programma dat de gebruiker om een vraag vraagt en vervolgens een antwoord geeft. Je Fake GPT begrijpt niets van de vraag: hij herhaalt ze enkel, zodat het lijkt alsof hij luistert, en zegt daarna altijd hetzelfde: “Dat is een interessante vraag! Ik zal er eens over nadenken en later op terugkomen.”
Voorbeeld output:
Wat is je vraag?
>Wonen er Marsmannetjes op Mercurius?
Wonen er Marsmannetjes op Mercurius? Dat is een interessante vraag! Ik zal er eens over nadenken en later op terugkomen.
Wat ReadLine inleest, bewaar je in een variabele. Zonder variabele is de vraag van de gebruiker meteen weer weg, en kan je ze niet herhalen.
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.
Visitekaart (Essential)
Schrijf een programma dat aan de gebruiker de volgende zaken vraagt:
- Voornaam
- Achternaam
- Adres
- Hobby
Toon daarna een visitekaartje: elk antwoord op een eigen lijn, met een label ervoor (Naam:, Adres: en Hobby:). Voornaam en achternaam komen samen op één lijn, met een spatie ertussen.
Bijvoorbeeld (tekst die start met > is input van de gebruiker):
Wat is je voornaam?
>Tom
Wat is je achternaam?
>Peeters
Waar woon je?
>Parel van de Kempen
Wat is je hobby?
>fietsen
Goed. Hier volgt je visitekaartje:
Naam: Tom Peeters
Adres: Parel van de Kempen
Hobby: fietsen
Maak het kaartje twee keer:
- Eerst enkel met
WriteenWriteLine, zonder$. MetWriteblijft de cursor op dezelfde lijn staan, zodat het antwoord achter het label komt. - Daarna nog eens, maar nu elke lijn van het kaartje met één
WriteLineen string interpolatie ($).
Beide versies moeten exact dezelfde uitvoer geven.
Een lege lijn toon je met Console.WriteLine();, zonder iets tussen de haakjes.
Write en WriteLine samen, of één WriteLine met $: op het scherm zie je geen verschil. Met $ heb je wel minder lijnen code nodig, en zie je in je code meteen hoe de lijn er op het scherm zal uitzien.
Let in de eerste versie op de spatie tussen voor- en achternaam. Die moet je zelf tonen, binnen aanhalingstekens.
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.
Verhaaltjesmaker (Essential)
Schrijf een programma dat de gebruiker om vier woorden vraagt: een kleur, een eten, een dier en een stad. Daarna maakt je programma er een verhaaltje mee. Dat verhaaltje ziet er altijd zo uit:
Er was eens een [dier] uit [stad]. Elke dag at hij [eten], en alles in zijn huis was [kleur].
Op de plaats van [dier] komt wat de gebruiker antwoordde op de vraag naar een dier, op de plaats van [stad] de stad, enzovoort. Let op: het verhaaltje gebruikt de antwoorden in een andere volgorde dan je ze vraagt.
Voorbeeld (tekst die start met > is input van de gebruiker):
Geef een kleur:
>paars
Geef een eten:
>lasagne
Geef een dier:
>giraf
Geef een stad:
>Boom
Er was eens een giraf uit Boom. Elke dag at hij lasagne, en alles in zijn huis was paars.
Ieder antwoord van de gebruiker bewaar je in een aparte string variabele, met een naam die zegt wat erin zit. In welke volgorde je die variabelen daarna gebruikt, kies je zelf. In deel 2 zie je wat er gebeurt als een naam niet klopt met wat erin zit.
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: Stevens verhaaltje. Stagiair Steven maakte dezelfde oefening. Zijn code compileert zonder fouten, en toch klopt zijn uitvoer niet met het voorbeeld hierboven:
Console.WriteLine("Geef een kleur:");
string kleur = Console.ReadLine();
Console.WriteLine("Geef een eten:");
string eten = Console.ReadLine();
Console.WriteLine("Geef een dier:");
string stad = Console.ReadLine();
Console.WriteLine("Geef een stad:");
string dier = Console.ReadLine();
Console.WriteLine();
Console.WriteLine($"Er was eens een {dier} uit {stad}. Elke dag at hij {eten}, en alles in zijn huis was {kleur}.");Wat toont zijn programma als de gebruiker dezelfde antwoorden geeft als in het voorbeeld? Waar zit de fout? Probeer het eerst te vinden zonder de code uit te voeren.
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.
Frituur in volgorde
Deze lijnen code horen bij een programma voor een frituur, maar ze zijn door elkaar geraakt. Bovendien is er één lijn bij geslopen die er niet in thuishoort.

string saus = Console.ReadLine();
Console.WriteLine($"Bedankt {naam}! Een {snack} met {saus} komt eraan.");
Console.Write("Welke snack wil je? ");
Console.WriteLine();
string naam = Console.ReadLine();
Console.WriteLine("Welkom bij frituur 't Frietje!");
Console.WriteLine("Bedankt {naam}! Een {snack} met {saus} komt eraan.");
Console.Write("En welke saus? ");
string snack = Console.ReadLine();
Console.Write("Wat is je naam? ");Zet de lijnen in de juiste volgorde, zodat het programma exact onderstaande uitvoer geeft. Welke lijn is de indringer, en waarom hoort ze er niet bij? Doe het eerst op papier en test daarna pas in Visual Studio.
Welkom bij frituur 't Frietje!
Wat is je naam? Anissa
Welke snack wil je? bicky
En welke saus? samurai
Bedankt Anissa! Een bicky met samurai komt eraan.
Anissa, bicky en samurai typt de gebruiker zelf in. Omdat de vragen met Write op het scherm komen, verschijnt het antwoord op dezelfde lijn als de vraag.
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.
Voorspel de uitvoer (Essential)
Voer onderstaande code nog niet uit. Schrijf eerst op papier exact op wat er op het scherm zal verschijnen: elke letter, elke spatie en elke nieuwe lijn. Wanneer het programma op invoer wacht, typt de gebruiker Sara en drukt op enter.
Console.Write("Hallo");
Console.WriteLine("wereld");
Console.Write("Wie ben jij? ");
string naam = Console.ReadLine();
Console.Write("Dag ");
Console.WriteLine("naam");
Console.WriteLine($"Dag {naam}!");
Console.WriteLine("Dag {naam}!");
Console.Write("Tot" );
Console.WriteLine( "ziens");
Console.WriteLine();
Console.WriteLine("Einde");Voer de code daarna uit en vergelijk met wat je opschreef. Klopt een lijn niet, zoek dan uit waar je redenering fout liep voor je naar de oplossing kijkt.
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.
Stevens begroeting (Essential)
Stagiair Steven moest een programma schrijven dat de gebruiker begroet. Hij liet de code door een A.I. schrijven en leverde ze meteen in, zonder ze zelf te testen. Zo zou het programma er moeten uitzien, met de begroeting in het groen en de rest in de gewone kleur:
Wat is je naam?
>Sara
Waar woon je?
>Gent
Dag Sara uit Gent!
Tot ziens.
Dit is wat Steven inleverde:
Console.WriteLine("Wat is je naam?")
string naam = Console.Readline();
Console.WriteLine("Waar woon je?);
string stad = Console.ReadLine();
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("Dag {naam} uit {stad}!");
Console.Write("Tot" );
Console.writeLine("ziens.");Deel 1. Maak een nieuw project en plak Stevens code in Main. Er zitten vier fouten in die Visual Studio vindt. Herstel ze met behulp van de Error List. Let op: één fout geeft soms meerdere meldingen, en sommige fouten verschijnen pas nadat je een andere opgelost hebt.
Deel 2. Nu start het programma, maar de uitvoer is nog niet wat Steven wou. Er zitten nog drie fouten in die de compiler niet ziet. Vergelijk de uitvoer met het voorbeeld hierboven en herstel ze.
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.
Stad kleuren (Essential)
Open terug je “Wie ben ik”-solution. Pas de code aan zodat je stad in rode letters met witte achtergrond wordt getoond. Vergeet niet je kleur terug te resetten naar de standaardkleuren na het tonen van de stad.
Voorbeeld van de output (gebruik je eigen gegevens uiteraard):

Werkt het? Haal dan de lijn met Console.ResetColor(); eens weg en voer opnieuw uit. Wat gebeurt er met je leeftijd? Zet de lijn daarna terug.
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.
Kleurige chat
Maak een nieuwe solution en vertrek van je code van Fake GPT. Geef het gesprek kleur, zoals in een chat-app:
- Alles wat de computer toont, verschijnt in het cyaan (
ConsoleColor.Cyan). - Wat de gebruiker intypt, verschijnt in het geel.
Wat is je vraag?
Wonen er Marsmannetjes op Mercurius?
Wonen er Marsmannetjes op Mercurius? Dat is een interessante vraag! Ik zal er eens over nadenken en later op terugkomen.
Tekst die al op het scherm staat, kan je niet meer van kleur veranderen. Zoek dus uit op welk moment je de kleur voor de invoer moet instellen. Vergeet op het einde niet de kleuren te resetten.
Tekst die de gebruiker intypt, krijgt de voorgrondkleur die op dat moment ingesteld is. Zet je vlak voor de ReadLine de kleur op geel, dan typt de gebruiker in het geel.
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.
Woordenslinger (Essential)
Maak een applicatie die volgende woorden na elkaar op twee lijnen toont, waarbij elk woord in de kleur staat die het woord zelf noemt:
blauwgroenrood
geelroodblauwgroen
De output moet er als volgt uitzien:

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.
Uitbreiding: de Stroop-test. Toon de woorden rood, groen, blauw en geel op één lijn, met een spatie ertussen, maar nu telkens in een andere kleur dan het woord zelf. Noem daarna zo snel mogelijk luidop de kleuren op, niet de woorden. Dat gaat trager dan je denkt: dit heet het Stroop-effect.
rood groen blauw geel
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.
Tekening (Essential)
Kan je volgende afbeelding namaken in de console?

Het schema hieronder toont hoe de tekening in elkaar zit. Elke letter is één spatie: R is een spatie met een rode achtergrond, G een spatie met een groene achtergrond.
RRRRRRR
RRGGGRR
RRGGGRR
RRRRRRR
Waarom staan er links en rechts twee rode spaties, terwijl de rand boven en onder maar één lijn dik is? Een teken in de console is ongeveer twee keer zo hoog als breed. Met twee spaties naast elkaar is de rand links en rechts dus even dik als boven en onder.
Je kan een gekleurd vakje ‘tekenen’ door de BackgroundColor van de console in te stellen en dan een spatie naar het scherm te sturen.
Deze tekening bestaat uit allemaal spaties, waarbij we een combinatie van Write en WriteLine gebruiken, in samenwerking met kleurveranderingen om die spaties op het scherm te zetten.
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. Teken de vlag van Italië: drie verticale banden in het groen, wit en rood. Maak elke band 4 spaties breed en de vlag 4 lijnen hoog.
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. Verzin je eigen tekening: een smiley, een Space Invader, de vlag van je favoriete land… Teken ze eerst op ruitjespapier en tel per lijn hoeveel vakjes van elke kleur je nodig hebt.
Regenboog Ticket (Final Essentials)
Een Final Essentials oefening is een opgave waarin zoveel mogelijk leerstof van de voorbije oefeningen aan bod komt. Je zal voor deze oefeningen vaak wat meer tijd nodig hebben en dus mogelijk niet in het labo kunnen maken.
Maak een nieuwe applicatie “RegenboogTicket”. Deze applicatie vraagt de gebruiker om 3 zaken (telkens als tekst):
- De titel van een film.
- De prijs van een ticket (enkel het getal, bijvoorbeeld
12). - De naam van de bezoeker.
Vervolgens toon je een ticket op het scherm:
- De boven- en onderkant van het ticket zijn lijnen (bijvoorbeeld
------------------------------) met een witte achtergrond en zwarte letters. - Daartussen staan drie lijnen, die beginnen met
Film:,Prijs:enNaam:. Het label staat telkens in de gewone kleur van de console, de waarde erachter in kleur: de filmtitel in het rood, de prijs in het groen en de naam in het blauw. - Achter de prijs komt het woord
euro, in dezelfde kleur als de prijs. - De drie lijnen tussen boven- en onderkant hebben de gewone achtergrond van de console. Stel die niet zelf in op zwart, maar gebruik
Console.ResetColor(): niet iedereen heeft een zwarte console.
Zorg ervoor dat na het ticket alles terug in de standaardkleuren staat.
Geef de filmtitel: The Matrix
Geef de prijs: 12
Geef je naam: Neo The One
------------------------------
Film: The Matrix
Prijs: 12 euro
Naam: Neo The One
------------------------------
- De streepjeslijn heb je twee keer nodig. Zet je ze één keer in een variabele, dan pas je ze op één plek aan als je het ticket breder wil. Een variabele hoeft dus niet altijd uit
ReadLinete komen: je kan er ook zelf tekst in stoppen, zoalsstring lijn = "-----";. - Wil je op één lijn meerdere kleuren, dan werk je met
Writeen wissel je tussendoor van kleur. Console.ResetColor()zet de console terug naar de kleuren van de gebruiker. ZelfConsoleColor.Blackinstellen gaat mis bij iemand die een witte console heeft.
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.
Muziek
Deze oefening is een bonus: Console.Beep hoort niet bij de leerstof. Ze werkt enkel op Windows. Op een Mac of onder Linux crasht je programma met een PlatformNotSupportedException, dus daar sla je ze over. In het labo: koptelefoon op.
Met de Console.Beep() methode kan je muziek maken. Volgende voorbeeld toont bijvoorbeeld hoe je do-re-mi-fa-sol-la-si-do afspeelt:
Console.Beep(264, 1000);
Console.Beep(297, 1000);
Console.Beep(330, 1000);
Console.Beep(352, 1000);
Console.Beep(396, 1000);
Console.Beep(440, 1000);
Console.Beep(495, 1000);
Console.Beep(528, 1000);Je geeft aan Beep 2 getallen mee (argumenten):
- De frequentie van de toon die moet afgespeeld worden. Bijvoorbeeld 264 (in Hertz, hz).
- De duur dat de toon moet afgespeeld worden in milliseconden. Als je dus 1000 meegeeft zal de toon gedurende 1000 ms, oftewel 1 seconde, afgespeeld worden.
Open 1 van de eerder gemaakte oefeningen en zorg ervoor dat bij het opstarten ervan er een kort, door jezelf gecomponeerd, introliedje wordt afgespeeld.
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.