Title: Click to edit Master title
11
2Objectives
- Explain the difference between a Sub procedure
and a Function procedure - Create a Sub procedure
- Create a procedure that receives information
passed to it - Explain the difference between passing data by
value and passing data by reference - Create a Function procedure
3Procedure
- Procedure a block of program code that performs
a specific task - Function Procedure
- Returns a value after performing its assigned
task - Sub Procedure
- Completes the task but does not return a value
4Sub Procedures
- Event procedure
- Associated with a specific object and event
- Example button click event
- Independent Sub procedure
- A collection of code that can be invoked from one
or more places in an application - Processed only when called (invoked) from code
- Invoke Sub using a Call statement from another
procedure
5Primary purposes of subs and functions
6Sub Procedures (continued)
- Private indicates procedure can only be used by
other procedures in the current form - Sub keyword identifies procedure as a Sub
Procedure - procedurename - name given to procedure
- Naming rules same as for naming variables
- parameterlist - optional set of memory locations
referred to as parameters - ByVal, ByRef specify how parameter is passed
7Sub Procedures (continued)
8Sub Procedures (continued)
9Gladis Antiques Application
- Manager wants an application to calculate
employees regular pay, overtime pay, and gross
pay - Employees are paid on hourly basis with time and
one-half for overtime - Sub ClearLabels() will be used to clear display
labels on form for 3 pay amounts
10Gladis Antiques Application (continued)
11Gladis Antiques Application (continued)
12Gladis Antiques Application (continued)
13Including Parameters in an Independent Sub
Procedure
- Call statement has an optional argumentlist
- Comma separated list of arguments passed to
procedure being called - Argumentlist must agree with number of parameters
listed in parameterlist in the procedure header - Data type and position of each parameter must
agree with data type and position of
corresponding argument
14Passing Variables
- Pass by value
- Use keyword ByVal
- Passes contents of variable to the parameter in
receiving procedure but not memory location - Cannot change contents of passing variable
- Pass by reference
- Use keyword ByRef
- Passes memory address of variable to the
receiving procedure - Contents of variable can be changed within
receiving procedure
15Passing Variables by Value
16Passing Variables by Value (continued)
17Passing Variables by Reference
18Passing Variables by Reference (continued)
19Passing Variables by Reference (continued)
20Function Procedures
- Block of code that performs a task and returns a
value after completing that task - Function header has keyword Function instead of
Sub - Header has As datatype clause that specifies
data type of value returned by the function - As Decimal - returns a decimal number
- As String - returns a string
- Return statement alerts computer that function
has completed task and returns the value
contained in its expression
21Function Procedures (continued)
22The Pine Lodge Application
- Owner wants application to calculate new hourly
pay given current pay rate and raise rate - Application demonstrates use of function
procedure GetNewPay - Current pay rate and raise rate passed by value
as parameters - New hourly pay returned by function
23The Pine Lodge Application (continued)
24The Pine Lodge Application (continued)
25The Pine Lodge Application (continued)
26Programming Example Rainfall Application
- Application allows user to enter monthly rainfall
amounts for previous year - Calculates and displays the total rainfall amount
and average rainfall amount
27TOE Chart
28User Interface
29Objects, Properties, and Settings
30Tab Order
31Pseudocode
- btnExit Click event procedure
- 1. Close the application
- btnCalc Click event procedure
- 1. call the CalctotalAndAverage procedure to
calculate the total and average rainfall - 2. display the total and average rainfall
amounts in labels -
32Pseudocode (continued)
- CalcTotalAndAverage procedure
- 1. initialize the month counter to 1
- 2. repeat while amount is numeric
- get a rainfall amount
- if rainfall amount is numeric
- add rainfall amount to total rainfall
accumulator - add 1 to the month counter
- else
- display message informing user to enter a
number - end if
- end repeat
- 3. calculate the average rainfall total
rainfall / 12
33Code
34Code (continued)
35Summary
- Procedures allow reuse of code throughout an
application and allow programmer teamwork on
large and complex applications - Function procedures return a value, Sub
procedures do not - Independent Sub procedures and Functions are not
associated with any specific object or event - Use Call statement to invoke an Independent sub
procedure
36Summary (continued)
- Number of arguments and data types must match in
argumentlist and parameterlist - ByVal keyword passes contents of variable
- Value of variable being passed cannot be changed
in procedure - ByRef keywords passes the memory address
- Value of variable being pass can be changed in
procedure - Variables in parameterlist have procedure level
scope