Senin, 12 Oktober 2015

Looping Visual Basic 6.0

In lesson 7 and lesson 8, we have learned how to handle decisions making process using If...Then...Else and also Select Case program structures in Visual Basic. Another procedure that involves decisions making is looping. Visual Basic allows a procedure to be repeated many times until a condition or a set of conditions is fulfilled. This is generally called looping . Looping is a very useful feature of Visual Basic because it makes repetitive works easier. There are  two kinds of loops in Visual Basic,  the Do...Loop and the For.......Next loop.

9.1 Do Loop

The Do Loop statements have three different forms, as shown below:
a) Do While condition
     Block of one or more VB statements
     Loop


b)   Do 
    Block of one or more VB statements 
     Loop While condition

c)    Do Until condition 
              Block of one or more VB statements 
       Loop


d)    Do 
     Block of one or more VB statements
       Loop Until condition

Example 9.1

     Do while counter <=1000
       num.Text=counter
       counter =counter+1
     Loop
* The above example will keep on adding until counter >1000.
The above example can be rewritten as
   Do
       num.Text=counter 
       counter=counter+1
    Loop until counter>1000

9.2 Exiting the Loop

Sometime we need exit to exit a loop earlier when a certain condition is fulfilled. The keyword to use is  Exit Do. You can examine Example 9.2 for its usage.

Example 9.2

Dim sum, n As Integer
 Private Sub Form_Activate()
List1.AddItem "n" & vbTab & "sum"
Do
   n = n + 1
   Sum = Sum + n
 List1.AddItem n & vbTab& Sum
 If n = 100 Then
 Exit Do
 End If
  Loop
End Sub
Explanation
In the above example, we compute the summation of 1+2+3+4+……+100.  In the design stage, you need to insert a ListBox into the form for displaying the output, named List1. The program uses the AddItem method to populate the ListBox. The statement List1.AddItem "n" & vbTab & "sum" will display the headings in the ListBox, where it uses the vbTab function to create a space between the headings n and sum.

9.3  For....Next Loop

The For....Next Loop event procedure is written as follows: 
 
For counter=startNumber to endNumber (Step increment)
    One or more VB statements

Next

Example 9.3 a

   For  counter=1 to 10
      display.Text=counter
   Next

Example 9.3 b

For counter=1 to 1000 step 10
     counter=counter+1
Next

Example 9.3 c

  For counter=1000 to 5 step -5
      counter=counter-10
  Next
*Notice that the increment can be negative
Sometimes the user might want to get out from the loop before the whole repetitive process is executed, the command to use is Exit For. To exit a For….Next Loop, you can place the Exit For statement within the loop; and it is normally used together with the If…..Then… statement. Its usages is shown in Example 9.3 d.

Example 9.3 d

Private Sub Form_Activate( )
For n=1 to 10
If n>6 then
Exit For
End If
Else
Print n
End If
End Sub

9.4 Nested For...Next  Loop

When you have a loop within a loop, then you have created a nested loop. You can actually have as many loops as you want in a nested loop provided the loops are not the never-ending type. For a nested loop that consists of two loops, the first cycle of the outer loop will be processed first, then it will process the whole repetitive process of the inner loop, then the second cycle of the outer loop will be processed and again the whole repetitive process of the inner loop will be processed. The program will end when the whole cycle of the outer loop is processed.  
The Structure of a nested loop is : 
For counter1=startNumber to endNumber (Step increment)
    For counter2=startNumber to endNumber (Step increment)
        One or more VB statements
    Next counter2
Next  counter1

Example 9.4

Private Sub Form_Activate ( )
    For  firstCounter= 1to 5
      Print “Hello”
    For   secondCounter=1 to 4
      Print “Welcome to the VB tutorial”
    Next secondCounter
  Next firstCounter
     Print” Thank you”
End Sub
 

Figure 9.1

The output of the above program is shown in Figure 9.1. As the outer loop has five repetitions, it will print the word “Hello” five times. Each time after it prints the word “Hello”, it will print four lines of the “Welcome to the VB tutorial” sentences as the inner loop has four repetitions.

9.5 The While….Wend Loop

The structure of a While….Wend Loop is very similar to the Do Loop. it takes the following form:
 While condition
        Statements
