Top Banner
Variables / Scope
40

Variables / Scope. Variable Memory location whose value can change as the program is running. Used to hold temporary information Used to control the type.

Dec 18, 2015

Download

Documents

Cori Murphy
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Variables / Scope. Variable Memory location whose value can change as the program is running. Used to hold temporary information Used to control the type.

Variables / Scope

Page 2: Variables / Scope. Variable Memory location whose value can change as the program is running. Used to hold temporary information Used to control the type.

Variable

• Memory location whose value can change as the

program is running.

• Used to hold temporary information

• Used to control the type of data used in calculations– Val returns a Double-type, which is often larger than

necessary

• Can store only one piece of data at any time

• Data is processed faster

Page 3: Variables / Scope. Variable Memory location whose value can change as the program is running. Used to hold temporary information Used to control the type.

Data Types

• Byte• Boolean• Currency• Date• Double• Integer

• Long• Object• Single• String• Variant

Page 4: Variables / Scope. Variable Memory location whose value can change as the program is running. Used to hold temporary information Used to control the type.

Use the Appropriate Data Type

• Integer or Long - Used to store whole numbers

• Single, Double, Currency - Used to store numbers with a decimal fraction

• String - Used to store strings

• Boolean - Used to store Boolean values (True and False)

• Date - Used to store date and time information

• Object - Used to store a reference to an object

• Byte - Used to store binary data

• Variant - Flexible, but not efficient

Page 5: Variables / Scope. Variable Memory location whose value can change as the program is running. Used to hold temporary information Used to control the type.

Variable Names

• Should be meaningful

• First three characters should represent the data type

• Remainder of name should represent the variable’s purpose

Page 6: Variables / Scope. Variable Memory location whose value can change as the program is running. Used to hold temporary information Used to control the type.

Three-character Ids

• Byte byt• Boolean bln• Currency cur• Date/Time dtm• Double dbl• Integer int

• Long lng• Object obj• Single sng• String str• Variant vnt

Page 7: Variables / Scope. Variable Memory location whose value can change as the program is running. Used to hold temporary information Used to control the type.

Rules for Naming Variables

• Name must begin with a letter.

• Name can contain only letters, numbers, and the underscore. No punctuation characters or spaces are allowed.

• Name cannot exceeds 255 characters.

• Name cannot be a reserved word.

Page 8: Variables / Scope. Variable Memory location whose value can change as the program is running. Used to hold temporary information Used to control the type.

Creating (declaring) a Variable

• Dim variablename [As datatype]

• Public variablename [As datatype]

Page 9: Variables / Scope. Variable Memory location whose value can change as the program is running. Used to hold temporary information Used to control the type.

Assigning Values to Variables

• Assignment statement– variablename = value

• Examples: – sngHours = 38.5– curBonus = curSales * .1– strName = “Susan”

Page 10: Variables / Scope. Variable Memory location whose value can change as the program is running. Used to hold temporary information Used to control the type.

Constants

• Literal constant – an item of data whose

value cannot change while the program is running

• Examples: – 7

– “Janet”

• Symbolic constant– a memory location

whose contents cannot be changed while the program is running

• Examples: – conPi

– conRate

Page 11: Variables / Scope. Variable Memory location whose value can change as the program is running. Used to hold temporary information Used to control the type.

Scope of a Variable

• Indicates which procedures can use the variable

• Determined by where the Dim or Public statement is entered.

• Can be either global, form-level, or local.

Page 12: Variables / Scope. Variable Memory location whose value can change as the program is running. Used to hold temporary information Used to control the type.

Variable Scope

Global Variable: Defined using a Public declaration in the general declarations section of a module

Module/FormVariable: Defined using a Private or dim declaration in the general declarations section of a module or a form

Local Variable: defined using dim or static within a subprocedure or function

In general, when variables have the same name but different scope, the most local (closest) variable is used.

Page 13: Variables / Scope. Variable Memory location whose value can change as the program is running. Used to hold temporary information Used to control the type.

Local Variables

• Created with the Dim statement.• The Dim statement is entered in an object’s event

procedure (within a subprocedure or function)• Only the procedure in which it is declared can

use the variable.• Same name can be used in different procedures• Removed from memory when the procedure

ends.

Page 14: Variables / Scope. Variable Memory location whose value can change as the program is running. Used to hold temporary information Used to control the type.

Form-level Variables

• Created with the Dim statement.• The Dim statement is entered in a form’s General

declarations section. • Can be used by any of the procedures in the

form.• initialized when module/form is first opened

Removed from memory when the application ends.

Page 15: Variables / Scope. Variable Memory location whose value can change as the program is running. Used to hold temporary information Used to control the type.

Global Variables

• Created with the Public statement.• The Public statement is entered in a code module’s

General declarations section. • initialized when program starts• Used in multi-form projects and can be used by any

of the procedures in any of the project’s forms.• Removed from memory when the application ends.

Page 16: Variables / Scope. Variable Memory location whose value can change as the program is running. Used to hold temporary information Used to control the type.

Static Variables

