Declaration - Suraj @ LUMS
Download
Report
Transcript Declaration - Suraj @ LUMS
Introduction to
Computing
Dr. Nadeem A Khan
Lecture 7
Lab on Thursday!
Data Types
►
Already known:
String
Single
Integer
Data Types (Contd.)
►
Strings
Storage:
10 bytes + string length
Range:
0 to app. 2 billions chars.
Declaration:
Dim strVarLen As String
(declares a string of a variable length)
Data Types (Contd.)
Fixed-Length Strings
►
Storage:
Length of string
Range:
1 to app. 65, 400 chars.
Declaration:
Dim strFixLen As String * 2
(declares a string of a fix size of 2 chars.)
Data Types
Fixed-Length Strings
►
Usage:
Example
Dim strText As String * 5
Let strText = “Hello”
Picture1.Print strText
Let strText = “H”
Picture1.Print strText
Let strText = “HelloWorld”
Picture1.Print strText
Data Types
►
Fixed-Length Strings
Usage:
Result:
Hello
(Complete string)
H….
Hello
(H followed 4 spaces)
(First 5 characters only)
=> The length is fix
Data Types (Contd.)
►
Integers
Storage:
2 bytes
Range:
-32,768 to 32,767
Declaration:
Dim intExample As Integer
(declares intExample as an Integer variable)
Data Types
Integers
►
Usage:
Example
Dim count As Integer
Let count= 6
Picture1.Print count
Let count= count+1
Picture1.Print count
Let count= 6/5
Picture1.Print count
Let count= 2.33333 * 2
Picture1.Print count
Data Types
► Integer
Usage:
Result
6
7
1
5
(rounding to lower value)
(rounding to higher value)
=> takes only whole number values
Data Types (Contd.)
►
Long (Integer)
Storage:
4 bytes
Range:
-2,147,483,648 to 2,147,483,647
Declaration:
Dim lngExample As Long
(declares lntExample as a long variable)
Data Types (Contd.)
►
Long (Integer)
Usage: Same as Integer Type except the range is
much larger
Data Types (Contd.)
Byte
►
Storage:
1 byte
Range:
0 to 255
Declaration:
Dim bytExample As Byte
(declares bytExample as a Byte type variable)
Data Types (Contd.)
► Byte
Usage: Same as Integer Type except the range is
positive and much smaller
Data Types (Contd.)
Boolean
►
Storage:
2 bytes
Range:
TRUE(1) or FALSE(0)
Declaration:
Dim blnState As Boolean
(declares a Boolean type variable blnState)
Data Types (Contd.)
Boolean
►
Usage:
Example
Dim blnExample As Boolean
Let blnExample= FALSE
Picture1.Print blnExample
Let blnExample= 1
Picture1.Print blnExample
Let blnExample= 6
Picture1.Print blnExample
Let blnExample= -8*7+5.2
Picture1.Print blnExample
Data Types (Contd.)
Boolean
►
Usage:
Example
FALSE
TRUE
TRUE
TRUE
=>Values other than 0 are TRUE
Data Types (Contd.)
►
Single (Precision Floating-Point)
Storage:
4 bytes
Range:
-3.4…E38 to -1.4…E-45 (negative)
1.4…E-45 to 3.4…E38 (positive)
Declaration:
Dim sngAverage As Single
(declares a Single type variable sngAverage)
Data Types (Contd.)
►
Double (Precision Floating-Point)
Storage:
Range:
8 bytes
-1.7…E308 to -4.9…E-324 (negative)
4.9…E-324 to 1.7…E308 (positive)
Declaration:
Dim dblAverage As Double
(declares a Double type variable dblAverage)
Data Types (Contd.)
Double
►
Usage:
Example
Dim sngValue As Single, dblValue As Double
Let sngValue= 1/3
Picture1.Print sngValue
Let dblValue= 1/3
Picture1.Print dblValue
Data Types (Contd.)
►
Double
Usage:
Result
0.3333333
(Single precision)
0.333333333333333 (Double precision)
=> Value of 1/3 represented more accurately
by double than by single
Data Types (Contd.)
Double
►
Usage:
Example
Dim sngValue As Single, dblValue As Double
Let sngValue= 1/3
Let sngValue= sngValue * 100000
Picture1.Print sngValue
Let dblValue= 1/3
Let dblValue= dblValue * 100000
Picture1.Print dblValue
Data Types (Contd.)
►
Double
Usage:
Result
33333.34
(Single precision; rounding error)
33333.3333333333 (Double precision)
=> - The decimal point is floating;
- Eventually both will be subjected to rounding errors
value increases to large values
- Still Double will remain more precise than Single
Data Types (Contd.)
Currency
►
Storage:
8 bytes
Range:
-922,337,203,685,477.5808 to
922,337,203,685,477.5807
Declaration:
Dim curRevenue As Currency
(declares a Currency type variable curRevenue)
Data Types (Contd.)
►
Currency
Usage:
Example
Dim curValue As Currency
Let curValue= 1/3
Picture1.Print curValue
Let curValue= 100*1/3
Picture1.Print curValue
Data Types (Contd.)
►
Currency
Usage:
Result
0.3333
33333.3333
=> - The decimal point is NOT floating;
- Could be used for currency and scientific research
- No rounding problems for high values
Data Types (Contd.)
►Even
more data types
Date Variable: for date and time
Object Variable
Variant Variable
……….
Read the book for more info.
Local vs Form Variables
More on Operators
Not only +,-,*,^
But also:
\ opeartor
e.g: 5.1\2.04= 2
MOD operator e.g: 15.2 MOD 6=3
=> First round to closest integers before operation
More on Operators (Contd.)
► Operator
Precedence
1. ^
2.- operator (indicating a negative value)
3. * and / operator
4. \ operator
5. MOD operator
6. + and - operator
Built-in Functions
► Take
one or more input values
► Return
an output value
► Already
seen:
Val(..), Str$(..), Asc(..), Chr(..)
Built-in Numeric Functions
► Sqr:
calculates square-root and returns
the value as double data type
e.g:
Sqr(9) is 3
Sqr(0) is 0
Sqr(2) is 1.414214
Sqr(30*2+4) is 8
Built-in Numeric Functions
► Int:
Greatest integer less than and equal
to a number
e.g:
Int(2.7) is 2
Int(3) is 3
Int(-2.7) is -3
Built-in String Functions
►
Left$, Mid$, Right$, UCase$, Trim$
Left$(“fanatic”, 3) is “fan”
Right$(“fanatic”, 3) is “tic”
Left$(“12/15/93”,2) is “12”
Right$(“12/15/93”, 2) is “93”
Mid$(“fanatic”, 5,1) is “t”
Mid$(“12/15/93”,4, 2) is “15”
Ucase(“Disk”) is “DISK”
Ucase(“12two”) is “12TWO”
Trim$(“ 1 2 ”) is “1 2”
Trim$(“-12 ”) is “-12”
Built-in Functions (Contd.)
►
Len
Len(“Shenandoah”) is ?
Len(“Just a moment”) is ?
Len(“m”) is ?
Built-in Functions (Contd.)
►
Len
Len(“Shenandoah”) is 10
Len(“Just a moment”) is 13
Len(“m”) is 1
Built-in Functions (Contd.)
►
Instr
Instr(“Shenandoah” , “nand”) is ?
Instr(“Just a moment”, “ ”) is ?
Instr(“Croissant”, “ist”) is ?
Built-in Functions (Contd.)
►
Instr
Instr(“Shenandoah” , “nand”) is 4
Instr(“Just a moment”, “ ”) is 5
Instr(“Croissant”, “ist”) is 0
Built-in Functions (Contd.)
►
Format$
Format$(num, fmt)
num: number, numeric expression, string of a
number
fmt: format string
Result => String consisting of a formatted version
of the number
Built-in Functions (Contd.)
►
Function
String Value
Format$(12345.628, “Standard”)
Format$(12345.628, “Currency”)
12,345.63
$12,345.63
Format$(-1234, “Standard”)
Format$(-1234, “Currency”)
=>
Result:
-1,234.00
($1,234.00)
two digits after decimal;
Commas every three places to the left of
the decimal point;
leading ‘$’ sign for currency
Built-in Functions (Contd.)
►
Function
String Value
Format$(1/4, “Standard”)
Format$(“.2”, “Currency”)
?
?
Format$(-1234.8, “Currency”)
?
Built-in Functions (Contd.)
►
Function
String Value
Format$(1/4, “Standard”)
Format$(“.2”, “Currency”)
0.25
$0.20
Format$(-1234.8, “Currency”)
($1,234.80)
Built-in Functions (Contd.)
Other functions
►
Function
String Value
Format$(12345.628, “#,0”)
Format$(-3.6, “#,0”)
Format$(12345.678, “Percent”)
Format$(12345.678, “Scientific”)
Format$(2/3/03, “Long Date”)
Format$(2/3/03, “Medium Date”)
12,346
-4
1234567.80%
1.23E+04
Monday February 3, 2003
03-Feb-03
=>More examples on following slides
Built-in Functions (Contd.)
►
Function
String Value
Format$(12345.628, “#,0”)
Format$(-3.6, “#,0”)
12,346
-4
=> Result:
Rounded;
Commas every three places to the left of
the decimal point
Built-in Functions (Contd.)
►
Function
String Value
Format$(123.82, “#,0”)
Format$(-3.2, “#,0”)
?
?
Built-in Functions (Contd.)
►
Function
String Value
Format$(12345.628, “Percent”)
1234562.80%
=>
Result:
Multiplied by 100;
trailing % sign;
two digits after decimal
Built-in Functions (Contd.)
►
Function
String Value
Format$(.06265, “Percent”)
Format$(1/8, “Percent”)
?
?
Built-in Functions (Contd.)
►
Function
String Value
Format$(.06265, “Percent”)
Format$(1/8, “Percent”)
6.27%
12.50%
Built-in Functions (Contd.)
►
Function
String Value
Format$(12345.628, “Scientific”)
1.23E+04
=>
Result:
first number between 1 and 9.99
and of two digits after decimal;
Exponent value preceded by E and
sign;
Built-in Functions (Contd.)
►
Function
Format$(-600.228, “Scientific”)
Format$(1/8, “Scientific”)
String Value
?
?
Built-in Functions (Contd.)
►
Function
String Value
Format$(-600.228, “Scientific”)
Format$(1/8, “Scientific”)
-6.00E+02
-1.25E-01
Built-in Functions (Contd.)
Formatting dates:
►
Function
Format$(“7/4/96”, “Long Date”)
Format$(“7/4/96”, “Medium Date”)
String Value
Thursday, July 4, 1996
04-Jul-96
Built-in Functions (Contd.)
Fixed length string formatting:
►
Function
Format$(1234567890, “@@@@@@@@@@”)
Format$(123, “@@@@@@@@@@”)
Format$(“1234.56”, “@@@@@@@@@@”)
Format$(“$1,234.56”, “@@@@@@@@@@”)
Format$(1/4, “@@@@@@@@@@”)
String Value
?
?
?
?
?
Built-in Functions (Contd.)
Abs(10)
is 10
Abs(-10)
is 10
Sgn(10)
is 1
Sgn(0)
is 0
Sgn(-10)
is -1
The Keypress Event Procedure
Sub Text1_KeyPress(KeyAscii as Integer)
statements
End Sub
►
Text1_KeyPress event will occur when
Text1 has the focus and a key is pressed
The Keypress Event Procedure
(Contd.)
Sub Text1_KeyPress(KeyAscii as Integer)
statements
End Sub
► Keyascii
is a variable (of type Integer)
gets the ANSI value of the pressed key
value is used to display the corresponding
character in the Text1 at the end of this
procedure
The Keypress Event Procedure
(Contd.)
What will happen in these cases?
Sub Text1_KeyPress(KeyAscii as Integer)
Let KeyAscii =65
End Sub
Sub Text1_KeyPress(KeyAscii as Integer)
Let KeyAscii =0
End Sub
Generating Random Numbers
The function: Rnd
►
Generates a random number from 0 up to but not including 1
Picture1.Print Rnd
‘print a different number each time
Let numvar= Rnd
‘a random value is assigned
Generating Random Numbers
(Contd.)
The function: Rnd
Display numbers from the set {1,2,3,4,5,6}
randomly!
Generating Random Numbers
(Contd.)
The statement: Randomize Timer?
Generating Random Numbers
(Contd.)
The statement: Randomize Timer
Sub Command1_Click ( )
Rem Display a lottery number
Picture1.Cls
Randomize Timer
Picture1.Print Int(10*Rnd);
Picture1.Print Int(10*Rnd);
Picture1.Print Int(10*Rnd)
End Sub
Please read Chapter 4
completely