1 / 22

IS437: Fall 2004 Instructor: Dr. Boris Jukic

IS437: Fall 2004 Instructor: Dr. Boris Jukic. Data Types, Constants, Variables, Scope, Conversion. Learning Objectives. data types - variables and constants - scope & lifetime - declaration (option explicit, option strict) assignment - numeric - string

telyn
Download Presentation

IS437: Fall 2004 Instructor: Dr. Boris Jukic

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. IS437: Fall 2004Instructor: Dr. Boris Jukic Data Types, Constants, Variables, Scope, Conversion

  2. Learning Objectives • data types • - variables and constants • - scope & lifetime • - declaration (option explicit, option strict) • assignment • - numeric • - string • - date • some useful functions & controls • - type conversion

  3. Frequently-used data types • integer • short 2 bytes -32,768 to +32,767 • integer 4 bytes about +/- 2 billion • long 8 bytes a very large integer number • real • decimal 16 bytes 0 to 28 digits of accuracy • single 4 bytes 38 to 45 digits of accuracy • double 8 bytes 308 to 324 digits of accuracy • Boolean 2 bytes true or false • string 2 bytes for each character up to 2 billion Unicode characters • date 8 bytes • object 4 bytes

  4. Constants • Named constants: (programmer defined) • e.g., const pi as single = 3.1415 • const taxRate as single =0.07 • Intrinsic constants: (system provided) • e.g., Color.White • Color.Blue • Color.Red • Color.Yellow • Color.Green • ...

  5. Structure of a VB Application solution Project (s) Form(s) Controls

  6. Scope of variables & constants project level variables: variables declared using the Public declaration Public z as integer Public const k as integer = 15 module-level (form): variables declared using the Private declaration private y as integer private const j as integer = 5 local (sub): variables declared using the Dim declaration dim i as integer const m as short = 8 block (within a loop) For i = 0 to 3 dim k as integer … Next i

  7. Lifetime of Variables • local: only alive during the execution of a procedure or a block of code • For temporary results/values • - form-level: alive as long as the form remains loaded (typically the whole lifetime of a project) • (namespace) project : project • If values are to be preserved after the project itself is not active • External data depositories

  8. Declaration of Variables & Constants • “option explicit on” as default to enforce • declaration • Why is declaration a good idea? • - e.g., dim monument as integer • rebates = 345678 • …. • rebtaes = rebates+ 75 • ‘the error will be detected if declaration is mandatory • …. • local declaration • - e.g., Private Sub command1_click(…) … • dim x as integer • dim y • const MARKUP as single = 0.14 • … • End sub

  9. Declaration of Variables & Constants • form-level declaration • where? In a declaration section of the form • private x, y, z as integer • private const rstmsg as string = “Please Reset all Values” • project-level declaration • where? It is good practice to declare them all in a single module. (show in class) • public x as integer • publicconst COMP_NAME as string = “First Trust and Bank” • publicconst MAX_BONUS as decimal = 11500

  10. Variable Declaration

  11. Project-level Declaration

  12. Project (s) - declare public var. & constants - utility procedures such as sort, etc. Form(s) code module Controls Structure of a VB Application solution

  13. Choosing the variable scope • Choose the variable and constant scope as narrow as possible • minimizes computational needs of the code • Makes code more modular, divided into useful, independent components

  14. Recommended Naming Conventions • prefix • integer • integer int • long lng • real • decimal dec • single sng • double dbl • Boolean bln • string str • date dat ScopePrefix project g module (form) m local none For example: gstrCustomerName

  15. Assignment (numeric) • operators • + addition • - subtraction • * multiplication • / division • ^ exponentiation • \ integer division 5 \ 2 = 2 • mod modulus 5 mod 2 = 1 • e.g., a = (5 * 4) / 2

  16. Assignment (string variable) • empty string • - e.g., dim x as string • x = ““ • text1.text = x • assign one string to another • - e.g., text2.text = text1.text • string concatenation using “&” • - e.g., dim firstname, lastname as string • firstname = “John” • lastname = “Smith” • label1.text = firstname & “ “ & lastname • concatenate with itself • - e.g., dim name as string • name = “Roberts” • name = name & “ Rogers” John Smith

  17. Assignment (Date) • e.g., dim date1, date2 as Date • date2 = #3-6-98 2:15# • date2 = #March 6, 1998 2:15 pm# • date2 = #14:15# • date1 = “1/20/97” with option strict off • date1 = “2:12 am” with option strict off

  18. Option Strict • “Option Strict Off” is the default setting. • Change the setting by typing “Option Strict On” at the top of the code window. • With “Option Strict On”, the system strictly enforces data type checking. • Data conversion from “wider” to “narrower” data type is not allowed • Conversion between string and numeric types is not allowed • This prevent many hard to find bugs and execution errors

  19. Option Strict • With “Option Strict Off”, it is okay to write: Dim s as string, i as single s = “34” i = s / 2 • With “Option Strict On”, the code above will generate an error message: Option Strict On disallows implicit conversion from string to single.

  20. Widening & narrowing Widening: store a variable value into another variable with greater precision or magnitude Narrowing: the reverse Dim i as integer Dim j as long i = 35 j = i Widening

  21. Narrowing (Option Strict Off) Dim i As Integer ‘4-bytes Dim j As Long ‘8-bytes j = 3000000000 i = j The above code will generate a runtime exception, but not a warning in design time.

  22. Data type conversion functions Function Convert its argument to Dim x as integer Dim s as string x = 5 s = CStr(x) CStr string CInt integer CLng long CSng single CDbl double CDec decimal CDate date … s = “5” Dim d as date Dim s as string s = “01/15/2003” d = CDate(s) d = #01/15/2002#

More Related