Upload
nicholas-andrews
View
221
Download
1
Tags:
Embed Size (px)
Citation preview
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 6- 1
STARTING OUT WITH
Visual Basic 2008FOURTH EDITION
Tony GaddisHaywood Community College
Kip IrvineFlorida International University
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Chapter
Procedures And Functions6
A procedure is a collection of statements that performs a task
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 6- 3
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
Procedures6.1
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 Slide 6- 5
Procedure Uses
Ann 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- 6
Sample 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 procedure
Returns to btnGo_Click
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 6- 7
Declaring a 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])[Statements]
End Sub
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 6- 8
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- 9
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
Passing Arguments to a Procedure6.2
When calling a procedure, you can pass it values known as arguments
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 6- 11
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- 12
Passing Arguments By Value
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
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
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 6- 13
Passing Multiple Arguments
Multiple arguments separated by commas Value of first argument is copied to first Second to second, etc.
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 IntegerintSum = intNum1 + intNum2MessageBox.Show("The sum is " & intSum.ToString)
End Sub
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 6- 14
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
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
Slide 6- 15
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Functions6.3
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 Slide 6- 17
Declaring a 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
[AccessSpecifier] Function FunctionName ([ParameterList]) _As DataType
[Statements]End Function
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 6- 18
Function Call ExamplesngTotal = Sum(sngValue1, sngValue2)
Function Sum(ByVal sngNum1 As Single, _ByVal sngNum2 As Single) As Single
Dim sngResult As SinglesngResult = sngNum1 + sngNum2Return 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- 19
Returning Nonnumeric Values
Function IsValid(intNum As Integer) As BooleanDim blnStatus As BooleanIf intNum >= 0 And intNum <= 100 Then
blnStatus = TrueElse
blnStatus = FalseEnd IfReturn blnStatus
End Function
Function FullName(ByVal strFirst As String, _ByVal strLast As String) As String
Dim strName As StringstrName = strLast & ", " & strFirstReturn strName
End Function
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
More About Debugging6.4
Step Into
Step Over
Step Out
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Slide 6- 21
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
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Building the Bagel and Coffee Price Calculator Application
6.5
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
Slide 6- 23
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Button Click Event Flowcharts
Slide 6- 24
Calculate Button Reset Button
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Cost Calculation Functions
Slide 6- 25
Bagel Cost FunctionTopping Cost
Function
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley
Cost Calculations Functions
Slide 6- 26
Calc Tax FunctionCoffee Cost Function