0% found this document useful (0 votes)
71 views36 pages

1 Edited by Maysoon Al-Duwais

This document discusses Visual Basic sub procedures and function procedures. It provides examples of how to: - Define and call sub procedures, including passing arguments and parameters. Sub procedures do not return a value. - Define and call user-defined functions, which always return a value. Functions can take parameters and have various return types. - Pass arguments to procedures by value and by reference, and how this affects whether the original variable is modified. The document provides code examples to illustrate sub procedures, functions with various numbers of parameters, and built-in functions for data types and formatting. It compares the key differences between sub procedures and functions.

Uploaded by

BASIC
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
71 views36 pages

1 Edited by Maysoon Al-Duwais

This document discusses Visual Basic sub procedures and function procedures. It provides examples of how to: - Define and call sub procedures, including passing arguments and parameters. Sub procedures do not return a value. - Define and call user-defined functions, which always return a value. Functions can take parameters and have various return types. - Pass arguments to procedures by value and by reference, and how this affects whether the original variable is modified. The document provides code examples to illustrate sub procedures, functions with various numbers of parameters, and built-in functions for data types and formatting. It compares the key differences between sub procedures and functions.

Uploaded by

BASIC
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 36

Edited By Maysoon Al-Duwais 1

Devices for Modularity


Visual Basic has two ways for breaking problems into
smaller pieces:
Sub procedures
Function procedures

Edited By Maysoon Al-Duwais 2


General Form of Sub Procedure

Edited By Maysoon Al-Duwais 3


Calling a Sub Procedure
 The statement that invokes /calls a Sub procedure is
referred to as a calling statement.
 A calling statement looks like this:
ProcedureName(arg1, arg2,..., argN)

Edited By Maysoon Al-Duwais 4


Naming Sub Procedures
The rules for naming Sub procedures are the same as
the rules for naming variables.

Edited By Maysoon Al-Duwais 5


Passing Values
DisplaySum( 2, 3 )
Sub DisplaySum(ByVal num1 As Double, ByVal num2 _
As Double)
Dim z As Double
z = num1 + num2
TextBox1.Text= "The sum of " & num1 &
" and " & num2 & " is " & z & "."
End Sub

 In the Sub procedure, 2 will be stored in num1 and 3 will be


stored in num2

Edited By Maysoon Al-Duwais 6


Arguments and Parameters
Sum(2, 3)
arguments

parameters

Sub DisplaySum(ByVal num1 As Double, ByVal num2 _


As Double)
displayed
automatically

Edited By Maysoon Al-Duwais 7


Several Calling Statements
DisplaySum(2, 3)
DisplaySum(4, 6)
DisplaySum(7, 8)

Output:
The sum of 2 and 3 is 5.
The sum of 4 and 6 is 10
The sum of 7 and 8 is 15.

Edited By Maysoon Al-Duwais 8


Passing Strings and Numbers
Demo("CA", 38)
Sub Demo(ByVal state As String, ByVal pop _
As Double)
TextBox1.Text = state &
" has population " & pop & " million."
End Sub

Note: The statement Demo(38, "CA") would not be valid.


The types of the arguments must be in the same order as the
types of the parameters.
Edited By Maysoon Al-Duwais 9
Variables and Expressions as Arguments
Dim s As String = "CA"
Dim p As Double = 19
Demo(s, 2 * p)
Sub Demo(ByVal state As String, ByVal pop As Double)
TextBox1.Text = state &" has population " & pop & "million."
End Sub
Note: The argument names need not match the parameter names.
For instance, s versus state.

Edited By Maysoon Al-Duwais 10


