1 Chapter 5 - General Procedures 5.1 Function Procedures 5.2 Sub Procedures, Part I 5.3 Sub Procedures, Part II 5.4 Modular Design.

Slides:



Advertisements
Similar presentations
Modular Design Using Subroutines (functions later)
Advertisements

Chapter 6, Slide 1Starting Out with Visual Basic 3 rd Edition Chapter 6 Sub Procedures And Functions.
Sub and Function Procedures
1 5.3 Sub Procedures, Part II Passing by Value Passing by Reference Sub Procedures that Return a Single Value Debugging.
Microsoft Visual Basic 2010: Reloaded Fourth Edition Chapter Eight Sub and Function Procedures.
Chapter 4 General Procedures
IS 1181 IS 118 Introduction to Development Tools VB Chapter 06.
C Lecture Notes 1 Program Control (Cont...). C Lecture Notes 2 4.8The do / while Repetition Structure The do / while repetition structure –Similar to.
Chapter 4 - Visual Basic Schneider
Chapter 4 - VB.Net by Schneider1 Chapter 4 General Procedures 4.1 Sub Procedures, Part I 4.2 Sub Procedures, Part II 4.3 Function Procedures 4.4 Modular.
Chapter 41 Sub Procedures, Part II Passing by Value Passing by Reference Local Variables Class-Level Variables Debugging.
Chapter 41 Sub Procedures, Part II (Continue). Chapter 42 Local Variable A variable declared inside a Sub procedure with a Dim statement Space reserved.
Lesson 6 Functions Also called Methods CS 1 Lesson 6 -- John Cole1.
Chapter 4 - Visual Basic Schneider1 Chapter 4 General Procedures.
Chapter 41 General Procedures Sub Procedures, Part I Sub Procedures, Part II Function Procedures.
Chapter 4 Sec. 4.1, 4.2, 4.4 Procedures (User-defined)
Chapter 6: Functions.
Apply Sub Procedures/Methods and User Defined Functions
Chapter 6: User-Defined Functions I Instructor: Mohammad Mojaddam
Subroutines and Functions Chapter 6. Introduction So far, most of the code has been inside a single method for an event –Fine for small programs, but.
Tutorial 11 Using and Writing Visual Basic for Applications Code
CHAPTER SIX Reducing Program Complexity General Sub Procedures and Developer-defined Functions.
Chapter 5 - VB 2008 by Schneider1 Chapter 5 - General Procedures 5.1 Sub Procedures, Part I 5.2 Sub Procedures, Part II 5.3 Function Procedures 5.4 Modular.
CHAPTER SIX Reducing Program Complexity General Sub Procedures and Developer-defined Functions.
Why to Create a Procedure
1 Chapter 5 - General Procedures 5.1 Function Procedures 5.2 Sub Procedures, Part I 5.3 Sub Procedures, Part II 5.4 Modular Design.
T ODAY ’ S Q UOTE “Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are–by.
1 Chapter 6 – Repetition 6.1 Do Loops 6.2 For...Next Loops 6.3 List Boxes and Loops.
CS0004: Introduction to Programming Subprocedures and Modular Design.
T U T O R I A L  2009 Pearson Education, Inc. All rights reserved Enhancing the Wage Calculator Application Introducing Function Procedures and.
Copyright 2003 Scott/Jones Publishing Standard Version of Starting Out with C++, 4th Edition Chapter 6 Functions.
Chapter 6: Functions Starting Out with C++ Early Objects
1 Chapter 5 - General Procedures 5.1 Function Procedures 5.2 Sub Procedures, Part I 5.3 Sub Procedures, Part II 5.4 Modular Design.
Microsoft Visual Basic 2005: Reloaded Second Edition Chapter 7 Sub and Function Procedures.
Subroutines and Functions. Introduction So far, most of the code has been inside a single method for an event –Fine for small programs, but inconvenient.
Sub procedures School of Business Eastern Illinois University © Abdou Illia, Spring 2002 (Week 6, Friday 2/21/03)
110-G1 Motivation: Within a program, may have to perform the same computation over and over Many programs share the same computation (e.g. sorting) To.
Chapter 9: Writing Procedures Visual Basic.NET Programming: From Problem Analysis to Program Design.
Functions, Procedures, and Abstraction Dr. José M. Reyes Álamo.
Chapter 4 - Visual Basic Schneider1 Chapter 4 General Procedures.
© 2006 ITT Educational Services Inc. Introduction to Computer Programming: Unit 10: Chapter 6: Slide 1 Unit 10 Sub Procedures and Functions Chapter 6 Sub.
Practical Programming COMP153-08S Week 5 Lecture 1: Screen Design Subroutines and Functions.
1 5.4 Modular Design Top-Down Design Structured Programming Advantages of Structured Programming.
Starting Out with C++ Early Objects ~~ 7 th Edition by Tony Gaddis, Judy Walters, Godfrey Muganda Modified for CMPS 1044 Midwestern State University 6-1.
C++ Programming: Program Design Including Data Structures, Fourth Edition Chapter 6: User-Defined Functions I.
Copyright 2003 Scott/Jones Publishing Standard Version of Starting Out with C++, 4th Brief Edition Chapter 6 Functions.
C++ Programming: Program Design Including Data Structures, Fourth Edition Chapter 6: User-Defined Functions I.
1Edited By Maysoon Al-Duwais. 2 General Procedures Function Procedure Sub Procedures, Part I Sub Procedures, Part II Modular Design Edited By Maysoon.
Week Procedures And Functions 7 A procedure is a collection of statements that performs a task.
Chapter 3: User-Defined Functions I
C++ Programming: From Problem Analysis to Program Design, Fourth Edition Chapter 6: User-Defined Functions I.
1 UMBC CMSC 104, Section Fall 2002 Functions, Part 1 of 3 Topics Top-down Design The Function Concept Using Predefined Functions Programmer-Defined.
Chapter 4 - Visual Basic Schneider1 Chapter 4 General Procedures.
Starting Out with Visual Basic.NET 2 nd Edition Chapter 6 Sub Procedures And Functions.
Functions, Part 1 of 3 Topics  Using Predefined Functions  Programmer-Defined Functions  Using Input Parameters  Function Header Comments Reading 
CMSC 104, Section 301, Fall Lecture 18, 11/11/02 Functions, Part 1 of 3 Topics Using Predefined Functions Programmer-Defined Functions Using Input.
Subroutines and Functions Chapter 6. Introduction So far, all of the code you have written has been inside a single procedure. –Fine for small programs,
1Edited By Maysoon Al-Duwais. 2 Devices for Modularity Visual Basic has two ways for breaking problems into smaller pieces: Sub procedures Function procedures.
Chapter 5 - VB 2008 by Schneider1 Chapter 5 – Repetition 5.1 Do Loops 5.2 Processing Lists of Data with Do Loops 5.3 For...Next Loops.
1Lect7 GC20111/2/ General Procedures Function Procedure Sub Procedures, Part I Sub Procedures, Part II Modular Design Lect7 GC20111/2/2015.
CS0004: Introduction to Programming
Chapter#8 General Procedures
Chapter 4 - Visual Basic Schneider
5.2 Sub Procedures, Part I Defining and Calling Sub Procedures
Chapter#8 General Procedures
Chapter 5 - General Procedures
Chapter 5 - General Procedures
Methods.
Chapter 4 General Procedures
Standard Version of Starting Out with C++, 4th Edition
Presentation transcript:

1 Chapter 5 - General Procedures 5.1 Function Procedures 5.2 Sub Procedures, Part I 5.3 Sub Procedures, Part II 5.4 Modular Design

2 Devices for Modularity Visual Basic has two devices for breaking problems into smaller pieces: Function procedures Sub procedures

3 5.1 Function Procedures User-Defined Functions Having One Parameter User-Defined Functions Having Several Parameters User-Defined Functions Having No Parameters User-Defined Boolean-Valued Functions

Some Built-In Functions 4 FunctionExampleInputOutput IntInt(2.6) is 2number Math.RoundMath.Round(1.23,1) is 1.2 number, numbernumber FormatPercentFormatPercent(.12) is 12.00% numberstring FormatNumberFormatNumber( , 1) is 12,345.6 number, numberstring

5 Function Procedures Function procedures (aka user-defined functions) always return one value Syntax: Function FunctionName(ByVal var1 As Type1, ByVal var2 As Type2,...) As ReturnDataType statement(s) Return expression End Function

Example With One Parameter Function FtoC(ByVal t As Double) As Double 'Convert Fahrenheit temp to Celsius Return (5 / 9) * (t - 32) End Function 6

Header of the FtoC Function Procedure 7

8 Example 1: Form txtTempF txtTempC

Example 1: Code Private Sub btnConvert_Click(...) _ Handles btnConvert.Click Dim fahrenheitTemp, celsiusTemp As Double fahrenheitTemp = CDbl(txtTempF.Text) celsiusTemp = FtoC(fahrenheitTemp) txtTempC.Text = CStr(celsiusTemp ) End Sub Function FtoC(ByVal t As Double) As Double Return (5 / 9) * (t - 32) End Function 9