Wend
 The above loop means that while the condition is not met, the loop will go on. The loop will end when the condition is met. Let’s examine the program listed in example 9.4.

Example 9.5

Dim sum, n  As Integer
Private Sub Form_Activate()
List1.AddItem "n" & vbTab & "sum"
While n <> 100
n = n + 1
Sum = Sum + n
 List1.AddItem n & vbTab & Sum
Wend
End Sub


Select Case Control Structure

In previous lesson, we have learned how to control the program flow using If...Then...ElseIf control structure. In this chapter, you shall learn another way to control the program flow, that is, the Select Case control structure. However, the Select Case control structure is slightly different from the If....ElseIf control structure .
The difference is that the Select Case control structure can handle conditions with multiple outcomes in an easier manner than the If...Then...ElseIf control structure. If...Then...ElseIf control structure basically used to handle a single condition having more than two outcomes. Though If...Then...ElseIf control structure may also be used compute conditions with multiple outcomes, we need to use more than two levels of nested If...Then...ElseIf statements, this can make it difficult to read the codes. Therefore, the Select Case control structure is preferred when there exist many different conditions.
The format of the Select Case control structure is show below:
Select Case expression
Case value1 
        Block of one or more VB statements 
  
 Case value2 
        Block of one or more VB Statements 
   
Case value3 
            . 
            . 
  
 Case Else 
        Block of one or more VB Statements
End Select

Example 8.1

Dim grade As String
Private Sub Compute_Click( )
grade=txtgrade.Text
Select Case grade
  Case  "A" 
       result.Caption="High  Distinction"
  Case "A-" 
      result.Caption="Distinction"
  Case "B" 
        result.Caption="Credit"
  Case "C" 
        result.Caption="Pass"
  Case Else 
        result.Caption="Fail"
  End Select
End Sub

Example 8.2

Dim mark As Single

Private Sub Compute_Click() 
'Examination Marks
 mark = mrk.Text 
  
Select Case mark
 Case Is >= 85 
  
     comment.Caption = "Excellence"
Case Is >= 70 
  
    comment.Caption = "Good"

Case Is >= 60
   comment.Caption = "Above Average"
Case Is >= 50
comment.Caption = "Average"
Case Else
comment.Caption = "Need to work harder"
End Select
End Sub

Example 8.3

Example 8.2 can be rewritten  as follows:


Dim mark As Single
Private Sub Compute_Click()
'Examination Marks
mark = mrk.Text


Select Case mark
 Case 0 to 49
comment.Caption =" Need to work harder"
Case 50 to 59
comment.Caption = "Average"
Case 60 to 69
comment.Caption = "Above Average"
Case 70 to 84
comment.Caption = "Good"
Case Else
comment.Caption = "Excellence"
End Select
End Sub


Controlling Program Flow

In previous lessons, we have learned how to create Visual Basic code that can accept input from the user and display the output without controlling the program flow. In this chapter, you will learn how to crreate VB code that can make decision when it process input from the user, and control the program flow in the process. Decision making process is an important part of programming because it can help to solve practical problems intelligently so that it can provide useful output or feedback to the user. For example, we can write a  program that can ask the computer to perform certain task until a certain condition is met.

7.1  Conditional Operators

To control the VB program flow, we can use various conditional operators. Basically, they resemble mathematical  operators. Conditional operators are very powerful tools, they let the VB program compare data values and then decide what action to take, whether to execute a program or terminate the program and more. These operators are shown in Table 7.1.

Table 7.1: Conditional Operators

Operator
Meaning
=
Equal to
> 
More than
< 
Less Than
>=
More than or equal
<=
Less than or equal
<> 
Not Equal to

7.2  Logical Operators

In addition to conditional operators, there are a few logical operators that offer added power to the VB programs. They are shown in Table 7.2.

Table 7.2:Logical Operators

Operator
Meaning
And
Both sides must be true
or
One side or other must be true
Xor
One side or other must be true but not both
Not
Negates truth
* You can also compare strings with the operators. However, there are certain rules to follow where upper case letters are less than lowercase letters, and number are less than letters.

7.3  Using  If.....Then.....Else  Statements  with Operators

To effectively control the VB program flow, we shall use If...Then...Else statement together with the conditional operators and logical operators. 
The general format for the if...then...else statement is
If  conditions Then
VB expressions
Else
VB expressions
End If

