490 likes | 680 Views
Revision. Sub and Function Procedures. Topics. Sub Procedures Procedure Parameters Function Procedures Modular Design. What is a procedure?. A general procedure is a set of commands that is given a name so that it can be invoked by another part of the program
E N D
Revision Sub and Function Procedures
Topics • Sub Procedures • Procedure Parameters • Function Procedures • Modular Design
What is a procedure? • A general procedure is a set of commands that is given a name so that it can be invoked by another part of the program • Code written to perform one well-defined subtask is referred to as a Sub procedure or function • Procedures make a program easier to develop, test, and correct
General Procedures • In Visual Basic, there are two types of procedures: • Sub • Function • As a rule, a Sub procedure should perform only one task, or several closely related tasks, and should be kept relatively small • Note: To distinguish procedures from event procedures, Sub and Function procedures are referred to as general procedures.
Sub Procedures Properties: • may be called • may be passed data called arguments • may return values to the calling program • may change the data stored in a received variable
Passing Arguments to Subs: • When you define a Sub procedure, sometimes you need to transfer variables that are used in different Subs. This is called passing in programming languages.
Components of Sub Procedure: • name: used to identify the Sub procedure • parameters: a Sub procedure accepts values from the caller through its parameters. It may also send values back to the caller through its parameters.
Sub Procedure's Name • The rules for naming Sub Procedures are the same as naming variables. • Sub procedure names begin with uppercase letters in order to distinguish them from variable names.
Syntax of a Sub Procedure Private Sub ProcedureName ( ) statement(s) End Sub
Creating Visual Basic Sub Procedure: • Activate the code window • Select Add Procedure from the Tools menu • Type in the name of the Sub procedure • Click on Private in the Scope box • Press the Enter key or click the OK button • Type the statements of the Sub procedure into the code window
Example of Call to a Sub Procedure: Private Sub cmdCompute_Click() Dim num As Single num = Val(InputBox("Enter a number:")) Call Triple(num) End Sub
Sub Procedure Triple: Private Sub Triple(num As Single) ' Multiply the value of the number by 3 picResult.Print "The number is"; 3 * num End Sub
Passing Arguments to Sub Procedures • Arguments : Variables or expressions placed in parentheses in a Call statement. • Not only is the value of the argument passed to the parameter, but the value of the parameter is passed back to the argument.
Example of Arguments • Call Triple(num)
Parameters • Variables placed in parentheses after a Sub Procedure's name. • When the procedure is called, the values of the corresponding arguments are placed in the parameters.
Example of Parameters • Private Sub Triple(num As Single)
Passing arguments to parameters Call Triple(num) Private Sub Triple (num As Single) Argument Parameter
Passing Arguments to Parameters • Call Add (x, y ) • Private Sub Add ( num1 As Single, num2 As Single) Arguments Parameters
Passing Arguments • A Sub procedure receives the location of the arguments, and may use and modify the value of the arguments stored at that location. • Two-way into and out of the Sub Procedure.
Passing Arguments Private Sub cmdDisplay_Click() Dim amt As Single amt = 2 picResults.Print amt; Call Triple(amt) picResults.Print amt End Sub
Sub Triple Private Sub Triple(num As Single) ' Triple a number picResults.Print num; num = 3 * num picResults.Print num; End Sub
Passing Arguments Call Triple(amt) Private Sub Triple (num As Single) amt num
Passing Data - by Reference amt amt amt 2 2 6 6 num num
Important Rules for Passing Arguments to a Sub • The number of arguments and parameters must match. • The data type of each argument must match its corresponding parameter.
Local Variables: • A variable that is used only in a specific procedure (Sub or Function). • The scope of the local variable is the Sub or Function in which that variable has been defined.
Local Variables: • Declared within a procedure definition • Private to a procedure definition • Variables in different procedures are totally independent • Different procedures can have variables with the same names; however, each variable will have its own memory location
Advantages of Local Variables • Extremely useful for team programming • Protects against accidental side effects (change of the value of the variable in one procedure that causes an error in another)
Example of Local Variables Private Sub cmdButton_Click() Dim var1 As Integer, var2 As Integer,num As Integer var1 = 2 var2 = 4 Call Add(num) picBox.Print num End Sub
Sub Add Private Sub Add(num As Integer) Dim var1 As Integer, var2 As Integer num = var1 + var2 End Sub
Form-Level Variables • Form-level variables are visible to every procedure. • Form-level variables appear at the top of the code window.
How to create Form-Level Variables? • Activate the code window • Click on the down arrow to the right of the object list box • Click on General • Click on Declaration in the procedure list box • Type in Dim statements for form-level variables
Example ' In Declaration section of General Dim num1 As Single, num2 As Single
Common Errors • Passing incorrect data types. • Not returning the result of the computation back to the calling program. • The only way that a Sub procedure can return a value is through its arguments
Another Example Private Sub cmdDisplay_Click() ' Demonstrate that variables in a Sub procedure do ' not retain their values in subsequent calls Call Three Call Three End Sub
Sub Three Private Sub Three() Dim num As Single ' Display the value of num and assign it the value 3 picResults.Print num; num = 3 End Sub
What is a function? • Similar to a Sub, performs a specific task • Unlike a Sub, returns asingle value to the calling program
Types of Functions • Standard functions (built-in) • User-defined functions
User-Defined Function • A function returns a single value • The value is returned by assigning a value to the name of the function • The values of the parameters of a function should not be used for returning values from a function
The Function Syntax Private Function FunctionName(parameter-list) As dataType Statement(s)…… ….. FunctionName = value End Function • Note: value must be of the type dataType specified in the function declaration
Example of a Function(using a function to change from Fahrenheit to Celsius) Private Sub cmdConvert_Click() picTempC.Cls picTempC.Print FtoC(Val(txtTempF.Text)) End Sub Private Function FtoC(t As Single) As Single ‘ Convert Fahrenheit temperature to Celsius FtoC = (5 / 9) * (t - 32) End Function
Rules for Defining and Calling a Function • User-defined function must include a statement that assigns the function name a value. • User-defined functions are called in the same way that built-in functions are called. • A user-defined function may be called in an expression.
Returning Value A function can receive many values Only one value can be directly returned Chapter 4 - Visual Basic Schneider
Example of a Function Private Sub cmdDetermine_Click() Dim nom As String nom = FirstName(txtFullName.Text) picFirstName.Print "The first name is “; nom End Sub Private Function FirstName(nom As String) As String Dim firstSpace As Integer firstSpace = InStr(nom, " ") FirstName = Left(nom, firstSpace - 1) End Function
Common Errors • Passing incorrect data types • Not specifying the data type of the returned value • Not assigning a value to the Function name inside the Function definition • Misspelling of the Function name
Further Examples Private Sub cmdDisplay_Click() Call DisplayVolume(1, 2) Call DisplayVolume(3, 4) End Sub Private Sub DisplayVolume(r As Single, h As Single) PicOutput.Print "Volume of cylinder with base area "; Area(r) PicOutput.Print "and height"; h; "is"; h * Area(r) End Sub Private Function Area(r As Single) As Single Area = 3.14159 * r ^ 2 End Function
Another Example Private Sub cmdDisplay_Click() Dim a As String a = “Choo ” picOutput.Print TypeOfTrain() End Sub Private Function TypeOfTrain() As String Dim a As String a = a & a TypeOfTrain = a & “train” End Function Output:
Last Example Private Sub cmdDisplay_Click() Dim num As Single num = 5 picOutput.Print Triple (num) picOutput.Print num End Sub Private FunctionTriple(x As Single) As Single Dim num As Single num = 3 Triple= num * x End Function Output: