CHAPTER SIX
Reducing Program Complexity
General Sub Procedures and
Developer-defined Functions
6- 2
Introduction
• Three important consideration help us design,
construct, and maintain complex programs:
1. Break complex tasks into smaller “subtasks.”
2. Give each subtask a descriptive name.
3. Find processing tasks that have subtasks
in common.
McGraw Hill/Irwin
©2002 by The McGraw-Hill Companies, Inc. All
rights reserved.
6- 3
Objectives
• Share code by creating general sub procedures
and functions.
• Use parameters to share data between
procedures and functions.
• Use code modules to organize code for
reusability.
• Use the KeyPress, Enter, and Leave events.
• Use the concept of form modality.
• Create and program main menus.
McGraw Hill/Irwin
©2002 by The McGraw-Hill Companies, Inc. All
rights reserved.
6- 4
6.1 General Sub Procedures
• We must be very precise in writing the criterion
and alternative actions for decisions.
• In a program,
– A condition is represented as an expression.
– An outcome is the result of an evaluated
condition.
– An appropriate action follows the outcome.
McGraw Hill/Irwin
©2002 by The McGraw-Hill Companies, Inc. All
rights reserved.
6- 5
6.1 General Sub Procedures (cont.)
•
Using General Sub Procedures in a Project
– Eliminate inconsistencies by placing common
statements in a general sub procedure.
– Apply a descriptive name for the sub procedure.
McGraw Hill/Irwin
©2002 by The McGraw-Hill Companies, Inc. All
rights reserved.
6- 6
6.1 General Sub Procedures (cont.)
• Execution of General Sub Procedures
– Names of event procedures always end with an
underscore followed by the type of event.
– Names of general sub procedures do not.
– A procedure call invokes a procedure.
McGraw Hill/Irwin
©2002 by The McGraw-Hill Companies, Inc. All
rights reserved.
6- 7
6.1 General Sub Procedures (cont.)
• Local Variables in General Sub Procedures
– General sub procedures can access module-level
and global variables.
– They have their own variables.
– Procedure-level variables are not related to other
procedures.
McGraw Hill/Irwin
©2002 by The McGraw-Hill Companies, Inc. All
rights reserved.
6- 8
6.1 General Sub Procedures (cont.)
• General Sub Procedures and Project Structure
– Locating a General Sub Procedure in the Code
Window
• We enter and view event procedures in the Code
window.
• We also enter and view general sub procedures in
the Code window.
• Scroll to find a procedure’s heading.
McGraw Hill/Irwin
©2002 by The McGraw-Hill Companies, Inc. All
rights reserved.
6- 9
6.1 General Sub Procedures (cont.)
– Procedure Scope
• Determines which procedure’s can invoke it.
• Private and Public.
– Code Modules
• Can contain general sub procedures.
• Help to organize a project.
• Can be included in many different projects.
– Project Structure
• See Figure 6.13 of textbook.
McGraw Hill/Irwin
©2002 by The McGraw-Hill Companies, Inc. All
rights reserved.
6.1 General Sub Procedures (cont.)
• Creating General Sub Procedures
– Start from the Code window of a form or code
module.
– Enter header for the sub procedure.
– Enter general sub procedure statements.
McGraw Hill/Irwin
©2002 by The McGraw-Hill Companies, Inc. All
rights reserved.
610
6.2 Procedures with Parameters
• Drawbacks of Module-Level and Global
Variables
– Public access can mean trouble for some
variables.
– Procedures wanting to share data using the
global variable have to “know” its name.
McGraw Hill/Irwin
©2002 by The McGraw-Hill Companies, Inc. All
rights reserved.
611
6.2 Procedures with Parameters (cont.)
• Parameter Passing
– Sending data from the calling to the called
procedure.
– Parameter Lists
• List of data items a procedure expects any calling
procedure to send it.
– Procedure Calls with Parameters
• See Figure 6.16 in textbook.
McGraw Hill/Irwin
©2002 by The McGraw-Hill Companies, Inc. All
rights reserved.
612
6.2 Procedures with Parameters (cont.)
– Analyzing Procedures That Use Parameters
• Hand-Check parameter passing.
McGraw Hill/Irwin
©2002 by The McGraw-Hill Companies, Inc. All
rights reserved.
613
6.2 Procedures with Parameters (cont.)
• Multiple Parameters
– A parameter list is key.
– Every parameter list should contain:
•
•
•
•
•
Number of arguments.
Types of arguments.
Sequence of arguments.
Names arguments are referred to.
What the parameters and arguments represents?
McGraw Hill/Irwin
©2002 by The McGraw-Hill Companies, Inc. All
rights reserved.
614
6.2 Procedures with Parameters (cont.)
615
• Passing by Reference and Passing by Value
– ByRef keyword is short for “By Reference.”
• Parameter and argument refer to the same
variable.
• Only way a sub procedure can change the value it
is passed.
– ByVal keyword is short for “By Value.”
• Specifies that the called procedure cannot change
the value stored in a variable passed to it.
• Parameter is a local copy of the passed argument.
McGraw Hill/Irwin
©2002 by The McGraw-Hill Companies, Inc. All
rights reserved.
6.2 Procedures with Parameters (cont.)
• Passing Expressions
– Calling procedure can pass an expression.
• Correcting Common Mistakes in Parameter
Passing
– Arguments Not Specified
• Number of arguments must match parameters.
– Invalid Cast Exception
• Parameter and argument type mismatch.
McGraw Hill/Irwin
©2002 by The McGraw-Hill Companies, Inc. All
rights reserved.
616
6.2 Procedures with Parameters (cont.)
617
– Arguments Out of Order
• Arguments and parameters must be associated by
position, not by name.
– Conflict between Parameter Name and Local
Variable Name
• Parameter name and local variable names must be
different.
McGraw Hill/Irwin
©2002 by The McGraw-Hill Companies, Inc. All
rights reserved.
6.2 Procedures with Parameters (cont.)
618
• General Sub Procedures versus Event
Procedures
– An event procedure is always associated with a
control.
– Developers create the procedure heading for a
general sub procedure.
– Visual Basic .NET creates the procedure heading
for an event procedure.
McGraw Hill/Irwin
©2002 by The McGraw-Hill Companies, Inc. All
rights reserved.
6.2 Procedures with Parameters (cont.)
• General Sub Procedures versus Event
Procedures and the Object Paradigm
– We have created a form class.
– We also created two methods.
• One was event procedure.
• The other was a general sub procedure.
McGraw Hill/Irwin
©2002 by The McGraw-Hill Companies, Inc. All
rights reserved.
619
6.3 Developer-Defined Functions
•
•
•
•
Perform calculations or string manipulations.
Return values.
Use Return statements.
Function headings include type specifications.
McGraw Hill/Irwin
©2002 by The McGraw-Hill Companies, Inc. All
rights reserved.
620
6.3 Developer-Defined Functions (cont.)
• Creating Functions
– Follow the same steps to create a general sub
procedure.
– Use the keyword Function instead of Sub.
McGraw Hill/Irwin
©2002 by The McGraw-Hill Companies, Inc. All
rights reserved.
621
6.4 Code Modules
• Sub Main
– Use to begin execution of the program by
executing a general sub procedure.
– Select in the Misc Property Pages dialog box
under the Project menu.
– You must create a public general sub procedure
named Main in a code module.
McGraw Hill/Irwin
©2002 by The McGraw-Hill Companies, Inc. All
rights reserved.
622
6.4 Code Modules (cont.)
• Libraries
– Programmers organize reusable code for easy
access.
– A collection of code modules in categories is
called a library.
McGraw Hill/Irwin
©2002 by The McGraw-Hill Companies, Inc. All
rights reserved.
623
6.5 The KeyPress Event
624
• Enables your programs to respond to keystrokes
made by the user.
• Any control that can have the focus is able to
respond to this event.
McGraw Hill/Irwin
©2002 by The McGraw-Hill Companies, Inc. All
rights reserved.
6.5 The KeyPress Event (cont.)
• The KeyPress Event for TextBox Controls
– User presses a key.
– Visual Basic .NET stores ANSI character of the
key.
– Visual Basic .NET begins KeyPress event
procedure.
– The code will determine the disposition of the
keypress.
McGraw Hill/Irwin
©2002 by The McGraw-Hill Companies, Inc. All
rights reserved.
625