• Static variables– defined using static instead of dim within a

subprocedure or function– acts like a local but is initialized only on first

use

Page 17: Variables / Scope. Variable Memory location whose value can change as the program is running. Used to hold temporary information Used to control the type.

Static Variable example

• Goal: count the number of times a routine is entered

private sub command1_click()dim counter as integercounter=counter+1debug.print counterend sub

• Does NOT work unless counter is declared using static instead of dim

Page 18: Variables / Scope. Variable Memory location whose value can change as the program is running. Used to hold temporary information Used to control the type.

Local vs Static Variables

• A local variable is defined in an event procedure, and it is removed from memory when that event procedure ends.

• A static variable also is defined in an event procedure, but it retains its value when that event procedure ends.

• A static variable is a special type of local variable.

Page 19: Variables / Scope. Variable Memory location whose value can change as the program is running. Used to hold temporary information Used to control the type.

Swapping

• To swap the contents of two variables:– assign the first variable’s value to a temporary

variable– assign the second variable’s value to the first

variable– assign the temporary variable’s value to the

second variable

Page 20: Variables / Scope. Variable Memory location whose value can change as the program is running. Used to hold temporary information Used to control the type.

Option Explicit Statement

• Doesn’t allow you to create variables “on the fly.”

• Enter in every form’s, and every code module’s, General declarations section.

• Use Tools, Options, Environment tab, Require Variable Declaration to have Visual Basic include Option Explicit in every new form and module.

Page 21: Variables / Scope. Variable Memory location whose value can change as the program is running. Used to hold temporary information Used to control the type.

Creating a Symbolic Constant

• A memory location whose value cannot change during run time.

• Syntax: [Public] Const constname [As datatype] = expression

• Examples:– Const conPi As Single = 3.141593– Public Const conMaxAge as Integer = 65

Page 22: Variables / Scope. Variable Memory location whose value can change as the program is running. Used to hold temporary information Used to control the type.

Scope of a Symbolic Constant

• Indicates which procedures can use the symbolic constant.

• Global: Public Const statement in a code module’s General declarations section.

• Form-level: Const statement in the form’s General declarations section.

• Local: Const statement in an event procedure.

Page 23: Variables / Scope. Variable Memory location whose value can change as the program is running. Used to hold temporary information Used to control the type.

Numeric Types

• Integer - 2 bytes of memour– a 16-bit signed integer – whole number between -32768 and 32767

• long - 4 bytes of memory– a 32-bit signed integer (+/- 2^31)– whole number between 2,147,483,648 and 2,147,483,648

• single - 4 bytes of memory– a single-precision decimal floating point number– +/- 1.401298e-45 to 3.402823e38

• double - - 8 bytes of memory– a double-precision decimal floating point number– +/- 4.94065645841247e-324 to 1.79769313486232e208

Page 24: Variables / Scope. Variable Memory location whose value can change as the program is running. Used to hold temporary information Used to control the type.

Arithmetic Operations (1)

• n=5 integer (long or short) or floating point• y=a+b y=a-b, y=a*b (add/subtract/multiply)• z=x / y divides two numbers and returns a

floating point • z=x mod y divides two numbers and returns only

the remainder.• z=x \ y divides two numbers and returns an

integer result

Page 25: Variables / Scope. Variable Memory location whose value can change as the program is running. Used to hold temporary information Used to control the type.

Arithmetic Operations (2)

• isnumeric(thing) returns TRUE if thing is numeric

• randomize(number) initializes the random number generator

• n=rnd(x) returns random number 0 <= x < 1• s=str(number) converts a number to a string• n=val(string) converts a string to a number• n=rgb(red,green,blue) returns RGB color value• n=sgn(x) returns 1,0,-1 if x is pos., zero, neg.

Page 26: Variables / Scope. Variable Memory location whose value can change as the program is running. Used to hold temporary information Used to control the type.

Boolean Operations (1)

• Consume 2 bytes of memory

• result = exp1 And exp2– true only if both exp1 AND exp2 are true

• result = expression1 or expression2– true if either or both exp1 OR exp2 are true

• result = NOT exp1– true if exp1 is false, false if expression is true

Page 27: Variables / Scope. Variable Memory location whose value can change as the program is running. Used to hold temporary information Used to control the type.

Comparisons

• x<y, x<=y, x=y, x<>y, x>y, x>=y where x, y can be strings or numbers

• y = a is b returns true if a & b are the same object• y = string like pattern• y=StrComp(string1, string2[, compare])

compares two strings based on the compare type• typeof object returns an object's type

– Can only be used as part of an if statement

if typeOf thing is label then thing.backcolor=vbGreen

Page 28: Variables / Scope. Variable Memory location whose value can change as the program is running. Used to hold temporary information Used to control the type.

String Operations

Page 29: Variables / Scope. Variable Memory location whose value can change as the program is running. Used to hold temporary information Used to control the type.

String Manipulation Functions

• Left(string, length)– returns the leftmost length characters in the

string

• Right(string, length) – returns the rightmost length characters in the