Sub Procedure Having No
Parameters
Sub DescribeTask()
lstBox.Items.Clear()
msgbox("This program displays
the name and population of a state.")
End Sub

Edited By Maysoon Al-Duwais 11


Sub Procedure Calling Another Sub
Procedure
Private Sub btnDisplay_Click(...) Handles _
btnDisplay.Click
Demo("CA", 37)
End Sub

Sub Demo(ByVal state As String, ByVal pop _


As Double)
DescribeTask()
TextBox1.Text = state &" has population " & pop &
"million."
End Sub

Edited By Maysoon Al-Duwais 12


Output
This program displays
the name and population
of a state.

CA has population 37 million.

Edited By Maysoon Al-Duwais 13


ByVal and ByRef
 Parameters in Sub procedure headers are proceeded
by ByVal or ByRef
 ByVal stands for By Value
 ByRef stands for By Reference

Edited By Maysoon Al-Duwais 14


Passing by Value
 When a variable argument is passed to a ByVal
parameter, just the value of the argument is passed.

 After the Sub procedure ends, the variable has its


original value.

Edited By Maysoon Al-Duwais 15


Example
Public Sub btnOne_Click (...) Handles _btnOne.Click

Dim n As Double = 4
Argument name (n) is
Triple(n)
different than parameter
txtBox1.Text = “n = “ & n name (num)
End Sub

Sub Triple(ByVal num As Double)


num = 3 * num
txtBox2.Text = “num = “ & num
End Sub Memory (RAM):

12 4
Output:
num n
num = 12
n = 4 Edited By Maysoon Al-Duwais 16
Passing by Reference
 When a variable argument is passed to a ByRef
parameter, the parameter is given the same memory
location as the argument.

 After the Sub procedure terminates, the variable has


the value of the parameter.

Edited By Maysoon Al-Duwais 17


Example
Public Sub btnOne_Click (...) Handles _
btnOne.Click
Dim num As Double = 4
Triple(num)
txtBox2.Text = “2. num = “ & num Argument name (num) is the
End Sub same as parameter name
(num)
Sub Triple(ByRef num As Double)
num = 3 * num
txtBox1.Text = “1. num = “ & num
End Sub
Memory (RAM):
Output: 4X 12
1. num = 12 num
2. num = 12
Edited By Maysoon Al-Duwais 18
Most Common Use of ByRef: Get Input
(Read Input)

Sub InputData(ByRef wage As Double,


ByRef hrs As Double)
wage = txtWage.Text
hrs = txtHours.Text
End Sub

Edited By Maysoon Al-Duwais 19


Function Procedures
 User-Defined Functions Having One Parameter
 User-Defined Functions Having Several Parameters
 User-Defined Functions Having No Parameters
 User-Defined Boolean-Valued Functions

Edited By Maysoon Al-Duwais 20


Some Built-In Functions
Function: Int
Example: Int(2.6) is 2
Input: number
Output: number

Function: Math.Round
Example: Math.Round(1.23, 1) is 1.2
Input: number, number
Output: number
Edited By Maysoon Al-Duwais 21
Some Built-In Functions
(continued)
Function: FormatPercent
Example: FormatPercent(0.12, 2) is 12.00%
Input: number, number
Output: string

Function: FormatNumber
Example: FormatNumber(12.62, 1) is 12.6
Input: number, number
Output: string
Edited By Maysoon Al-Duwais 22
Function Procedures
 Function procedures (aka user-defined functions)
always return one value
 Syntax:
Function FunctionName(ByVal var1 As Type1,
ByVal var2 As Type2,
...) As ReturnDataType
statement(s)
Return expression
End Function

Edited By Maysoon Al-Duwais 23


Example With One Parameter
Function FtoC(ByVal t As Double) As Double
'Convert Fahrenheit temp to Celsius
Return (5 / 9) * (t - 32)
End Function

Edited By Maysoon Al-Duwais 24


Header of the FtoC Function
Procedure

Edited By Maysoon Al-Duwais 25


Example 1: Form

txtTempF

txtTempC

Edited By Maysoon Al-Duwais 26


Example 1: Code Using Function
Private Sub Convert _Click(...) Handles btnCnvrt.Click

Dim fTemp, cTemp As Double


fTemp = txtTempF.Text
cTemp = FtoC(fTemp)
txtTempC.Text = cTemp

End Sub

Function FtoC(ByVal t As Double) As Double


Return (5 / 9) * (t - 32)
End Function

Edited By Maysoon Al-Duwais 27


Example 1: Code Without Using Function
Private Sub btnConvert_Click(...) _Handles btnConvert.Click

Dim fTemp, cTemp As Double

fTemp = txtTempF.Text
cTemp = (5 / 9) * (fTemp - 32)
txtTempC.Text = cTemp

End Sub

Edited By Maysoon Al-Duwais 28


Example 1: Output

Edited By Maysoon Al-Duwais 29


User-Defined Function Having
Several Parameters
Function Pay(ByVal wage As Double,
ByVal hrs As Double) As Double
Dim amt As Double ‘ Total amount of salary
Select Case hrs
Case Is <= 40
amt = wage * hrs
Case Is > 40
‘the wage (salary/hour) increases 50% per every
extra hour (extra hours >40)
amt = wage * 40 +(0.5 * wage * (hrs – 40))
End Select
Return amt
End Function

Edited By Maysoon Al-Duwais 30


Example 3: Form

txtWage

txtHours

txtEarnings

Edited By Maysoon Al-Duwais 31


Example 3: Partial Code
Private Sub btnCalculate_Click(...) _
Handles btnCalculate.Click
Dim hourlyWage, hoursWorkded As Double
hourlyWage = txtWage.Text
hoursWorked = txtHours.Text
txtEarnings.Text = Pay(hourlyWage, hoursWorked)
End Sub

Function call

Edited By Maysoon Al-Duwais 32


Example 3: Output

Edited By Maysoon Al-Duwais 33


User-Defined Function Having No
Parameters
Function CostOfItem() As Double
Dim price As Double = txtPrice.Text
Dim quantity As Integer =txtQuantity.Text
Dim cost = price * quantity
Return cost
End Function

Edited By Maysoon Al-Duwais 34


User-Defined Boolean-Valued
Function
Function IsVowelWord(ByVal word As String) As
Boolean
If word.IndexOf("A") = -1 Then
Return False
End If
.
.
If word.IndexOf("U") = -1 Then
Return False
End If
Return True
End Function

Edited By Maysoon Al-Duwais 35


Functions vs. Sub procedures
 Both can perform similar tasks
 Both can call other procedures
 Use a function when you want to return one and only
one value

Edited By Maysoon Al-Duwais 36

You might also like