10 Example 1: Output

Example With One Parameter Function FirstName(ByVal fullName As String) As String 'Extract first name from full name Dim firstSpace As Integer firstSpace = fullName.IndexOf( " " ) Return fullName.Substring(0, firstSpace) End Function 11

12 Example 2: Form txtFullName txtFirstName

Example 2: Code Private Sub btnDetermine_Click(...) _ Handles btnDetermine.Click Dim fullName As String fullName = txtFullName.Text txtFirstName.Text = FirstName(fullName) End Sub Function FirstName(ByVal fullName As String) _ As String Dim firstSpace As Integer firstSpace = name.IndexOf( " " ) Return name.Substring(0, firstSpace) End Function 13

14 Example 2: Output

15 User-Defined Function Having Several Parameters Function Pay(ByVal wage As Double, ByVal hrs As Double) As Double Dim amt As Double 'amount of salary Select Case hrs Case Is <= 40 amt = wage * hrs Case Is > 40 amt = wage * 40 +(1.5 * wage * (hrs – 40)) End Select Return amt End Function

16 Example 3: Form txtWage txtHours txtEarnings

Example 3: Partial Code Private Sub btnCalculate_Click(...) _ Handles btnCalculate.Click Dim hourlyWage, hoursWorkded As Double hourlyWage = CDbl(txtWage.Text) hoursWorked = CDbl(txtHours.Text) txtEarnings.Text = FormatCurrency(Pay(hourlyWage, hoursWorked)) End Sub 17 Function call

18 Example 3: Output

19 User-Defined Function Having No Parameters Function CostOfItem() As Double Dim price As Double = CDbl(txtPrice.Text) Dim quantity As Integer = CDbl(txtQuantity.Text) Dim cost = price * quantity Return cost End Function

20 User-Defined Boolean-Valued Function Function IsVowelWord(ByVal word As String) As Boolean If word.IndexOf("A") = -1 Then Return False End If. If word.IndexOf("U") = -1 Then Return False End If Return True End Function

Sub Procedures, Part I Defining and Calling Sub Procedures Variables and Expressions as Arguments Sub Procedures Calling Other Sub Procedures

22 General Form of Sub Procedure Perform one or more related tasks General syntax Sub ProcedureName() statements End Sub

23 Calling a Sub Procedure The statement that invokes a Sub procedure is referred to as a calling statement. A calling statement looks like this: ProcedureName(arg1, arg2,..., argN)

24 Naming Sub Procedures The rules for naming Sub procedures are the same as the rules for naming variables.

25 Passing Values DisplaySum(2, 3) Sub DisplaySum(ByVal num1 As Double, ByVal num2 _ As Double) Dim z As Double z = num1 + num2 lstOutput.Items.Add("The sum of " & num1 & " and " & num2 & " is " & z & ".") End Sub In the Sub procedure, 2 will be stored in num1 and 3 will be stored in num2

26 Arguments and Parameters Sum(2, 3) Sub DisplaySum(ByVal num1 As Double, ByVal num2 _ As Double) arguments parameters displayed automatically Turn to Page 176

27 Several Calling Statements DisplaySum(2, 3) DisplaySum(4, 6) DisplaySum(7, 8) Output: The sum of 2 and 3 is 5. The sum of 4 and 6 is 10 The sum of 7 and 8 is 15.

28 Passing Strings and Numbers Demo("CA", 38) Sub Demo(ByVal state As String, ByVal pop _ As Double) lstOutput.Items.Add = state & " has population " & pop & " million." End Sub Note: The statement Demo(38, "CA") would not be valid. The types of the arguments must be in the same order as the types of the parameters.

29 Variables and Expressions as Arguments Dim s As String = "CA" Dim p As Double = 19 Demo(s, 2 * p) Sub Demo(ByVal state As String, ByVal pop _ As Double) lstOutput.Items.Add = state & " has population " & pop & " million." End Sub Note: The argument names need not match the parameter names. For instance, s versus state.

Sub Procedure Having No Parameters Sub DescribeTask() lstBox.Items.Clear() lstBox.Items.Add("This program displays") lstBox.Items.Add("the name and population") lstBox.Items.Add("of a state.") End Sub 30

31 Sub Procedure Calling Another Sub Procedure Private Sub btnDisplay_Click(...) Handles _ btnDisplay.Click Demo("CA", 37) End Sub Sub Demo(ByVal state As String, ByVal pop _ As Double) DescribeTask() lstOutput.Items.Add("") lstOutput.Items.Add = state & " has population " & pop & " million." End Sub

