chapter 6, slide 1starting out with visual basic 3 rd edition chapter 6 sub procedures and functions
TRANSCRIPT
Chapter 6, Slide 1 Starting Out with Visual Basic 3rd Edition
Chapter 6
Sub Procedures
And Functions
Chapter 6, Slide 2 Starting Out with Visual Basic 3rd Edition
Chapter 6Introduction
A procedure is a collection of statements that performs a task.
Chapter 6, Slide 3 Starting Out with Visual Basic 3rd Edition
Chapter 6 Topics
A Sub procedure is a collection of statements that performs a task• An abbreviation of the older term subroutine• Event procedures are Sub procedures
A Function procedure is a collection of statements that performs a task and returns a value to the VB statement that executed it• Function procedures work like intrinsic
functions, such as Val and IsNumeric A method is a procedure declared in a class
Chapter 6, Slide 4 Starting Out with Visual Basic 3rd Edition
Section 6.1Sub Procedures
You Can Write Your Own General Purpose Sub Procedures That Perform Specific Tasks
General Purpose Sub Procedures Are Not Triggered by Events but Called From Statements in Other Procedures
Chapter 6, Slide 5 Starting Out with Visual Basic 3rd Edition
Sub Procedure Uses
May handle events such as a click event Also used to simplify a program by
• Breaking it into small, manageable pieces or• Performing a task that is needed repeatedly
Sub procedures help to modularize code• Divides a program into a set of logical tasks
Chapter 6, Slide 6 Starting Out with Visual Basic 3rd Edition
Sample Sub Procedure, Tutorial 6-1
Sub DisplayMessage()'A Sub procedure that displays a message.lstOutput.Items.Add("")lstOutput.Items.Add("Hello from DisplayMessage.")lstOutput.Items.Add("")
End Sub
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
Calls DisplayMessage procedureReturns to btnGo_Click
Chapter 6, Slide 7 Starting Out with Visual Basic 3rd Edition
Declaring a Sub Procedure
AccessSpecifier is optional and establishes accessibility to the program
Sub and End are keywords ProcedureName used to refer to procedure
• Use Pascal casing, capitalize 1st 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
[AccessSpecifier] Sub ProcedureName ([ParameterList])[Statement(s)]
End Sub
Chapter 6, Slide 8 Starting Out with Visual Basic 3rd Edition
More on Access Specifier Private allows use only from that form or class Public allows use from other forms or classes If not specified, default is Public Additional access specifiers:
• 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
Chapter 6, Slide 9 Starting Out with Visual Basic 3rd Edition
Procedures and Static Variables Variables needed only in a Sub procedure,
should be declared within the Sub procedure• Creates a local variable with scope only within
the sub procedure where declared• Local variable values are not saved from one
sub 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 only within the procedure• But variable exists for lifetime of procedure
Chapter 6, Slide 10 Starting Out with Visual Basic 3rd Edition
Section 6.2Passing Arguments to a
Sub Procedure
When calling a procedure, you can pass it values known as arguments
Chapter 6, Slide 11 Starting Out with Visual Basic 3rd Edition
Arguments
Argument – a value passed to a procedure We’ve already done this with functions
• Value = CInt(txtInput.Text)• Calls CInt function and passes txtInput.Text
A Sub must be declared so it accepts an argument
Chapter 6, Slide 12 Starting Out with Visual Basic 3rd Edition
Passing Arguments By Value
Number declared as an integer argument Storage location number created A value, 5 in this case, must be supplied and
is copied into the storage location for number DisplayValue then executes Tutorial 6-3 demonstrates passing arguments
DisplayValue(5) ‘calls DisplayValue procedure
Sub DisplayValue(ByVal number As Integer)' This procedure displays a value in a message box.MessageBox.Show(number.ToString)
End Sub
Chapter 6, Slide 13 Starting Out with Visual Basic 3rd Edition
Passing Multiple Arguments
Multiple arguments separated by commas Value of first argument is copied to first Second to second, etc.
ShowSum(5, 10) ‘calls ShowSum procedure
Sub ShowSum(ByVal num1 As Integer, ByVal num2 As Integer)' This procedure accepts two arguments, and prints' their sum on the form.Dim sum As Integersum = num1 + num2MessageBox.Show("The sum is " & sum.ToString)
End Sub
Chapter 6, Slide 14 Starting Out with Visual Basic 3rd Edition
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
Tutorial 6-4 demonstrates this difference
Chapter 6, Slide 15 Starting Out with Visual Basic 3rd Edition
Section 6.3Function Procedures
A Function Procedure Returns a Value to the Part of the Program That Called the Function
Procedure
Chapter 6, Slide 16 Starting Out with Visual Basic 3rd Edition
Declaring a Function Procedure
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
[AccessSpecifier] Function FunctionName ([ParameterList]) _As DataType
[Statements]End Function
Chapter 6, Slide 17 Starting Out with Visual Basic 3rd Edition
Function Call Example
total = Sum(value1, value2)
Function Sum(ByVal num1 As Single, ByVal num2 As Single) _As Single
Dim result As Singleresult = num1 + num2Return result
End Function
value1 and value2 must be data type Single Total must be declared as data type Single Tutorial 6-5 demonstrates function use
Chapter 6, Slide 18 Starting Out with Visual Basic 3rd Edition
Returning Nonnumeric Values
Function IsValid(num As Integer) As BooleanDim status As BooleanIf num >= 0 And num <= 100 Then
status = TrueElse
status = FalseEnd IfReturn status
End Function
Function FullName(ByVal first As String, ByVal last As String)_As String
Dim name As Stringname = last & ", " & firstReturn name
End Function
Chapter 6, Slide 19 Starting Out with Visual Basic 3rd Edition
Section 6.4More About Debugging
Step Into
Step Over
Step Out
Chapter 6, Slide 20 Starting Out with Visual Basic 3rd Edition
Debugging Involving Procedures
Step Into - continue to debug by single-stepping through a procedure
Step Over - run procedure without single-stepping, continue single-step after the call
Step Out - end single-stepping in procedure, continue single-step after the call
Tutorial 6-6 provides examples
Chapter 6, Slide 21 Starting Out with Visual Basic 3rd Edition
Section 6.5Building the Bagel and Coffee Price Calculator
Application
Use Sub procedures and functions to calculate the total of a customer order.