Example 7.1:
  Private Sub OK_Click()
    firstnum=Val(usernum1.Text)
    secondnum=Val(usernum2.Text)
    If total=firstnum+secondnum And Val(sum.Text)<>0 Then 
    correct.Visible = True 
   wrong.Visible = False
else
   correct.Visible = False
    wrong.Visible = True
End If  
End Sub



Working with Variables

6.1 Assigning Values to Variables

After declaring various variables using the Dim statements, we can assign values to those variables. The general format of an assignment is
Variable=Expression
The variable can be a declared variable or a control property value. The expression could be a mathematical expression, a number, a string, a Boolean value (true or false) and more. The following are some examples:
firstNumber = 100 
secondNumber = firstNumber-99 
userName="John Lyan" 
userpass.Text = password 
Label1.Visible = True 
Command1.Visible = false 
Label4.Caption = textbox1.Text 
ThirdNumber = Val(usernum1.Text) 
total = firstNumber +
secondNumber+ThirdNumber

6.2 Operators in Visual Basic

To compute inputs from users and to generate results, we need to use various mathematical operators. In Visual Basic, except for + and -, the symbols for the operators are different from normal mathematical operators, as shown in Table 6.1.
Table 6.1: Arithmetic Operators
Operator
Mathematical function
Example
^
Exponential
2^4=16
*
Multiplication
4*3=12,  
/
Division
12/4=3
Mod
Modulus (returns the remainder from an integer division)
15 Mod 4=3   
\
Integer Division(discards the decimal places)
19\4=4
+ or &
String concatenation
"Visual"&"Basic"="Visual Basic"
 
Example 6.1
Private Sub Command1_Click()
Dim firstName As String
Dim secondName As String
Dim yourName As String
firstName = Text1.Text
secondName = Text2.Text
yourName = secondName + "  " + firstName
Label1.Caption = yourName
End Sub
In this example, three variables are declared as string. For variables firstName and secondName will receive their data from the user’s input into textbox1 and textbox2, and the variable yourName will be assigned the data by combining the first two variables. Finally, yourName is displayed on Label1.
Example 6.2
Dim number1, number2, number3 as Integer
Dim total, average as variant
Private sub Form_Click
number1=val(Text1.Text) 
number2=val(Text2.Text) 
number3= val(Text3.Text)
Total=number1+number2+number3
Average=Total/5
Label1.Caption=Total
Label2.Caption=Average
End Sub
In the Example 6.2, three variables are declared as integer and two variables are declared as variant. Variant means the variable can hold any data type. The program computes the total and average of the three numbers that are entered into three text boxes.


Managing Visual Basic Data

There are many types of data that we come across in our daily life. For example, we need to handle data such as names, addresses, money, date, stock quotes, statistics and more everyday. Similarly in Visual Basic, we have to deal with all sorts of  of data, some can be mathematically calculated while some are in the form of text or other forms. VB divides data into different types so that they are easier to manage when we need to write the code involving those data.

5.1 Visual Basic Data Types

Visual Basic classifies the information mentioned above into two major data types, they are the numeric data types and the non-numeric data types.
5.1.1 Numeric Data Types
Numeric data types are types of data that consist of numbers, which can be computed mathematically with various standard operators such as add, minus, multiply, divide and more. Examples of numeric data types are examination marks, height, weight, the number of students in a class, share values, price of goods, monthly bills, fees and others.
In Visual Basic, numeric data are divided into 7 types, depending on the range of values they can store. Calculations that only involve round figures or data that does not need precision can use Integer or Long integer in the computation. Programs that require high precision calculation need to use Single and Double decision data types, they are also called floating point numbers. For currency calculation , you can use the currency data types. Lastly, if even more precision is required to perform calculations that involve a many decimal points, we can use the decimal data types. These data types summarized in Table 5.1

Table 5.1: Numeric Data Types

http://www.vbtutor.net/vb6/images/figurel5.1.jpg

5.1.2 Non-numeric Data Types

Nonnumeric data types are data that cannot be manipulated mathematically. Non-numeric data comprises string data types, date data types, boolean data types that store only two values (true or false), object data type and Variant data type .They are summarized in Table 5.2

Table 5.2:  Nonnumeric Data Types

