Wat is Tracetabel (desk check)?

Een tabel waarin wordt bijgehouden hoe de waarden van variabelen veranderen als een programma met de hand regel voor regel wordt uitgevoerd. Ze wordt gebruikt om het aantal herhalingen en de eindwaarden te controleren en om fouten op te sporen. Omdat het op papier gebeurt, heet het ook een desk check.

Japanse benaming: トレース表

“Tracetabel (desk check)” komt voor in 1 oefenvragen uit 1 onderwerpen, bijv. Basis van programmeren (pseudocode traceren).

Vakgebied: Basis van programmeren (pseudocode traceren)

Een tracetabel maken

Zet de variabelen en de waarheidswaarden van voorwaarden als kolommen neer en vul hun waarden rij voor rij in, in de volgorde van uitvoering. Voor een programma dat begint met x ← 1 en x ← x × 3 herhaalt zolang x < 100, verandert de kolom x in 1, 3, 9, 27, 81, 243, en wordt de voorwaarde bij de zesde test onwaar. Als je alleen de variabelen noteert waarvan de waarde verandert, blijft de tabel overzichtelijk.

Waar fouten ontstaan

De eerste en de laatste herhaling gaan bij het traceren het makkelijkst fout. Controleer of de eindwaarde van een for-lus wordt meegenomen, wanneer de voorwaarde van een while-lus wordt getest en of array-indexen bij 1 of 0 beginnen. Toekenningen worden van boven naar beneden uitgevoerd, dus bedenk dat na x ← y de oorspronkelijke waarde van x verdwenen is als y ← x wordt uitgevoerd.

Recursieve aanroepen traceren

Elke recursieve aanroep krijgt een eigen set argumenten en lokale variabelen. Als je de aanroepen als een boom tekent en bij elk knooppunt de argumenten en de retourwaarde van die aanroep noteert, zijn het aantal aanroepen en de retourwaarden makkelijk te tellen. De boom laat ook zien hoe de volgorde van de uitvoer verandert, afhankelijk van of een waarde vóór of na de recursieve aanroepen wordt afgedrukt.

Veelgestelde vragen

Wat is het verschil tussen traceren en een programma stap voor stap doorlopen in een debugger?

Beide volgen het gedrag regel voor regel, maar een tracetabel wordt door een mens op papier gemaakt, terwijl een debugger het programma echt uitvoert en het onderweg pauzeert. Bij een examen is er geen omgeving om programma's uit te voeren, dus het vermogen om met een tracetabel te controleren is essentieel.

Moet een lange lus helemaal worden getraceerd?

Als je de eerste paar herhalingen traceert om het patroon te vinden in hoe de waarden veranderen, kun je de rest vaak uitrekenen. Controleer wel altijd de laatste herhaling en de stopvoorwaarde om off-by-one-fouten te voorkomen.

“Tracetabel (desk check)” in de toelichting

Vragen met “Tracetabel (desk check)” (1)

  1. Het volgende programma vermenigvuldigt x herhaaldelijk met 3. Wat is de waarde van n nadat het is uitgevoerd?

Verwante termen

Afrondingsfout Argument Array Bitsgewijze bewerking (bitwise operation) Controlestructuur Gehele deling (integer division) Kortsluitevaluatie (short-circuit evaluation) Modulo-operatie Objectgeoriënteerd programmeren Off-by-one-fout

Naar de woordenlijst