me 142 engineering computation iemp.byui.edu/millerg/me142/sm/unit 5.3 in class - debugging.pdf ·...
TRANSCRIPT
ME 142Engineering Computation I
Debugging Techniques
Important Upcoming Events
VBA Exam – 2 parts
In Class Portion – Wednesday 11/14
Testing Center Portion – 11/12-11/15
Final Project
Groups of 3-4 individuals
Topic: Projectile Motion with Air Resistance
HWO Submission Reminder
Don’t forget to submit your Homework Excel
Program files for grading by the TA
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
Debug Mode
Once in Debug Mode
may mouse-over a
variable to find its
current value:
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:
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
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
Debugging Functions
How do you debug a Function?
Set a breakpoint prior to executing the function
PP 5.3.1
PP 5.3.2
PP 5.3.3
HW 5.3.1
HW 5.3.2
Key Concepts
Types of Program Errors
Debugging Tools & Techniques
Testing
VBA Help Facility
Types of Programming Errors
Syntax Errors
Run-Time Errors
Logic Errors
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.
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.
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
Debugging Tools & Techniques
Debugging Tools & Techniques
MsgBox Function
Debug.Print Statement
Debug Mode
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)
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
Debug.Print Statement
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
Debug Mode
When a run-time error occurs may enter
Debug Mode by selecting button on dialog
box that appears:
Debug Mode
Once in Debug Mode
may mouse-over a
variable to find its
current value:
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:
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
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
Testing
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.
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
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.
VBA Help Facility
In Class Activity
Use the debugger to debug the program
provided
Your result should be:
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
Review Questions
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
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
Homework Help ‘n Hints