Introduction to VB.Net 2003 Variables, Constants & Computation ©Copyright 1997-2006 by Ronald P. Kessler, Ph.D. Why Use Variables? •They allow us to use math computations •They make our programs generic to many solutions What Is a Variable? • Just as in algebra, variables in VB are used to represent values of things that can change. •I can use a variable to compute sales tax: TaxRate= .0775 SalesTax= Price * TaxRate SalesTax, Price, and TaxRate are variables How Does VB Know What Each Variable Is? • When we have been entering items & prices in our data entry screens without specifically telling VB what is text and what should be a number. •Items that we type in (text) are Strings •Prices are numbers and should be treated like Decimal. PROBLEM: I want to compute the total cost of items purchased. •Let’s say I buy 3 dozen mouse traps at 16.95 per dozen. •I can tell VB to compute the total: •My Total will be ( $16.95 * 3) or $50.85 In code it is: Total = 16.95 * 3 I have defined the variable Total simply by typing it in my formula. Data Types for .Net (See Page 99) Short (Integer) +32,768 2 bytes (i or int) Integer + 2,147,483,648 4 bytes (i or int) Long Integer +9,223,372,036,854,775,808 8 bytes (lng) Single Precision 6 digits of accuracy 4 bytes (sng) Double Precision 14 digits of accuracy 8 bytes (dbl) Decimal 16 bytes (dec) More $$ than we can count String Boolean Size of Str. True/False (s or str) 2 bytes (bln) In VB 3,4,5,& 6 we used Currency instead of decimal & it was 8 bytes Math Operators and Computations Price = 23.90 Tax = .0775 Total = Price * Tax lblTotal.Text=Total Math Operators Use the +, -, * , and “/” for the basic math operations. Integer Division uses a “\” (backslash) so that: 5\2 = 2 Use variables in your computations: Dim Sales as Decimal Dim SalesTax as Decimal Dim TotalSale as Decimal Sales= 765.90 SalesTax= .0775 TotalSale= Sales * SalesTax lblTotal.Text = TotalSale Operation Hierarchy How to solve/setup formulas: 64 / 8 * 3 / ( 6 + 6 ) - 2 = 64 /8 * 3 / 12 -2 = 8 * 3 / 12 -2 = 24 / 12 -2 = 2-2=0 1. Always do stuff in () first 2. Exponentiation (raise things to powers) 3. * and / 4. + and - Always go left to right and handle * and / or + and - as they come Difference Between Assignment and Math In the formula: Income= HoursWorked * PayRate we are computing a math operation. In the formula: btnPrint.Text = “Print this junk” we are assigning data from the right side to the left. When we say : NumCustomers = NumCustomers + 1 we are assigning, not doing math. In mathematics, this statement cannot exist. In VB, the equal sign (=) doubles as an operator and an assignment character Assignments take the stuff on the right and assign it to the variable on the left and stores that value in memory. Working with Data Entry... ‘----assign data from data entry screen and use conversion functions ‘ Procedure= txtProc.Text Charge= CDec(txtChrg.Text) ‘Convert text to decimal type Paid= CDec(txtPaid.Text) Adjustment= CDec(txtAdj.Text) CurrentBal= Charge - Paid – Discount lblResult.Text = FormatNumber(CurrentBal, 2) ‘2 decimals OR…. lblResult.Text = FormatCurrency(CurrentBal, 2) FormatNumber & Val are built-in functions in VB ‘shows $ Formatting Your Numbers... To format Currency (Decimal data type) we can say: lblTax.Text = CDec(txtPrice.Text) * 0.08 'Make VB treat text as a number using the CDec (Convert to Decimal) function and we decide how to format it. lblTax.Text =FormatNumber(CDec(txtPrice.Text * 0.08), 2) lblBalDue.Text = Format(CDec(txtPrice.Text) + CDec(lblTax.Text), "###.00") If you want a $ to appear before the amount, use: lblBalDue.Text = FormatCurrency(CDec(txtPrice.Text) + CDec(lblTax.Text), 2") VB also has FormatPercent & FormatdateTime Defining Variables the Correct Way . . . Why Define Variables Ourselves? •This makes much better use of memory (RAM) •It makes our programs run faster •It will catch our spelling errors Where Do I Tell VB to Force Me to Define Variables? In the GENERAL section of the main form of your program use the term: Option Explicit On You can force VB to make you declare variables from every project automatically if you want. Or you can type in Option Explicit On each time. I want you to start using this from now on! Use Tools|Options|Projects to set it in Visual Studio. How to Define Variables Ourselves •We use the command Dim (dimension) to define the type of data we are wanting to use. •If I want the total cost of an item, then I tell VB this before I start using the variable: •You usually Dimension variables in the subroutines (event procedures) where you are going to use them... Define Variables In Subs. . . Private Sub btnPrint_Click () ‘---Declare variables here Dim strItem as String Dim decPrice as Decimal Dim decTotal as Decimal Dim intQuantity as Integer strItem= txtItem.Text decPrice= CDec(txtPrice.Text) intQuantity= CInt(txtQuantity.Text) ‘use CInt or CShort decTotal = decPrice * intQuantity lblReceipt.Text = "Total===>" & Format(CDec(txtPrice.Text) + CDec(lblTax.Text), "###.00") End Sub Using Constants... Using Constants... In the section of the form, just after “Windows Form designer generated code”, use this to define a constant : Const SALESTAX As Decimal = 0.08D The “D” makes it a decimal…I know it looks redundant! Get in the habit of typing constants all in capitals. Now we can use the value assigned to SALESTAXRATE any where in our program. This value never changes as long as the program is running. Using Your Own Constants... ‘---Inside the form code Const SALESTAX As Decimal = 0.08D _________________________________________ Sub btnPrint_Click () Dim Tax as Decimal Dim Price as Decimal Price= CDec(txtPrice.Text) Tax= Price * SALESTAXRATE End Sub All Done….for now at least.