1 / 40

Variables / Scope

Variables / Scope. 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

ozzy
Télécharger la présentation

Variables / Scope

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

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. Byte Boolean Currency Date Double Integer Long Object Single String Variant Data Types

  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. Byte byt Boolean bln Currency cur Date/Time dtm Double dbl Integer int Long lng Object obj Single sng String str Variant vnt Three-character Ids

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

  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, 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 • typeofobject 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 - returnssystem 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

More Related