Data Type
Storage
Range
String(fixed length)
Length of string
1 to 65,400 characters
String(variable length)
Length + 10 bytes
0 to 2 billion characters
Date
8 bytes
January 1, 100 to December 31, 9999
Boolean
2 bytes
True or False
Object
4 bytes
Any embedded object
Variant(numeric)
16 bytes
Any value as large as Double
Variant(text)
Length+22 bytes
Same as variable-length string

 

5.1.3 Suffixes for Literals

Literals are values that you assign to data. In some cases, we need to add a suffix behind a literal so that VB can handle the calculation more accurately. For example, we can use num=1.3089# for a Double type data. Some of the suffixes are displayed in Table 5.3.

Table 5.3

Suffix
Data Type
&
Long
!
Single
#
Double
@
Currency
In addition, we need to enclose string literals within two quotations and date and time literals within two # sign. Strings can contain any characters, including numbers. The following are few examples:
memberName="Turban, John." 
TelNumber="1800-900-888-777" 
LastDay=#31-Dec-00# 
ExpTime=#12
:00 am#

5.2 Managing Variables

Variables are like mail boxes in the post office. The contents of the variables changes every now and then, just like the mail boxes. In term of VB, variables are areas allocated by the computer memory to hold data. Like the mail boxes, each variable must be given a name. To name a variable in Visual Basic, you have to follow a set of rules. All modern programming languages such as PHP (PHP runs on hosts like iPage - see hosting review) allow us developers to use variables to store and retrieve data.  Each language has its own special syntax to learn.

5.2.1 Variable Names

The following are the rules when naming the variables in Visual Basic
·         It must be less than 255 characters
·         No spacing is allowed
·         It must not begin with a number
·         Period is not permitted
Examples of valid and invalid variable names are displayed in Table 5.4

Table 5.4

Valid Name
Invalid Name
My_Car
My.Car 
ThisYear
1NewBoy
Long_Name_Can_beUSE
He&HisFather                  *& is not acceptable
 
5.2.2 Declaring Variables Explicitly
In Visual Basic, it is a good practice to declare the variables before using them by assigning names and data types. They are normally declared in the general section of the codes' windows using the Dim statement. You can use any variable to hold any data, but different types of variables are designed to work efficiently with different data types .
The syantax is as follows:
Dim VariableName As DataType
If you want to declare more variables, you can declare them in separate lines or you may also combine more in one line , separating each variable with a comma, as follows:
Dim VariableName1 As DataType1, VariableName2 As DataType2,VariableName3 As DataType3
Example 5.1
Dim password As String 
Dim yourName As String 
Dim firstnum As Integer 
Dim secondnum As Integer 
Dim total As Integer
Dim doDate As Date 
Dim password As String,  yourName As String, firstnum As Integer
Unlike other programming languages, Visual Basic actually doesn't require you to specifically declare a variable before it's used. If a variable isn't declared, VB will automatically declare the variable as a Variant. A variant is data type that can hold any type of data.
For string declaration, there are two possible types, one for the variable-length string and another for the fixed-length string. For the variable-length string, just use the same format as example 5.1 above. However, for the fixed-length string, you have to use the format as shown below:
Dim VariableName as String * n, where n defines the number of characters the string can hold.
Example 5.2:
Dim yourName as String * 10
yourName can holds no more than 10 Characters.  

5.2.2 Scope of Declaration

Other than using the Dim keyword to declare the data, you can also use other keywords to declare the data. Three other keywords are private ,static and public. The forms are as shown below:
Private VariableName as Datatype
Static VariableName as Datatype
Public VariableName as Datatype
The above keywords indicate the scope of declaration. Private declares a local variable, or a variable that is local to a procedure or module. However, Private is rarely used, we normally use Dim to declare a local variable. The Static keyword declares a variable that is being used multiple times, even after a procedure has been terminated.  Most variables created inside a procedure are discarded by Visual Basic when the procedure is finished, static keyword preserve the value of a variable even after the procedure is terminated. Public is the keyword that declares a global variable, which means it can be used by all the procedures and modules of the whole program.

5.3 Constants

Constants are different from variables in the sense that their values do not change during the running of the program.

5.3.1 Declaring a Constant

The format to declare a constant is
Constant Name  As Data Type = Value

Example 5.3

Const Pi As Single=3.142
Const Temp As Single=37
Const Score As Single=100