string

• Mid(string, start[, length])– returns length characters from string, beginning

with start

Page 30: Variables / Scope. Variable Memory location whose value can change as the program is running. Used to hold temporary information Used to control the type.

Instr Function

• Instr(start, string1, string2[,compare]– start is a numeric expression that sets the

starting position for the search– string1 is the string expression being searched– string2 is the string expression being sought– compare is either 0 (default; case-sensitive) or 1

(case-insensitive)– returns the starting position of string2 within

string1

Page 31: Variables / Scope. Variable Memory location whose value can change as the program is running. Used to hold temporary information Used to control the type.

Trim, LTrim, RTrim

• Trim(string) - removes leading and trailing spaces from a string

• LTrim(string) - removes leading spaces from a string

• RTrim(string) - removes trailing spaces from a string

Page 32: Variables / Scope. Variable Memory location whose value can change as the program is running. Used to hold temporary information Used to control the type.

String Concatenation

• Ampersand - &• Examples: (Assume strFirstName contains “Mary” and

sngSales contains 1000)

– “Hello “ & strFirstName– strFirstName & “ sold $“ & sngSales & “.”

• Results:– Hello Mary– Mary sold $1000.

Page 33: Variables / Scope. Variable Memory location whose value can change as the program is running. Used to hold temporary information Used to control the type.

String Operations (1)

• Strings consume 0-2 Billion bytes of memory, but on;y as much as needed - very efficient

• s=“Strings are always defined in quotes”• & - String coercion and concatenation• s=str(number) converts the number to a string• n=val(string) tries to convert the string to a number• s=ucase(string) converts string to upper case• s=lcase(string) converts string to lower case• string1=lset(string2) left justifies string2 in string1with

trailing spaces (there is also an rset)

Page 34: Variables / Scope. Variable Memory location whose value can change as the program is running. Used to hold temporary information Used to control the type.

String Operations (2)

• n=asc(string) converts first character to a 0-255 ASCII character code

• s=chr(character-code) returns a string containing the respective character

• s=hex(num) returns the hex value of num as a string (oct returns octal value)

• s=inputbox(prompt, title) Displays a prompt in a dialog box, waits for the user input and returns a String containing the contents of the text box

Page 35: Variables / Scope. Variable Memory location whose value can change as the program is running. Used to hold temporary information Used to control the type.

String Operations (3)

• n=len(string) returns integer length of string• s=ltrim(string) removes leading spaces• s=rtrim(string) removes trailing spaces• s=trim(string) removes surrounding spaces• s=space(n) returns a string of n spaces• s=left (string,n) returns the left n characters of

string• s=right(string,n) returns the right n characters of

string

Page 36: Variables / Scope. Variable Memory location whose value can change as the program is running. Used to hold temporary information Used to control the type.

String Operations (4)

• s=mid(string,start,n) Returns n characters beginning at character #start

• Mid(stringvar, start[, n]) = str2 replaces n characters in stringvar with characters in str2

• n=InStr(string1, string2) searches for string2 inside string1 and returns the integer position of the start

• s=string(n,char) returns an n-character string filled with char

Page 37: Variables / Scope. Variable Memory location whose value can change as the program is running. Used to hold temporary information Used to control the type.

Date / Time / Misc

Page 38: Variables / Scope. Variable Memory location whose value can change as the program is running. Used to hold temporary information Used to control the type.

Date/Time related Statements

• Date Data Types consume 8 bytes of memory• Date comparison - if somedate < #12/31/1993# then ….• d = Now - returns system date and time as date type• d = date - returns system date as date type• d$ = date$ - returns system date as string• d = time - returns system time as a date type• time = valid-time - sets the system time !!!!!!!!!!!!!• d$ = time$ - returns system time as a string• i = timer - integer number of seconds since midnight• n=weekday|month|day|year (date) Returns whole number

representing the weekday|month|day|year

Page 39: Variables / Scope. Variable Memory location whose value can change as the program is running. Used to hold temporary information Used to control the type.

• DateAdd() – Add value to a date• DateDiff() – Returns difference between 2 dates• DatePart() – Return parts from a date• Dim FirstDate As Date• Dim K As String • Dim N As Integer • Dim Msg • k= "m" ‘we will be adding months to our date • FirstDate = InputBox("Enter a date") ‘like 9/1/2001 • N = InputBox("Enter number of months to add") • Msg = "New date: " & DateAdd(k, N, FirstDate) • MsgBox Msg • The above program will return 12/1/2002 when we add 15

(months) to 9/1/2001. If k =“d”, and it will add days.

Page 40: Variables / Scope. Variable Memory location whose value can change as the program is running. Used to hold temporary information Used to control the type.

Misc

• beep - beeps the computer’s speaker (sort of)• n=vartype(variable) returns an integer

corresponding to variable type• n=rgb(red,green,blue) sets n to a long integer

representing a color made up of red, green, blue (0-255). 0,0,0 = black 255,255,255 = white

• n=qbcolor(x) where x is one of the 16 Quick Basic colors 0-15