IS 118 Introduction to Development Tools VB Chapter 04 IS 118 1 Chapter 4 Data, Operations, and Built-In Functions Visual Basic. NET Copyright (c) 2003 by Prentice Hall Objectives Differentiate among different types of data Declare data types properly for constants and variables Appreciate the importance of having the IDE check variables for their declaration Differentiate and appreciate the implications of the scope and lifetime of variables under different declarations IS 118 3 Objectives Understand the nature of the assignment statement Recognize and use various arithmetic expressions and functions Understand the usefulness of strict type checking Recognize and use various string functions Understand better how data and VB controls are used together in a project IS 118 4 Classification of Data MsgBox(“Your age is “ & 24) Text in quotation marks is a string Text can be manipulated, but no computations Numeric data can be used for computation Data must be kept in memory before it can be retrieved for manipulation, computation, or display IS 118 5 Using Memory Locations Give memory locations a name and refer to the name If data expected to change, classify as variable If data not expected to change, classify as constant Named constant: a constant given a name and referenced accordingly IS 118 6 Declaring Constants Some constants are predefined Known as system constants Examples include True and False Others defined and declared before used Known as symbolic constants Must be declared with Const statement To declare a constant: Const MyName = “Tom McKenzie” Defines the constant MyName and assigns a value IS 118 7 Why Use Constants? Makes code easier to read and trace To change the value of a constant, change it where it is declared Change will be reflected throughout system Name all constants for your program in one location IS 118 8 Declaring Variables Declared with the Dim statement Must give the variable a name Optionally, define data type Although it’s only optional, you should specify data type Can use type suffixes for data types Code suffixes hard to read and understand Syntax: Dim MyID as Long Defines a variable named MyID as a long data type IS 118 9 Checking for Variable Declaration Option Explicit statement determines whether VB requires variable declaration When set to Off, VB will not require declaration Default is On, so variables must be declared before they can be used Get in the habit of requiring declaration IS 118 10 Why Require Declaration? An undeclared or misspelled variable can give unexpected results You can spend hours tracing bugs Helps you catch syntax errors When you use variables in code, VB will enforce same capitalization as when declared IS 118 11 Rules for Declaration Can contain any combination of letters and numbers Can begin with letter or underscore, but not a number Must have at least one letter or digit if it begins with an underscore Cannot contain spaces If it has same name as a reserved keyword, i.e. Date, must be enclosed with brackets Cannot contain embedded periods or data suffix characters IS 118 12 Scope and Lifetime of Variables Scope refers to how widely variable is recognized throughout program Lifetime refers to how long a variable remains in computer memory IS 118 13 Class-Level Variables Code window associated with form referred to as class module Class level variables declared in general declarations area (before any code is entered) with Dim statement Scope: recognized by all procedures in the class Lifetime: created when form is loaded and remain in memory until form is destroyed (closed) IS 118 14 Procedure-Level Variables Declared inside a procedure Also called “local” variables Scope: only recognized within the procedure Lifetime: depends on how declared If declared with Dim keyword, reinitialized every time the procedure is called String variables reinitialized to an empty string Numeric variables reinitialized to 0 If declared with Static keyword, values preserved rather than reinitialized every time the procedure is called Destroyed when form is destroyed IS 118 15 Declaration Issues Block-level declaration: If declared within an If block, recognized only within the block Overlapping declarations: When variable with same name declared at class level and procedure level, VB uses the memory location with the narrowest type Take care not to overlap In general, declare variables at narrowest possible scope IS 118 16 Access Modifiers With class-level variables, you need to decide whether they will be accessible to other modules in the project Instead of declaring with Dim statement, use Public or Private keyword Public access – visible to other modules Public MyIDNum as Integer Private access – not visible to other modules Private MyIDNum as Integer IS 118 17 Objects An object is actually an instance of a class Think of the class as a template Object is created as an instance of that class Process called instantiation IS 118 18 Declaring Objects To use object data types in code is a two-step process Declare variable of that class type Dim M as Math declares M as an variable of Math type Create an instance of that class requires the New keyword M = New Math() associates the variable M with an instance of the Math object Can do both in one statement with most objects Dim M as New Math() combines the two previous statements IS 118 19 Numeric Data and Types Many different ways to store and handle numbers Precision of data type refers to accuracy in handling significant digits Inadequate precision can lead to significant rounding error in calculations Different types require different amounts of storage IS 118 20 Data Types of Limited Values Byte – uses one character Often used to handle ASCII code data Char – uses two characters Often used to handle Unicode code data Neither type handles negative numbers Boolean – stores logical value of True or False IS 118 21 Data Types for Whole Numbers Can handle positive or negative numbers, but no decimal places Range of numbers determined by storage size Short Requires 2 bytes of storage Integer Requires 4 bytes of storage Long Requires 8 bytes of storage IS 118 22 Data Types for Mixed Numbers Uses floating point coding scheme Mantissa: stores base value of data Exponent: stores how the mantissa is raised (to the power of 10) Different types handle different numbers of significant digits and need different storage Single: 7 significant digits (4 bytes storage) Double: 15 significant digits (8 bytes storage) Decimal: 29 significant digits (16 bytes storage) IS 118 23 Characteristics of Numeric Types IS 118 24 Implicit Type Conversion Often bugs are created when the compiler converts different data types Can use data conversion functions to explicitly convert data type by code Option Strict On forces you to observe strict data conversion rules You can implicitly convert from narrower type to wider (e.g., from Integer to Long) To convert to narrower type, use data conversion functions You should use this option to avoid unexpected data conversion errors IS 118 25 Assignment Statement OvertimePay = StandardPay * 1.5 moves data resulting from the operation on the right side to the memory location on the left Variable on right must be properly declared before operation can be moved to left Variable on left must have the capacity to handle the result of the operation on the right if not, an overflow error occurs Left side must be a variable or a control property whose value can be set at run time txtOT.Text = StandardPay * 1.5 is a valid assignment statement IS 118 26 Numeric Operations Code on right side referred to as expression Can be a constant, a variable, or any numeric operation IS 118 27 Operational Precedence Order of Preference Power Unary negation Multiplication and division Integer division Mod Addition and subtraction To enforce a different order or eliminate confusion, enclose expression in parentheses IS 118 28 An Application Example: Computing Net Sales Analyze and define requirements An application to compute net receipts Determine controls needed Mainly labels and text boxes Right align text boxes so decimal places line up Declaring variables and constants Use variables to hold data entered into text boxes Use a constant to hold credit card processing rate Use variables to hold net processing and net receipts IS 118 29 An Application Example: Computing Net Sales Computations Decide when to store information entered in text boxes Create formulas for computation Decide how to display result of computations Format function displays results with defined format IS 118 30 Computing Total Receipts CreditCardRate defined as class-level constant FmtStandard defined as class-level constant IS 118 31 The Visual Interface All text boxes have the same format, right-aligned with two decimal places IS 118 32 Built-In Numeric Functions Mathematical Functions Rnd function generates a random number >= 0.0 and < 1.0 Often used in simulations Math Object contains many built-in methods for computations Examples include Abs (absolute value) and Sqrt (square root) Date/Time functions return a number of date or time related values Today returns the system date as defined on the computer IS 118 33 Conversion Functions Used to explicitly convert a variable from one data type to another IS 118 34 String Data Declared with the String data type All strings are variable-length strings String Operations: Concatenation combines 2 strings Valid concatenation operators: & and + If you use + and either string contains only numbers, you will get unexpected results You should always use & to concatenate IS 118 35 Common String Functions IS 118 36 An Application Example: The Calculating Vending Machines Analyze and define the requirements A form a user can use to purchase items User will select an item from a list box Setting Up the Vending Machine Use the Items.Add method of the list Create 2 columns in the list by including a tab character (vbTab) between item and price Use the With block to add multiple items save keystrokes adding the items IS 118 37 Application Example: The Calculating Vending Machine Determining the Item Chosen Must determine name chosen Must also determine price for item Displaying Selected Items If user selects more than one item, must concatenate into a single string Obtaining the Price Price will be a string in the list box Must convert into a number IS 118 38 Application Example: The Calculating Vending Machine Accumulating the total When user selects an item, the cost must be added to the accumulated total Declaring variables Give special consideration to scope and type Precision will be very important Checking out Need a mechanism to allow user to indicate he/she has finished ordering Need a routine in case the user checks out without buying anything Reinitialize class-level variables after checking out IS 118 39 Loading the Form Class-level variables used by several event procedures IS 118 40 Calculating Items Bought Tab divides line into fields, use InStr function to find Tab Add carriage return and item to class-level ItemsBot variable Accumulate total; must convert text to single IS 118 41 Summary Data can be classified into two broad categories: numeric and string Data can be classified into variables and constants Variables require a name Constants do not require a name, though it is advisable Constants declared with keyword Const Variables declared with either Dim or Static keyword Variables and constants classified by scope If declared at class level, recognized by all procedures in the class If declared within procedure, recognized only by that procedure IS 118 42 Summary Variables and constants classified by lifetime If declared at class level, they exist as long as class (form) exists If declared inside procedure with Dim keyword, reinitialized every time the procedure is called If declared inside procedure with Static keyword, they exist as long as the class exists If declared inside block, they are out of scope as soon as the block is terminated Declare variables with as narrow a scope as possible Declare constants with as broad a scope as possible Numeric data can be classified into different types, for different computational needs IS 118 43 Summary VB can perform a wide range of mathematical operations VB provides many built-in mathematical, date/time and data conversion functions VB provides many functions for manipulating string data The Format function can be used to format numeric data Use the Option Strict On setting to enforce explicit data conversion IS 118 44