STARTING OUT WITH
Visual Basic 2008
FOURTH EDITION
Tony Gaddis
Haywood Community College
Kip Irvine
Florida International University
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Slide 6- 1
Chapter
6
Procedures And Functions
A procedure is a collection of
statements that performs a task
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Introduction
A procedure is a collection of statements that
performs a task
Event handlers are a type of procedure
A function is a collection of statements that
performs a task and returns a value to the VB
statement that executed it
Functions work like intrinsic functions, such as
CInt and IsNumeric
A method can be either a procedure or a function
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Slide 6- 3
6.1
Procedures
You Can Write Your Own General Purpose
Procedures That Perform Specific Tasks
General Purpose Procedures Are Not Triggered
by Events but Called From Statements in Other
Procedures
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Procedure Uses
An event handler is a type of procedure
Automatically executed when an event such as
a mouse click occurs
General purpose procedures are triggered by
statements in other procedures, not by events
Procedures help simplify & modularize code by:
Breaking it into small, manageable pieces
Performing a task that is needed repeatedly
Dividing a program into a set of logical tasks
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Slide 6- 5
Sample Procedure, Tutorial 6-1
Private Sub btnGo_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles btnGo.Click
' This procedure calls the DisplayMessage procedure.
lstOutput.Items.Add("Hello from btnGo_Click procedure.")
lstOutput.Items.Add("Calling the DisplayMessage " & _
"procedure.")
DisplayMessage()
lstOutput.Items.Add("Now I am back ” _
& “in the btnGo_Click procedure.")
End Sub
Returns to
btnGo_Click
Calls
DisplayMessage
procedure
Sub DisplayMessage()
'A Sub procedure that displays a message.
lstOutput.Items.Add("")
lstOutput.Items.Add("Hello from DisplayMessage.")
lstOutput.Items.Add("")
End Sub
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Slide 6- 6
Declaring a Procedure
[AccessSpecifier] Sub ProcedureName ([ParameterList])
[Statements]
End Sub
AccessSpecifier is optional and establishes
accessibility to the program
Sub and End are keywords
ProcedureName used to refer to procedure
st
Use Pascal casing, capitalize 1 character of
the name and each new word in the name
ParameterList is a list of variables or values
being passed to the sub procedure
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Slide 6- 7
More on the Access Specifier
Private allows use only from that form
Public allows use from other forms
If not specified, default is Public
There are other access specifiers such as:
Protected
Friend
Protected Friend
These will be discussed in later chapters
Access specifiers won’t be used for now
Practice writing procedures in Tutorial 6-2
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Slide 6- 8
Procedures and Static Variables
Variables needed only in a procedure, should be
declared within that procedure
Creates a local variable with scope only within
the procedure where declared
Local variable values are not saved from one
procedure call to the next
To save value between procedure calls, use
Static keyword to create a static local variable
Static VariableName As DataType
Scope is still only within the procedure
But variable exists for lifetime of application
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Slide 6- 9
6.2
Passing Arguments to a
Procedure
When calling a procedure, you can
pass it values known as arguments
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Arguments
Argument – a value passed to a procedure
We’ve already done this with functions
Value = CInt(txtInput.Text)
Calls the CInt function and passes txtInput.Text
as an argument
A procedure must be declared with a parameter
list in order to accept an argument
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Slide 6- 11
Passing Arguments By Value
DisplayValue(5)
‘calls DisplayValue procedure
Sub DisplayValue(ByVal intNumber As Integer)
' This procedure displays a value in a message box.
MessageBox.Show(intNumber.ToString)
End Sub
intNumber declared as an integer argument
Storage location intNumber created by procedure
A value, 5 in this case, must be supplied and is
copied into the storage location for intNumber
The DisplayValue procedure then executes
Tutorial 6-3 demonstrates passing arguments
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Slide 6- 12
Passing Multiple Arguments
ShowSum(intValue1, intValue2)
‘calls ShowSum procedure
Sub ShowSum(ByVal intNum1 As Integer, _
ByVal intNum2 As Integer)
' This procedure accepts two arguments, and prints
' their sum on the form.
Dim intSum As Integer
intSum = intNum1 + intNum2
MessageBox.Show("The sum is " & intSum.ToString)
End Sub
Multiple arguments separated by commas
Value of first argument is copied to first
Second to second, etc.
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Slide 6- 13
Passing Arguments ByVal or ByRef
Arguments are usually passed ByVal
New storage location created for procedure
Storage location gets a copy of the value
Any changes in value are made to the copy
Calling procedure won’t “see” the changes
Arguments can also be passed ByRef
Procedure points to (references) argument’s
original storage location
Any changes are made to the original value
Calling procedure “sees” the changes
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Slide 6- 14
ByVal or ByRef Argument Example
Tutorial 6-4 demonstrates the difference between
parameters passed ByVal & ByRef
Passed ByVal
Calling procedure does not
“see” changes made to the
value of an argument
Passed ByRef
Calling procedure “sees”
changes made to the
value of an argument
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Slide 6- 15
6.3
Functions
A Function Returns a Value to the
Part of the Program That Called the
Function
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Declaring a Function
[AccessSpecifier] Function FunctionName ([ParameterList]) _
As DataType
[Statements]
End Function
New keyword Function
Also new is As DataType which states the data
type of the value to be returned
Return value is specified in a Return expression
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Slide 6- 17
Function Call Example
sngTotal = Sum(sngValue1, sngValue2)
Function Sum(ByVal sngNum1 As Single, _
ByVal sngNum2 As Single) As Single
Dim sngResult As Single
sngResult = sngNum1 + sngNum2
Return sngResult
End Function
sngValue1 & sngValue2 must be data type Single
Data types must agree with parameter list
sngTotal must be Single, agrees with return value
Tutorial 6-5 demonstrates function use
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Slide 6- 18
Returning Nonnumeric Values
Function FullName(ByVal strFirst As String, _
ByVal strLast As String) As String
Dim strName As String
strName = strLast & ", " & strFirst
Return strName
End Function
Function IsValid(intNum As Integer) As Boolean
Dim blnStatus As Boolean
If intNum >= 0 And intNum <= 100 Then
blnStatus = True
Else
blnStatus = False
End If
Return blnStatus
End Function
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Slide 6- 19
6.4
More About Debugging
Step Into
Step Over
Step Out
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Debugging Involving Procedures
Step Into - continue to debug by single-stepping
through a procedure
Step Over - run procedure without singlestepping, continue single-step after the call
Step Out - end single-stepping in procedure,
continue single-step after the call
Tutorial 6-6 provides examples
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Slide 6- 21
6.5
Building the Bagel and
Coffee Price Calculator
Application
Use procedures and
functions to calculate the total
of a customer order.
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Bagel and Coffee Price Calculator
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Slide 6- 23
Button Click Event Flowcharts
Calculate Button
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Reset Button
Slide 6- 24
Cost Calculation Functions
Bagel Cost Function
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Topping Cost
Function
Slide 6- 25
Cost Calculations Functions
Coffee Cost
Function
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Calc Tax Function
Slide 6- 26
© Copyright 2026 Paperzz