me 142 engineering computation iemp.byui.edu/millerg/me142/sm/unit 5.3 in class - debugging.pdf ·...

Post on 21-Sep-2020

2 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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

top related