Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "Variables / Scope. Variable Memory location whose value can change as the program is running. Used to hold temporary information Used to control the type."— Presentation transcript:

1 Variables / Scope

2 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

3 Data Types Byte Boolean Currency Date Double Integer Long Object Single String Variant

4 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

5 Variable Names Should be meaningful First three characters should represent the data type Remainder of name should represent the variable’s purpose

6 Three-character Ids Byte byt Booleanbln Currency cur Date/Time dtm Doubledbl Integerint Longlng Objectobj Singlesng Stringstr Variantvnt

7 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.

8 Creating (declaring) a Variable Dim variablename [As datatype] Public variablename [As datatype]

9 Assigning Values to Variables Assignment statement –variablename = value Examples: –sngHours = 38.5 –curBonus = curSales *.1 –strName = “Susan”

10 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

11 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.

12 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.

13 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.

14 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.

15 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.

16 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

17 Static Variable example Goal: count the number of times a routine is entered private sub command1_click() dim counter as integer counter=counter+1 debug.print counter end sub Does NOT work unless counter is declared using static instead of dim

18 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.

19 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

20 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.

21 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

22 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.

23 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

24 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

25 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.

26 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

27 Comparisons 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

28 String Operations

29 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

30 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

31 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

32 String Concatenation Ampersand - & Examples: (Assume strFirstName contains “Mary” and sngSales contains 1000) –“Hello “ & strFirstName –strFirstName & “ sold $“ & sngSales & “.” Results: –Hello Mary –Mary sold $1000.

33 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)

34 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

35 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

36 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

37 Date / Time / Misc

38 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

39 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.

40 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


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

Similar presentations


Ads by Google