Output This program displays the name and population of a state. CA has population 37 million. 32

Sub Procedures, Part II Passing by Value Passing by Reference Sub Procedures that Return a Single Value Lifetime and Scope of Variables and Constants Debugging

34 ByVal and ByRef Parameters in Sub procedure headers are proceeded by ByVal or ByRef ByVal stands for By Value ByRef stands for By Reference

35 Passing by Value When a variable argument is passed to a ByVal parameter, just the value of the argument is passed. After the Sub procedure terminates, the variable has its original value.

36 Example Public Sub btnOne_Click (...) Handles _ btnOne.Click Dim n As Double = 4 Triple(n) txtBox.Text = CStr(n) End Sub Sub Triple(ByVal num As Double) num = 3 * num End Sub Output: 4

37 Same Example: n num Public Sub btnOne_Click (...) Handles _ btnOne.Click Dim num As Double = 4 Triple(num) txtBox.Text = CStr(num) End Sub Sub Triple(ByVal num As Double) num = 3 * num End Sub Output: 4

38 Passing by Reference When a variable argument is passed to a ByRef parameter, the parameter is given the same memory location as the argument. After the Sub procedure terminates, the variable has the value of the parameter.

39 Example Public Sub btnOne_Click (...) Handles _ btnOne.Click Dim num As Double = 4 Triple(num) txtBox.Text = CStr(num) End Sub Sub Triple(ByRef num As Double) num = 3 * num End Sub Output: 12

40 Example: num n Private Sub btnOne_Click(...) Handles _ btnOne_Click Dim n As Double = 4 Triple(n) txtBox.Text = CStr(n) End Sub Sub Triple(ByRef num As Double) num = 3 * num End Sub Output: 12

Most Common Use of ByRef: Get Input Sub InputData(ByRef wage As Double, ByRef hrs As Double) wage = CDbl(txtWage.Text) hrs = CDbl(txtHours.Text) End Sub 41

Sub Procedures that Return a Single Value with ByRef Should be avoided Usually can be replaced with a Function procedure 42

43 Lifetime and Scope of a Variable Lifetime: Period during which it remains in memory. Scope: In Sub procedures, defined same as in event procedures. Suppose a variable is declared in procedure A that calls procedure B. While procedure B executes, the variable is alive, but out of scope.

44 Debugging Programs with Sub procedures are easier to debug Each Sub procedure can be checked individually before being placed into the program

45 Comparing Function Procedures with Sub Procedures Sub procedures are accessed using a calling statement Functions are called where you would expect to find a literal or expression For example: result = functionCall lstBox.Items.Add (functionCall)

46 Functions vs. Procedures Both can perform similar tasks Both can call other procedures Use a function when you want to return one and only one value

Modular Design Top-Down Design Structured Programming Advantages of Structured Programming

48 Design Terminology Large programs can be broken down into smaller problems divide-and-conquer approach called stepwise refinement Stepwise refinement is part of top-down design methodology

49 Top-Down Design General problems are at the top of the design Specific tasks are near the end of the design Top-down design and structured programming are techniques to enhance programmers' productivity

50 Top-Down Design Criteria 1.The design should be easily readable and emphasize small module size. 2.Modules proceed from general to specific as you read down the chart.

51 Top-Down Design Criteria (con’t) 3.The modules, as much as possible, should be single minded. That is, they should only perform a single well-defined task. 4.Modules should be as independent of each other as possible, and any relationships among modules should be specified.

52 Beginning of Hierarchy Chart

53 Detailed Hierarchy Chart

54 Structured Programming Control structures in structured programming: Sequences: Statements are executed one after another. Decisions: One of two blocks of program code is executed based on a test of a condition. Loops (iteration): One or more statements are executed repeatedly as long as a specified condition is true.

55 Advantages of Structured Programming Goal to create correct programs that are easier to Write Understand M odify

56 Easy to Write Allows programmer to first focus on the big picture and take care of the details later Several programmers can work on the same program at the same time Code that can be used in many programs is said to be reusable

57 Easy to Debug Procedures can be checked individually A driver program can be set up to test modules individually before the complete program is ready. Using a driver program to test modules (or stubs) is known as stub testing.

58 Easy to Understand Interconnections of the procedures reveal the modular design of the program. The meaningful procedure names, along with relevant comments, identify the tasks performed by the modules. The meaningful procedure names help the programmer recall the purpose of each procedure.

59 Easy to Change Because a structured program is self-documenting, it can easily be deciphered by another programmer.

60 Object-Oriented Programming an encapsulation of data and code that operates on the data objects have properties, respond to methods, and raise events.