Archive:Debugging challenges: Difference between revisions
| Line 31: | Line 31: | ||
for (i=1; i<8; ++i) | for (i=1; i<8; ++i) | ||
{ | { | ||
document.write(weekdays[i] + " | document.write(weekdays[i] + ", "); | ||
} | } | ||
</script> | </script> | ||
Revision as of 03:46, 21 May 2007
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 Set 4 - Logic Errors
These are errors introduced Through faulty design. Once again, the syntax is correct, but the results are unexpected. These are the hardest errors to spot, and often the most expensive to correct.
<script type="text/javascript">
document.write("counting from 1 to 10... ");
for (i=1; i<11; i+=1)
{
document.write(++i + ' ');
}
</script>