Upload
hector-williams
View
216
Download
0
Embed Size (px)
Citation preview
McGraw-Hill © 2009 The McGraw-Hill Companies, Inc. All rights reserved.
Chapter 3
Variables, Constants, and Calculations
McGraw-Hill © 2009 The McGraw-Hill Companies, Inc. All rights reserved. 3-2
Objectives (1 of 2)
• Distinguish between variables, constants, and controls.
• Differentiate among the various data types.
• Apply naming conventions incorporating standards and indicating the data type.
• Declare variables and constants.
• Select the appropriate scope for a variable.
• Convert text input to numeric values.
McGraw-Hill © 2009 The McGraw-Hill Companies, Inc. All rights reserved. 3-3
Objectives (2 of 2)
• Perform calculations using variables and constants.
• Convert between numeric data types using implicit and explicit conversions.
• Round decimal values using the Decimal.Round method.
• Format values for output using the ToString method.
• Use Try/Catch blocks for error handling.
• Display message boxes with error messages.
• Accumulate sums and generate counts.
McGraw-Hill © 2009 The McGraw-Hill Companies, Inc. All rights reserved. 3-4
Data — Variables and Constants (1 of 2)
Variable
•Memory locations that hold data that can be changed during project execution
•Example: customer’s name
• Named Constant
•Memory locations that hold data that cannot be changed during project execution
•Example: sales tax rate
McGraw-Hill © 2009 The McGraw-Hill Companies, Inc. All rights reserved. 3-5
Data — Variables and Constants (2 of 2)
• In Visual Basic, when you declare a Variable or Named Constant
• An area of memory is reserved
• A name is assigned called an Identifier
• Follow rules and naming conventions
• Use Declaration Statements to establish Variables and Constants,
• Assign name and data type,
• Not executable unless initialized on same line
McGraw-Hill © 2009 The McGraw-Hill Companies, Inc. All rights reserved. 3-6
Data Types
Data Type Use For Storage Size in bytes
Boolean True or False value 2
Byte 0 to 255, binary data 1
Clear Single Unicode character 2
Date 1/1/0001 through 12/31/9999 8
Decimal Decimal fractions, such as dollars/cents 16
Single Single precision floating-point numbers with six digits of accuracy
4
Double Double precision floating-point numbers with 14 digits of accuracy
8
Short Small integer in the range -32,768 to 32,767 2
Integer Whole numbers in the range -2,147,483,648 to +2,147,483,647
4
Long Larger whole numbers 8
String Alphanumeric data: letters, digits, and other characters Varies
Object Any type of data 4
McGraw-Hill © 2009 The McGraw-Hill Companies, Inc. All rights reserved. 3-73-7
Data Types
Data Type Prefix
Boolean bln
Byte byt
Character chr
Date dtm
Decimal dec
Single sng
Double dbl
Short sht
Integer int
Long lng
String str
Object obj
McGraw-Hill © 2009 The McGraw-Hill Companies, Inc. All rights reserved. 3-8
Naming Variables and Constants
• Must follow Visual Basic Naming Rules
• Should follow Naming Conventions• Meaningful names consisting of letters, digits, and
underscores; must begin with a letter and no spaces or periods. Include class (data type) of variable (QUOTA_Integer)
• Use mixed case for variables and uppercase for constants (quantityInteger).
• Cannot use reserved words or keywords to which Basic has assigned a meaning, such as print, name, and value
McGraw-Hill © 2009 The McGraw-Hill Companies, Inc. All rights reserved. 3-9
Constants
• Named• User assigned name, data type, and value
• Use CONST keyword to declare.
• Intrinsic• System defined within Visual Studio
Const COMPANY_ADDRESS_String As String = "101 S. Main Street"Const SALES_TAX_RATE_Decimal As Decimal = .08D
McGraw-Hill © 2009 The McGraw-Hill Companies, Inc. All rights reserved. 3-10
Assigning Values to Constants
Decimal D Decimal – 850.50D
Double R Double – 52875.8R
Integer I Integer – 12345678I
Long L Long – 134257987L
Short S Short – 350S
Single F Single – 101.25F
• Declare the data type of numeric constants by appending a type-declaration character.
McGraw-Hill © 2009 The McGraw-Hill Companies, Inc. All rights reserved. 3-11
Declaring Variables
• Declared inside a procedure using a Dim statement
• Declared outside a procedure using Public, Private, or Dim statements
• Always declare the variable’s data type.
• May declare several variables with one statement.
• Use IntelliSense to assist in writing statements.
McGraw-Hill © 2009 The McGraw-Hill Companies, Inc. All rights reserved. 3-12
Declaration Statement Examples
Dim customerNameString As String As String
Private totalSoldInteger As Integer As Integer
Dim temperatureSingle As Single As Single
Dim priceDecimal As Decimal As Decimal
Private priceDecimal As Decimal As Decimal
McGraw-Hill © 2009 The McGraw-Hill Companies, Inc. All rights reserved. 3-13
Scope and Lifetime of Variables (1 of 2)
• Visibility of a variable is its scope.• Scope may be
• Namespace
• Module level
• Local
• Block level
• Lifetime of a variable is the period of time the variable exists.
McGraw-Hill © 2009 The McGraw-Hill Companies, Inc. All rights reserved. 3-14
Module Level Variable Declaration Example
Code module-level declarations in the Declaration section at the top of the code.
McGraw-Hill © 2009 The McGraw-Hill Companies, Inc. All rights reserved. 3-15Chapter 4: Variables and
Arithmetic Operations
15
Guidelines for User Input
• Each Input object (textbox, etc) and Output object (label, textbox, etc.) will have its own variable associated with it
• All calculations (formulas) will be done ONLY with variables, constants and functions; the results of all calculations will be placed in a variable
• All variables will be formatted into an output object (label, textbox, etc.) in order to make them visible and appear in user friendly format
McGraw-Hill © 2009 The McGraw-Hill Companies, Inc. All rights reserved. 3-16Chapter 4: Variables and
Arithmetic Operations
16
McGraw-Hill © 2009 The McGraw-Hill Companies, Inc. All rights reserved. 3-17
Calculations
• Calculations can be performed with variables, constants, functions and numeric literals.
• Do not use strings in calculations.
• Values from Text property of Text Boxes
•Are strings, even if they contain numeric data
•Must be converted to a numeric data type before performing a calculation
McGraw-Hill © 2009 The McGraw-Hill Companies, Inc. All rights reserved. 3-18
Converting Strings to aNumeric Data Type
• Use Parse methods to convert the Text property to its numeric form before it’s used in a calculation.
• Each numeric data type class has a Parse method.
• Parse method returns a value that can be used in calculations.
• Parse method fails if user enters nonnumeric data or leaves data blank.
McGraw-Hill © 2009 The McGraw-Hill Companies, Inc. All rights reserved. 3-19
Converting to String
• Values assigned to string variables or Text properties must be string.
• Convert any numeric data type to string using .ToString method.
Examples:
ResultTextBox.Text = ResultDecimal.ToString()
CountTextBox.Text = CountInteger.ToString()
IDString = IDInteger.ToString()
McGraw-Hill © 2009 The McGraw-Hill Companies, Inc. All rights reserved. 3-20
Conversion Methods
Method Convert ToInteger.Parse IntegerDecimal.Parse Decimal.ToString String
McGraw-Hill © 2009 The McGraw-Hill Companies, Inc. All rights reserved. 3-21
Conversion Examples
QuantityInteger =Integer.Parse(quantityTextBox.Text)PriceDecimal =Decimal.Parse(priceTextBox.Text)WholeNumberInteger =Integer.Parse(digitString)ResultTextBox.Text =ResultDecimal.ToString( )CountTextBox.Text =CountInteger.ToString( )IDString =IDInteger.ToString( )
McGraw-Hill © 2009 The McGraw-Hill Companies, Inc. All rights reserved. 3-22
Arithmetic Operations
Operator Operation+ Addition– Subtraction* Multiplication/ Division\ Integer Division
Mod Modulus – Remainder of division
^ Exponentiation
McGraw-Hill © 2009 The McGraw-Hill Companies, Inc. All rights reserved. 3-23
Order of Operations
• Hierarchy of operations, or order of precedence, in arithmetic expressions from highest to lowest
1. Any operation inside parentheses2. Exponentiation3. Multiplication and division4. Integer division5. Modulus6. Addition and subtraction
McGraw-Hill © 2009 The McGraw-Hill Companies, Inc. All rights reserved. 3-24
Evaluation of Expression
1. All operations within parentheses. Multiple operations within the parentheses are performed according to the rules of precedence.
2. All exponentiation. Multiple exponentiation operations are performed from left to right.
3. All multiplication and division. Multiple operations are performed from left to right.
4. All integer division. Multiple operations are performed from left to right.
5. Mod operations. Multiple operations are performed from left to right.
6. All addition and subtraction are performed from left to right.
McGraw-Hill © 2009 The McGraw-Hill Companies, Inc. All rights reserved. 3-25
Mathematical Examples
• Note the use of parentheses to control order of precedence.
3+4*2 = 11 Multiply then add(3+4)*2 = 14 Parentheses control: add then multiply8/4*2 = 4 Same level, left to right: divide then multiply
McGraw-Hill © 2009 The McGraw-Hill Companies, Inc. All rights reserved. 3-26
Using Calculations in Code
• Perform calculations in assignment statements.
• What appears on right side of assignment operator is assigned to item on left side.
• Assignment operators — allows shorter versions of code =, +=, -=, *=, /=, \=, &=
‘Accumulate a total.
TotalSalesDecimal += salesDecimal
McGraw-Hill © 2009 The McGraw-Hill Companies, Inc. All rights reserved. 3-27
Option Explicit and Option Strict
• Option Explicit forces variables to be declared before using.
• Option Strict• Makes VB a strongly typed language like C++, Java
and C#
• Does not allow implicit conversions from a wider data type to a narrower one or between String and numeric data types
• Best practice to always turn on either in code or in Project Properties dialog box
McGraw-Hill © 2009 The McGraw-Hill Companies, Inc. All rights reserved. 3-28
Converting Between Numeric Data Types
• Implicit (automatic) conversion• Converts value from narrower data type to wider
type where no danger of losing precision exists
• Explicit conversion (casting)• Uses methods of Convert class to convert
between data types
• Convert Class has methods that begin with “To” for each of the data types.
McGraw-Hill © 2009 The McGraw-Hill Companies, Inc. All rights reserved. 3-29
Performing Calculations with Unlike Data Types
• VB performs the calculations using the wider data type.
• Use a cast if converting the result to a different data type.
Example:Convert.ToInt32(CountInteger / NumberDecimal) or Convert.ToSingle(CountInteger / NumberDecimal).
• VB does not convert to a different data type until it is necessary.
McGraw-Hill © 2009 The McGraw-Hill Companies, Inc. All rights reserved. 3-30
Rounding Numbers
• Round decimal fractions
• Decimal.Round method returns a decimal result rounded to a specified number of decimal positions.
• Decimal.Round and Convert methods use technique called “rounding toward even.”
Decimal Value to Round
Number of Decimal Positions Results
1.455 2 1.46
1.445 2 1.44
1.5 0 2
2.5 0 2
McGraw-Hill © 2009 The McGraw-Hill Companies, Inc. All rights reserved. 3-31
Formatting Data for Display
• To display numeric data in a label or text box, first convert value to string.
• Use ToString method
• Format the data using formatting codes.
• Specifies use of dollar sign, percent sign, and commas
• Specifies number of digits that appear to right of decimal point
DisplayTextBox.Text = NumberInteger.ToString()
McGraw-Hill © 2009 The McGraw-Hill Companies, Inc. All rights reserved. 3-32
Using Format Specifier Codes
• "C" code• Currency — String formatted with dollar sign,
commas separating each group of 3 digits and 2 digits to the right of decimal point
• "N" code• Number — String formatted with commas
separating each group of 3 digits and 2 digits to the right of decimal point
• Can specify number of decimal positions• Example: "C0" zero digits
McGraw-Hill © 2009 The McGraw-Hill Companies, Inc. All rights reserved. 3-33
Format Specifier Codes
Format Specifier Codes Name
C or c Currency
F or f Fixed-point
N or n Number
D or d Digits
P or p Percent
McGraw-Hill © 2009 The McGraw-Hill Companies, Inc. All rights reserved. 3-34
Format Specifier Code Examples
Variable Value Code Output
totalDecimal 1125.6744 "C" $1,125.67
totalDecimal 1125.6744 "N0" 1,126
pinInteger 123 "D6" 000123
rateDecimal 0.075 "P" 7.50%
rateDecimal 0.075 "P3" 7.500%
rateDecimal 0.075 "P0" 8%
valueInteger -10 "C" ($10.00)
McGraw-Hill © 2009 The McGraw-Hill Companies, Inc. All rights reserved. 3-35
Date Specifier Code
• Format DateTime values using format codes and ToString method.
• Date codes are case sensitive.
McGraw-Hill © 2009 The McGraw-Hill Companies, Inc. All rights reserved. 3-36
Handling Exceptions
• Use structured exception handling to easily catch errors before run-time error occurs.
• Catching exceptions is referred to as error trapping.
• Coding to handle exception is called error handling.
• Error handling in Visual Studio.NET is standardized for all languages using the Common Language Runtime, CLR, which improves on previous versions of VB.
McGraw-Hill © 2009 The McGraw-Hill Companies, Inc. All rights reserved. 3-37
Try/Catch Blocks
• Enclose statements that might cause an error within Try/Catch block.
• If an exception occurs while statements in the Try block are executing, program control is transferred to the Catch Block.
• If a Finally statement is included, the code in that section executes last, whether or not an exception occurred.
McGraw-Hill © 2009 The McGraw-Hill Companies, Inc. All rights reserved. 3-38
Try Block — General Form
Try‘statements that may cause an error
Catch [VariableName As ExceptionType]‘statements for action when an exception occurs
[Finally‘statements that always execute before exit of the Try
block]End Try
McGraw-Hill © 2009 The McGraw-Hill Companies, Inc. All rights reserved. 3-39
Try Block — ExampleCatches Any Exception
TryQuantityInteger = Integer.Parse(QuantityTextBox.Text)QuantityTextBox.Text = QuantityInteger.ToString( )
CatchMessageLabel.Text = "Error in input data."
End Try
McGraw-Hill © 2009 The McGraw-Hill Companies, Inc. All rights reserved. 3-40
Try Block — ExampleCatches Specific Exception
• This Catch statement catches bad input data that cannot be converted to numeric.
Catch theException As FormatExceptionMessageLabel.Text="Error in input data."
End Try
McGraw-Hill © 2009 The McGraw-Hill Companies, Inc. All rights reserved. 3-41
Common Exception Classes
Each exception is an instance of the Exception class. The properties of this class allow you to determine the code location of the error, the type of error, and cause.
McGraw-Hill © 2009 The McGraw-Hill Companies, Inc. All rights reserved. 3-42
Try Block — ExampleHandling Multiple Exceptions
Catch TheException As FormatException' Statements for nonnumeric data.
Catch TheException As ArithmeticException' Statements for calculation problem.
Catch TheException As Exception' Statements for any other exception.
McGraw-Hill © 2009 The McGraw-Hill Companies, Inc. All rights reserved. 3-43
MessageBox Object (1 of 2)
• The MessageBox is an overloaded method.• Signatures correspond to the argument list.
• There are multiple signatures to choose from.
• Do not reverse, transpose, or leave out any of the arguments.
• IntelliSense displays argument list (also called signatures).
MessageBox.Show (TextMessage, TitlebarText, _ MessageBoxButtons, MesssageBoxIcon)
McGraw-Hill © 2009 The McGraw-Hill Companies, Inc. All rights reserved. 3-44
MessageBox Object (2 of 2)
• TextMessage string• String literal or variable that displays message
• Title Bar text• String that appears in title bar of message box
• MessageBox Buttons• OK, OKCancel, RetryCancel, YesNo, YesNoCancel,
AbortRetryIgnore
• MessageBox Icons• Asterisk, Error, Exclamation, Hand, Information, None,
Question, Stop, Warning
McGraw-Hill © 2009 The McGraw-Hill Companies, Inc. All rights reserved. 3-45
Using Overloaded Methods
• This OOP feature allows the Show method to act differently for different arguments.
• Each argument list is called a signature so the Show method has several signatures.
• Supplied arguments must exactly match one of the signatures provided by the method.
• IntelliSense in Visual Studio editor helps when entering arguments so that they don’t need to be memorized.
McGraw-Hill © 2009 The McGraw-Hill Companies, Inc. All rights reserved. 3-46
Testing Multiple Fields
• Each input field presents an opportunity for an exception.
• To indicate specific fields that caused the exception, use nested Try/Catch blocks.
• Pinpoints specific errors, and after error, sets focus back to field in error
• Use SelectAll method of text box to make text appear selected to aid user.
McGraw-Hill © 2009 The McGraw-Hill Companies, Inc. All rights reserved. 3-47
Counting and Accumulating Sums
• Declare module-level variables, since local level variables reset to 0 each time the procedure is called.
• Summing Numbers
• Counting
• Calculating an Average
DiscountedPriceSumDecimal += DiscountedPriceDecimal
Private saleCountInteger As IntegersaleCountInteger += 1
AverageDiscountedSaleDecimal = DiscountedPriceSumDecimal / SaleCountInteger