Chapter 3 - Winona State University

advertisement
Microsoft Visual Basic 2010:
Reloaded
Fourth Edition
Chapter Three
Memory Locations and Calculations
Objectives
After studying this chapter, you should be able to:
• Declare variables and named constants
• Assign data to an existing variable
• Convert data to the appropriate type using the
TryParse method and the Convert class
methods
• Write arithmetic expressions
• Understand the scope and lifetime of variables and
named constants
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
2
Objectives (cont'd.)
• Understand the purpose of the Option statements
• Use a TOE chart, pseudocode, and a flowchart to
code an application
• Clear the contents of a control’s Text property
during run time
• Send the focus to a control during run time
• Explain the difference between syntax errors and
logic errors
• Format an application’s numeric output
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
3
Internal Memory
• Internal memory: a component inside a computer
comprised of memory locations
• Each memory location has a unique numeric
address and can hold only one item at a time
• A programmer can reserve memory locations for a
program by assigning each location a name, a data
type, and an initial value
• Data type: indicates the type of data the memory
location will store
• Two types of memory locations that a programmer
can declare: variables and constants
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
4
Internal Memory (cont'd.)
Figure 3-1: Illustration of storage bins
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
5
Variables
• Variables: computer memory locations used to
temporarily store data while an application is
running
– Contents can change during run time
• Use a meaningful variable name that reflects the
purpose of the variable
• Use camel casing for variable identifiers
• Variable names should conform to naming rules
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
6
Figure 3-2: How to name a variable
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
7
Variables (cont'd.)
• Each variable must be assigned a data type, which
determines the memory location’s data type
• Each data type is a class
– Integer, Long, or Short data types can store
integers (whole numbers)
– Decimal, Double, and Single data types: store
real numbers (numbers with a decimal place)
– Char data type: stores one Unicode character
– String data type: stores multiple Unicode
characters
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
8
Variables (cont'd.)
• Unicode:
– Universal coding scheme for characters that assigns
a unique numeric value to each character
• Other data types
– Boolean data type: stores a value of True or
False
– Date data type: stores date and time information
– Object data type: stores any type of data
• Computer must determine the data type at run time,
making it more inefficient
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
9
Figure 3-3: Basic data types in Visual Basic
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
10
Declaring a Variable in Code
• Declaration statement: used to declare, or create,
a variable
– Declaration statement includes:
• Scope keyword: Dim, Private, or Static
• Name of the variable and data type
• Initial value (optional)
• Initialization
– Numeric data types: automatically initialized to 0
– String data type: automatically initialized to
Nothing
– Boolean data type: initialized to False
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
11
Declaring a Variable in Code (cont’d.)
Figure 3-4: How to declare a variable
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
12
Declaring a Variable in Code (cont’d.)
Figure 3-4: How to declare a variable (cont’d.)
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
13
Assigning Data to an Existing Variable
• Assignment statement:
– Used to assign values to properties of controls
– Used to assign values to variables
• Assignment operator (=):
– Expression on the right of the = operator is assigned
to the variable on the left of the = operator
• Expression: can contain literal constants, object
properties, variables, keywords, or arithmetic
operators
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
14
Assigning Data to an Existing Variable
(cont'd.)
• Literal constant:
– An item of data whose value does not change while
the application is running
– Can be a numeric or a string literal constant
• A numeric literal without a decimal place is treated
as an integer
• A numeric literal with a decimal place is treated as
a Double type
• String literals are enclosed in quotation marks
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
15
Assigning Data to an Existing Variable
(cont'd.)
Figure 3-5: How to assign a value to a variable
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
16
Assigning Data to an Existing Variable
(cont'd.)
Figure 3-5: How to assign a value to a variable (cont’d.)
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
17
Using the TryParse Method
• Method: a specific portion of a class’s instructions
that performs a task for the class
• TryParse method:
– Part of every numeric data type’s class
– Used to convert a string to that numeric data type
• Argument: a value that is provided to a method
• Basic syntax of TryParse method has two
arguments:
– String: string value to be converted
– Variable: location to store the result
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
18
Using the TryParse Method (cont'd.)
• If TryParse conversion is successful, the method
stores the value in the variable
• If unsuccessful, a 0 is stored in the numeric
variable
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
19
Figure 3-6: How to use the basic syntax of the TryParse method
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
20
Using the TryParse Method (cont'd.)
Figure 3-7: Result of the TryParse method for the Double, Decimal,
and Integer data types
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
21
Using the Convert Class Methods
• Convert class:
– Contains methods for converting numeric values to
specific data types
• Commonly used methods of the Convert class
include:
–
–
–
–
ToDouble
ToDecimal
ToInt32
ToString
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
22
Using the Convert Class Methods
(cont’d.)
Figure 3-8: How to use the Convert class methods
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
23
Including Variables
in Arithmetic Expressions
• Arithmetic operators: used to perform calculations
• Precedence number: indicates the order in which
an operation in an expression is performed
• If an expression has two operators with the same
precedence, they are evaluated from left to right
• Use parentheses to change the order of evaluation
• Integer division operator (\): divides two integers
and returns an integer value
• Modulus arithmetic operator (Mod): divides two
numbers and returns the remainder
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
24
Including Variables
in Arithmetic Expressions (cont'd.)
Figure 3-9: Most commonly used arithmetic operators
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
25
Including Variables
in Arithmetic Expressions (cont'd.)
Figure 3-10: How to use the integer division and Mod operators
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
26
Including Variables
in Arithmetic Expressions (cont'd.)
Figure 3-11: Expressions containing more than one operator having the same
precedence
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
27
Figure 3-12: How to use variables and arithmetic operators
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
28
Including Variables
in Arithmetic Expressions (cont'd.)
Figure 3-12: How to use variables and arithmetic operators (cont’d.)
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
29
Arithmetic Assignment Operators
• Arithmetic assignment operators: abbreviate an
assignment statement that contains an arithmetic
operator for specific cases
• Statement must be of the form:
variableName =
variableName arithmeticOperator value
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
30
Arithmetic Assignment Operators
(cont’d.)
Figure 3-13: How to use the arithmetic assignment operators
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
31
Figure 3-13: How to use the arithmetic assignment operators (cont’d.)
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
32
The Scope and Lifetime of a Variable
• Scope: indicates where the variable can be used
• Lifetime: indicates how long the variable remains
in memory
• Variables can have module scope, procedure
scope, or block scope
• A variable’s scope and lifetime are determined by
where you declare the variable
– Variables declared in the form’s Declarations section
have class scope
– Variables declared within a procedure have either
procedure scope or block scope
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
33
Variables with Procedure Scope
• Procedure-level variable: declared within a
procedure
– Use the Dim keyword in the declaration
• Procedure scope: only the procedure can use the
variable
– With procedure-level scope, two procedures can
each use the same variable names
• Comments:
– Used to internally document the procedure
– Are ignored by the compiler
– Appear in green in the Code Editor
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
34
Figure 3-14: The MainForm in the Sales Tax application
Figure 3-15: Examples of using procedure-level variables
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
35
Variables with Procedure Scope
(cont’d.)
Figure 3-15: Examples of using procedure-level variables (cont’d.)
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
36
Variables
with Class Scope
• Class scope: variable can be used by all procedures
in the form
• Class-level variable:
– Declared in the form’s Declarations section
– Use Private keyword in declaration
• Class-level variables retain their values until the
application ends
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
37
Figure 3-17: Example of using a class-level variable
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
38
Static Variables
• Static variable:
– Procedure-level variable that remains in memory and
retains its value even after the procedure ends
– Retains its value until the application ends (like a
class-level variable), but can only be used by the
procedure in which it is declared
• A static variable has:
– Same lifetime as a class-level variable
– Narrower scope than a class-level variable
• Declared using the Static keyword
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
39
Static Variables (cont’d.)
Figure 3-18: Example of using a static variable
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
40
Named Constants
• Named constant: memory location whose value
cannot be changed while the application is running
– Declared using the Const keyword
– Good programming practice to specify the data type
as well
– Many programmers use Pascal case for named
constants
• Literal type character: forces a literal constant to
assume a specific data type
• Named constants help to document the program
code
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
41
Figure 3-19: How to declare a named constant
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
42
Figure 3-20: Area Calculator application’s interface
Figure 3-21: Example of using a named constant
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
43
Option Explicit, Option Infer,
and Option Strict
• Undeclared variable: a variable that does not
appear in a declaration statement (such as Dim)
– Is assigned a data type of Object
• Misspelling a variable name can result in an
undeclared variable unless Option Explicit is on
• Option Explicit On statement
– Appears in the General Declarations section of the
Code Editor window (above Public Class
statement)
– Enforces that all variables must be declared before
being used
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
44
Option Explicit, Option Infer,
and Option Strict (cont'd.)
• Option Infer Off statement: ensures that every
variable is declared with a data type
• Implicit type conversion: occurs when you
attempt to assign data of one type to a variable of
another type without explicitly attempting to convert
it
– If converted to a data type that can store larger
numbers, the value is said to be promoted
– If converted to a data type that can store only
smaller numbers, the value is said to be demoted
• Can cause truncation and loss of precision
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
45
Figure 3-22: Rules and examples of type conversions
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
46
Option Explicit, Option Infer,
and Option Strict (cont'd.)
• Option Strict On statement: ensures that values
cannot be converted from one data type to a
narrower data type, resulting in lost precision
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
47
Option Explicit, Option Infer,
and Option Strict (cont'd.)
Figure 3-23: Option statements entered in the General Declarations section
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
48
Coding the
Sunshine Cellular Application
Figure 3-24: Sunshine Cellular interface from Chapter 2
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
49
Coding the
Sunshine Cellular Application (cont'd.)
Figure 3-25: Sunshine Cellular TOE chart from Chapter 2
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
50
Using Pseudocode
to Plan a Procedure
• Pseudocode: short phrases that describe the
steps a procedure needs to take to accomplish its
goal
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
51
Using Pseudocode
to Plan a Procedure (cont’d.)
Figure 3-26: Pseudocode for the Sunshine Cellular application
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
52
Using a Flowchart to Plan a Procedure
• Flowchart: uses standardized symbols to show the
steps a procedure must take to accomplish its goal
• Can be used in place of pseudocode for planning
• Three symbols:
– Start/stop symbol (oval): indicates start and stop
points
– Process symbol (rectangle): represents tasks
– Input/output symbol (parallelogram): represents
input or output tasks
• Flowlines: connect the symbols to show the
direction
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
53
Figure 3-27: Flowcharts for the Sunshine Cellular application
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
54
Coding the Calculate Order Button’s
Click Event Procedure
Figure 3-28: Pseudocode for the calcButton’s Click event procedure
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
55
Coding the Calculate Order Button’s
Click Event Procedure (cont'd.)
Figure 3-29: Named constants and variables for
the calcButton’s Click event procedure
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
56
Coding the Calculate Order Button’s
Click Event Procedure (cont'd.)
Figure 3-25: Declaration statements entered in the procedure
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
57
Coding the Calculate Order Button’s
Click Event Procedure (cont'd.)
Figure 3-31: User input stored in variables
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
58
Figure 3-32: Completed calcButton’s Click event procedure
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
59
Completing the Sunshine Cellular
Application
• Empty string: set of quotation marks with nothing
between them; also called zero-length string
• String.Empty: a value used to clear an object’s
Text property
• Focus method: moves the focus to a specified
control when the application is running
Figure 3-28: Pseudocode for the clearButton’s Click event procedure
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
60
Figure 3-34: Sunshine Cellular application’s code
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
61
Figure 3-34: Sunshine Cellular application’s code (cont'd.)
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
62
Testing and Debugging the Application
• To test an application:
– Select a set of sample data
– Manually compute the expected output
– Run the application and compare its output with the
expected output
• Bug: an error in the program code
• Syntax error: an error that violates the
programming language’s syntax
– Usually caused by mistyping
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
63
Testing and Debugging the Application
(cont'd.)
• Logic error: when the application does not perform
as expected
• Valid data: data that the application is expecting
• Invalid data: data that is unexpected
• Test a program with both valid and invalid data
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
64
Testing and Debugging the Application
(cont'd.)
Figure 3-35: Sample test data for the Sunshine cellular application
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
65
Testing and Debugging the Application
(cont'd.)
Figure 3-36: Result of using the data from Set 1 in Figure 35
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
66
Testing and Debugging the Application
(cont'd.)
Figure 3-37: Result of using the data from Set 2 in Figure 3-35
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
67
Formatting Numeric Output
• Formatting: specifying the number of decimal
places and any special characters to display
• ToString method of a variable can be used to
format a number
• FormatString argument: specifies the type of
formatting to use
• Precision specifier: controls the number of
significant digits or zeros to the right of the decimal
point
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
68
Figure 3-38: How to format a number
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
69
Figure 3-39: The calcButton’s modified Click event procedure
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
70
Formatting Numeric Output (cont'd.)
Figure 3-40: Formatted output shown in the interface
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
71
Programming Tutorial 1
Figure 3-51: Result of entering 255, 255, and 0 as the RGB values
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
72
Programming Tutorial 2
Figure 3-55: MainForm for the Vans & More Depot application
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
73
Programming Example
Figure 3-63: Pseudocode
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
74
Summary
• Variables and named constants are memory
locations that store data
• Variables can change value, but constants cannot
• Variables and constants have a name, data type,
initial value, scope, and lifetime
• Use Dim or Static to declare a variable at block
or procedure level
• Use Private to declare a variable at class level
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
75
Summary (cont'd.)
• Assignment statement is used to assign values to
an existing variable during run time
• Literals are constant items of data that do not
change during run time
• String literal constants are enclosed in quotation
marks
• Use the TryParse method to convert a string to a
number
• The Convert class contains methods to convert
values to a specified data type
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
76
Summary (cont'd.)
• A procedure-level variable is usable only by the
procedure in which it is declared
• A class-level variable is usable by all procedures in
the form
• A static variable is a procedure-level variable that
retains its value even when the procedure ends
• Use comments to document your code
• Use Const to declare a named constant
• Option Explicit On forces declaration of all
variables before use
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
77
Summary (cont'd.)
• Option Infer Off warns if a variable declaration
does not include a data type
• Option Strict On disallows any implicit type
conversions that may cause a loss of data
• Pseudocode or a flowchart is used to plan a
procedure’s code
• You can clear the contents of a text box or label
control by assigning an empty string or
String.Empty value
• The Focus method moves the focus to a control
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
78
Summary (cont'd.)
• Test a program with both valid and invalid data
• Use the ToString method to format a program’s
numeric output with special characters, such as for
currency, percentages, and number of decimal
places
Microsoft Visual Basic 2010: Reloaded, Fourth Edition
79
Download