Archive:Debugging challenges
These debugging challenges are written in JavaScript, and designed to complement the units: ICAB4225A Automate processes and ICAT4221A Locate equipment, system and software faults
Challenge Set 1 - Lexical Errors
Lexical errors are introduced when the programmer enters symbols that are not part of the programming language. Unlike when you misspell a word in English, this inevitably leads to a breakdown in programming communications. See if you can see (or find) the lexical errors in the following code snippets...
<script type="text/javascript">
var num1 = 2;
var num2 = 3;
var product = num1 x num2;
alert("the product of " + num1 + " and " + num2 + " is " + product);
</script>
Challenge Set 2 - Syntactic Errors
A syntax error occurs when you use the right symbols, but in a way that doesn't make sense to the compiler or interpreter. Something like the English sentence: "You don't program good"
<script type="text/javascript">
var x;
x=prompt("What is 5 x 5?");
while (x != 25) do
{
alert("Wrong answer");
x=prompt("What is 5 x 5?",0);
}
document.write("Right, the answer is " + x)
</script>
Challenge Set 3 - Execution Errors
Execution errors are impossible requests made in perfectly correct programming terms.
<script type="text/javascript">
var weekdays=new Array("Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday")
for (i=1; i<8; ++i)
{
document.write(weekdays[i] + "
");
}
</script>
Challenge 4 - Logic Errors
These are errors introduced Through faulty design. Once again, the syntax is correct, but the results are unexpected
<script type="text/javascript">
document.write("counting from 1 to 10... ");
for (i=1; i<11; i+=1)
{
document.write(++i + ' ');
}
</script>