340 likes | 467 Views
Enterprise Development Using Visual Basic 6.0 Autumn 2002 Tirgul #2. Short Quiz. What is a property? What is the difference between Sub and Function? Write a sub that gets 2 integers and perform an Add operation Write the same as function. Objective. Variables types In a nutshell
E N D
Enterprise Development Using Visual Basic 6.0 Autumn 2002Tirgul #2 ‘Tirgul’ # 2
Short Quiz • What is a property? • What is the difference between Sub and Function? • Write a sub that gets 2 integers and perform an Add operation • Write the same as function ‘Tirgul’ # 2
Objective • Variables types • In a nutshell • If - Then - Else • Case • Loops • Write general sub procedures • Write user-defined functions • Examine some String manipulations ‘Tirgul’ # 2
Sub test() static i As Integer i= i + 1 End Sub Sub test() dim i As Integer i= i + 1 End Sub Declaring Variables • Private , public – In a general module • Dim (Inside a sub/form) • New memory location to a variable • Static(Inside a sub/form) • retains its value between procedure calls • uses same memory location and keeps old value • Use static for variables whose values are persistent (totals, counts, etc.) • Const – for constants ‘Tirgul’ # 2
Declaring Variables 2 dim counter As Integer private middleName As String Static Index as Integer Public const ARRAY_SIZE= 10 ‘Tirgul’ # 2
Declaring Variables 3 Data Types • Boolean- True or false • Date - From Jan 1, 100 to Dec 31, 9999 • Integer - Numbers without a decimal point • Long - Long integer • Single - Numbers with a decimal point • Double - Long Single • Currency - Dollar amounts • String - Character and alphanumeric data • Object- Any object reference such as Word document • Variant- default, can hold any data type ‘Tirgul’ # 2
Data conversion • Int to String? Use STR • String to Int? Use Cint • String to Numeric? Use Val – (Generic) Str(num) Cint(Str) Val(Str) ‘Tirgul’ # 2
Decisions in VB • Used to alter the flow of a program while program is running • based on TRUE/FALSE IfconditionThen statements to be executed ifconditionis true End If ‘Tirgul’ # 2
Decisions in VB 2 • Complementary condition • Use Else to perform both cases IfconditionThen statements to be executed ifconditionis TRUE Else statements to be executed ifconditionis FALSE If ‘Tirgul’ # 2
Example If index > 10 Then print “Index > 10” End If If index > 10 Then print “Index > 10” Else print ? End If ‘Tirgul’ # 2
Indentation!!! • I rest my case… ‘Tirgul’ # 2
More IF Examples If index > 10 AND printFlag = true Then print “Index > 10” End If If index > 10 OR printFlag = true Then print ? End If ‘Tirgul’ # 2
Using IF in actual VB programming FALSE TRUE TRUE FALSE ‘Tirgul’ # 2
Code: If opt1.Value = True Then print “Option 1 selected” End If If opt1.Value = Checked Then print “Option 1 selected” Else print “Option 2 selected” End If ‘Tirgul’ # 2
Case Structure • Case Can replaces IF • Codereadability – Important issue! • valueList options • Case 1 • Case 2 to 5 • Case 6, 9 • Case Is >= 10 • Case “text” ‘Tirgul’ # 2
Example Select Case textValue Case “Print” print Case “send” sendMail Case Else defaultAction End Select ‘Tirgul’ # 2
Loops • The group of repeated instructions is called a loop • a single execution of the statements in the loop is called an iteration • All loops must have a mechanism to control the number of iterations • Breaking point! ‘Tirgul’ # 2
For / Next Loops • Format: ForloopIndex = initialValuetotestValue [Stepincrement] body of loop NextloopIndex • Items enclosed in [ ] are optional • loopIndex index is declared before • loopIndex must be a numeric variable, testValuemay be any numeric expression (e.g. function) • Use For when you know the number of iterations. ‘Tirgul’ # 2
Example Dim index as integer For index = 1 to 10 print index Next index ‘Tirgul’ # 2
Procedures • Event procedures - • associated with control events • bounded by Sub and End Sub • General procedures - • not associated with events • consist of statements that are grouped together because they perform a specific task ‘Tirgul’ # 2
Example Event Procedures Private Sub Form_Load() openConnection End Sub Private Sub cmdExit_Click() closeConnection End Sub Private Sub cmdDisplay_Click() refreshData End Sub ‘Tirgul’ # 2
General procedures • written in the General code section, but in a different window from the declarations • two types: • Sub procedure - performs an action • Function procedure - performs an action and returns a value. Format is based on mathematical notation: f(x), g(x, y) • May be user-defined or built in to VB (intrinsic) ‘Tirgul’ # 2
Review VB Intrinsic Functions • Operate on 0 or more variables, and return exactly 1 value • Functions we have already used: • Val(numeric string) • returns a numeric value • Format(number, format string) • returns a string in a specific form • Conversion functions ‘Tirgul’ # 2
Review More intrinsic functions • General math • sqr( ), abs( ), exp( ), log( ), rnd( ) • Trigonometric functions • sin( ), cos( ), tan( ) • Financial functions • String Functions ‘Tirgul’ # 2
Review StringFunctions • Len - returns the length of a string • Left, Mid, Right - returns the left, right, or middle part of a string • Instr - returns the position of one string within another, or 0 if not found • also note that “+” or “&” concatenates 2 strings together ‘Tirgul’ # 2
Example 1 PrivateSub PrintMessage( ) Print “Hello” End Sub • Sub procedure PrintMessage is called from within the Click event procedure • No arguments Private Sub cmdDisplay_Click( ) PrintMessage End Sub ‘Tirgul’ # 2
Example 2 • Sub Add_And_Print (x as Single, y as Single) • picOut.Print x + y • End Sub • Sub procedure Add_And_Print is called from within the Click event procedure • Two arguments - Score1 and Score2 Private Sub cmdDisplay_Click( ) Add_And_Print (Score1, Score2) End Sub ‘Tirgul’ # 2
Parameter passing • When variables are used as inputs (parameters) • Parameters type must be consistent • order of Parameters • Optional - [ ] Sub Output (stName as String, iNum as Integer) Print stName, iNum End Sub ‘in another Sub Call Output (“Joe”, 31) ‘ NOT Call Output(31, “Joe”) Call Output (stFirst, sAge) ‘Tirgul’ # 2
User Defined Functions • starts with the word FUNCTION • returns EXACTLY ONE value - as a given type • called by using its name on the right side of an assignment statement, returns to a variable on the left side of an assignment statement • Function Add_Two (x as Integer, y as Integer) as Integer • Add_Two = x + y • End Function • ‘ in calling sub • sum = Add_Two(5, 6) ‘Tirgul’ # 2
Sample Functions • Function Celsius (ByVal fahrentemp As Single) as Single • Celsius = 5/9*(fahrentemp - 32) • End Function • Function NewName (stFirst as String, stSec as String) as String • NewName = stFirst + “ “ + stSec • End Function ‘Tirgul’ # 2
Example Find whatever a given integer is a perfect number. ‘Tirgul’ # 2
Example(2) • Factorial Example Factorial(10) ? ‘Tirgul’ # 2
String Manipulation • Usefull String manipulations: str = “welcome mid(str,4,4) = ? (watch index!!!) str1 = “welcome” str2 = “come” InStr(1,str1,str2) = ? ‘Tirgul’ # 2
String Manipulation (2) 0vbBinaryCompare - Performs a binary comparison. 1vbTextComparePerforms a textual comparison. 2vbDatabaseCompareFor Microsoft Access performs a comparison based on information contained in your database. • StrCompfunction return variant (Integer) indicating the result of a string comparison. • Syntax : - StrComp(string1, string2,[compare]) dim MyStr1 , MyStr2 As String dim MyComp As Integer MyComp = StrComp (MyStr1, MyStr2, vbDatabaseCompare) : returns 0 MyComp = StrComp (MyStr1, MyStr2, vbBinaryCompare) : Returns - 1 MyComp = StrComp (MyStr2, MyStr1) : Returns 1 ‘Tirgul’ # 2