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