In deze oefening wordt gevraagd om het gemiddelde van twee getallen te berekenen. De oplossing van het probleem werd voor jou geprogrammeerd. Jammer genoeg niet foutloos.

Naar de debugger

Wanneer je de oplossing opent in de Sandbox, dan zie je naast de knop Uitvoeren de knop Debuggen staan. Herken je het symbool voor de-bug-ger?

Knop debuggen

knop debuggen

Klik op de knop. Er wordt nu gevraagd om twee getallen op te geven. Geef bijvoorbeeld 3 en 5 op. Het programma geeft geen uitvoer omdat het meerdere fouten bevat. Rechts in de Sandbox vind je nu de debugger. Met de pijltjes kan je stap voor stap het programma uitvoeren.

Debugger

Debugger

Uitvoeringsfout in de debugger

In de Debugger zie je dat Dodona een geheugenplaats reserveert in het geheugen: daar worden een waarde bewaart. Er is geheugenplaats gereserveerd voor de variabelen getal_1, getal_2. Maar al vlug toont Dodona een foutmelding. Wanneer je naar de inhoud van het geheugen kijkt, moet je iets opvallen.

Debugger

Uitvoerfout in de debugger

Ontwerpfout in de debugger

Als je de bovenstaande uitvoeringsfout oplost en opnieuw je programma laat debuggen, dan geraak je een stap verder. Er wordt nu ook geheugenplaats gereserveerd voor de variabele gemiddelde. Je merkt ook onmiddellijk op dat de waarde van gemmiddelde foutief berekend werd: een ontwerpfout.

Ontwerpfout

Ontwerpfout in de debugger

Syntactische fout in de debugger

Als je de bovenstaande ontwerpfout oplost en je programma laat debuggen, dan geraak je opnieuw een stap verder. De debugger detecteert nu een syntactische fout en toont een foutmelding. In het programma werd de print()-functie met een hoofdletter geschreven. De programmeur heeft het ook nagelaten om deze fout voor het testen te verbeteren. In de Sandbox werd deze fout nochtans in het rood onderstreept.

Syntaxfout

Syntactische fout in de debugger

Opgave

Open het onderstaande programma in de Sandbox. Verbeter de syntactische fout, uitvoeringsfout en ontwerpfout. Leer de debugger gebruiken! Laat Dodona je code uitgebreid testen.