A trace table is a technique used to test an algorithm and predict step by step how the computer will run the algorithm. It can be used to understand or predict what an algorithm is doing and to identify potential logic errors (when the program compiles but does not produce the expected output).
The animation below demonstrate the use of a trace table used to track the values of variables as they change while the program is running.
Using a trace table to test an algorithm is called dry run testing.
Your Task
Check the following algorithms and complete their trace tables. (Click on any cells of these tables to add content)
Algorithm #1Algorithm #2Algorithm #3Algorithm #4
Algorithm #1: While Loop
i = 0 j = 10 WHILE i < j i = i + 1 j = j - 1 END WHILE OUTPUT(i) OUTPUT(j)
Trace Table
Line Number | i | j | i < j | OUTPUT | |
---|---|---|---|---|---|
1 | 0 | ||||
2 | 10 | ||||
4 | True | ||||
5 | 1 | ||||
6 | 9 | ||||
4 | True | ||||
… |
Algorithm #2: Factorial
number = 5 factorial = number WHILE number>2 number = number - 1 factorial = factorial * number END WHILE OUTPUT(factorial)
Trace Table
Line Number | number | factorial | number > 2 | OUTPUT | |
---|---|---|---|---|---|
1 | 5 | ||||
2 | 5 | ||||
… |
Algorithm #3: Fizz-Buzz Sequence
FOR i FROM 1 TO 20 IF i MOD 3 == 0 AND i MOD 5 == 0 THEN OUTPUT "Fizz-Buzz" ELSE IF i MOD 3 == 0 THEN OUTPUT "Fizz" ELSE IF i MOD 5 == 0 THEN OUTPUT "Buzz" ELSE OUTPUT i END IF NEXT i OUTPUT("The End")
Trace Table
Line Number | i | i MOD 3 == 0 | i MOD 5 == 0 | OUTPUT | |
---|---|---|---|---|---|
1 | 1 | ||||
2 | False | False | |||
4 | False | ||||
6 | False | ||||
8 | |||||
9 | 1 | ||||
1 | 2 | ||||
… |
Algorithm #4: Max Function
FUNCTION max(a, b) IF a>b THEN RETURN a ELSE RETURN b END IF END FUNCTION number1 = 7 number2 = 12 number3 = max(number1, number2) OUTPUT(number3)
Trace Table
Line Number | number1 | number2 | number3 | a | b | a>b | RETURN | OUTPUT | |
---|---|---|---|---|---|---|---|---|---|
9 | 7 | ||||||||
10 | 12 | ||||||||
11 | 7 | 12 | |||||||
1 | 7 | 12 | |||||||
… |