ME 142 Engineering Computation I Debugging Techniques.

29
ME 142 Engineering Computation I Debugging Techniques

Transcript of ME 142 Engineering Computation I Debugging Techniques.

Page 1: ME 142 Engineering Computation I Debugging Techniques.

ME 142Engineering Computation I

Debugging Techniques

Page 2: ME 142 Engineering Computation I Debugging Techniques.

Key Concepts

Types of Program Errors Debugging Tools & Techniques Testing VBA Help Facility

Page 3: ME 142 Engineering Computation I Debugging Techniques.

Types of Programming Errors

Page 4: ME 142 Engineering Computation I Debugging Techniques.

Types of Programming Errors

Syntax Errors Run-Time Errors Logic Errors

Page 5: ME 142 Engineering Computation I Debugging Techniques.

Syntax Errors

Syntax errors occur when the rules of the programming language are violated.

Examples: Misspelling a keyword or function name Omission of necessary keywords in a command.

Page 6: ME 142 Engineering Computation I Debugging Techniques.

Run-Time Errors

Runtime errors are those errors that occur when a program free of syntax errors, runs and generates an error.

Examples: Attempting an invalid operation such as division

by zero Providing the wrong data type to a function.

Page 7: ME 142 Engineering Computation I Debugging Techniques.

Logic Errors

Logic errors are due to incorrect program logic.

The program may run without errors The results it returns are inaccurate. Often the most difficult to locate

Page 8: ME 142 Engineering Computation I Debugging Techniques.

Debugging Tools & Techniques

Page 9: ME 142 Engineering Computation I Debugging Techniques.

Debugging Tools & Techniques

MsgBox Function Debug.Print Statement Debug Mode

Page 10: ME 142 Engineering Computation I Debugging Techniques.

MsgBox Statement

Place MsgBox statement in your code as desired

Causes the value of the variables to be immediately displayed in a dialog box and pauses execution of program

Example:

MsgBox (“A = “ & A)

Page 11: ME 142 Engineering Computation I Debugging Techniques.

Debug.Print Statement

Place Debug.Print statement in your code as you would MsgBox function

Causes the value of the variables to be printed in the Immediate window

Example:

Debug.Print A,B,C

Page 12: ME 142 Engineering Computation I Debugging Techniques.

Debug.Print Statement

Page 13: ME 142 Engineering Computation I Debugging Techniques.

Debug Mode

Allows you step through your program and examine the value of variables at specific points

May step through line-by-line or set specific breakpoints

Page 14: ME 142 Engineering Computation I Debugging Techniques.

Debug Mode When a run-time error occurs may enter

Debug Mode by selecting button on dialog box that appears:

Page 15: ME 142 Engineering Computation I Debugging Techniques.

Debug Mode Once in Debug Mode

may mouse-over a variable to find its current value:

Page 16: ME 142 Engineering Computation I Debugging Techniques.

Debug Mode May also hit the F8 key to single step

through the program Each time the F8 key is hit, one line of code

is executed:

Page 17: ME 142 Engineering Computation I Debugging Techniques.

Debug Mode May also set a breakpoint by clicking in the

gray column on the left side of the line of code you want to program to pause on

Click on run (from menu above) to cause the program to resume

Page 18: ME 142 Engineering Computation I Debugging Techniques.

Debug Mode Another powerful feature

to use in conjunction with the previous techniques is the Locals Window

It displays the current value of all local variables in your program

Page 19: ME 142 Engineering Computation I Debugging Techniques.

Testing

Page 20: ME 142 Engineering Computation I Debugging Techniques.

Testing Deadly Misconception of Beginning

Programmers: If a program runs without errors, the results must

be correct Very important that before you use your

program to make engineering decisions (or turn it in to get a grade in class) that you perform a series of test to make certain that the output is correct.

Page 21: ME 142 Engineering Computation I Debugging Techniques.

Testing Suggestions

Compare your results to that of a simple, known problem by using a calculator or Excel

Test a typical range of inputs Test unusual but valid data Test extreme values

Page 22: ME 142 Engineering Computation I Debugging Techniques.

More Suggestions to Help Eradicate Program Bugs

Use VBA’s debugger tool Structure your program with indentation for loops and if

statements Keep your programs simple and small. Break up large

programs into smaller programs where appropriate. Use the Option Explicit statement at the beginning of your

modules to force you to define every variable used in your program

Use the macro recorder to help identify unfamiliar properties and methods.

Page 23: ME 142 Engineering Computation I Debugging Techniques.

VBA Help Facility

Page 24: ME 142 Engineering Computation I Debugging Techniques.

In Class Activity

Use the debugger to debug the program provided

Your result should be:

Page 25: ME 142 Engineering Computation I Debugging Techniques.

Sub cylvol()' Calculates the volume of a cylinder' Input: diameter and height' Output cylinder volume

' Input the diameter and height h = Range("B2").Value d = Range("C2").Value

' Calculate the volume vol = Pi * (d ^ 2 / 2) * h

'Round and output the volume vol = Round(vol, 2) Range("D4").Value = volume

End Sub

Page 26: ME 142 Engineering Computation I Debugging Techniques.

Review Questions

Page 27: ME 142 Engineering Computation I Debugging Techniques.

Review QuestionProgramming Errors

Which of the following is an example of a runtime error:

A. Misspelled keyword

B. Division by zero

C. Inaccurate results

D. All of the above

Page 28: ME 142 Engineering Computation I Debugging Techniques.

Review QuestionDebugging Tools & Techniques

Which debugging tool/technique gives you the greatest amount of power/flexibility in finding program bugs:

A. MsgBox Function

B. Debug.Print Statement

C. Debug Mode

Page 29: ME 142 Engineering Computation I Debugging Techniques.

Homework Help ‘n Hints