Bijna niemand kan een programma schrijven dat van de eerste keer juist is. Fouten uit een programma kunnen halen is daarom zeer belangrijk.
Oefening 7: Debuggen
Opgave
We hebben een smiley voor jou getekend maar er is precies een fout in het programma geslopen. Kan jij het programma repareren? Hiervoor moet je het programma eerst proberen te begrijpen. We zullen je vragen om eigen blokken te maken om het programma te vereenvoudigen. In onderstaand filmpje zie je alvast hoe de smiley er zou moeten uit zien.
Het eindresultaat
Project
In dit project zorg je ervoor dat:
- je eigen blokken maakt die de verschillende delen van de smiley tekenen
- de code van het foute oog aangepast wordt zodat de smiley eruit ziet zoals in het filmpje
Stappenplan
Stap 1
Voer eerst het programma eens uit. Kan je de verschillende figuren benoemen die getekend worden?
Bekijk nu de code. Wat een blokken, he? Zie je dat op verschillende plaatsen de pen eerst wordt neergezet en dan een aantal blokken later weer wordt opgenomen? Dit patroon geeft telkens aan wanneer een figuur getekend wordt.
Dit wil dus zeggen dat het blok
pen down;
telkens het begin van de figuur en het blok
pen up;
telkens het einde van de figuur aangeeft.
Bekijk het programma nu eens opnieuw en probeer te bedenken welk deel van het programma verantwoordelijk is voor het tekenen van welke figuur.
Stap 2
Nu kan je het programma opdelen in kleinere delen. Om dit op een georganiseerde manier te doen kan je eigen blokken maken. Heb je bijvoorbeeld de code gevonden die het oog tekent, maak dan een eigen blok “teken oog”. Doe dit voor alle figuren!
Stap 3
Heb je de code gevonden die het vierkant tekent? Goed zo! Je hebt al een eigen blok dat een oog tekent. Gebruik dit nu om beide ogen te tekenen. Zorg er voor dat je de smiley tekent zoals in het filmpje.
Evaluatie
- Heb je het tweede oog goed kunnen tekenen?
- Kan je bepaalde dingen nog wat vereenvoudigen?
Oplossing
De oplossing vind je hier!
Wow! Jij hebt onze fouten kunnen oplossen. Erg goed! Er wachten nog een paar oefeningen op jou. Kom je mee?