chapter 5 - general procedures - mcccokikeq/documents/chapter5_001.pdf3 5.1 function procedures •...
TRANSCRIPT
![Page 1: Chapter 5 - General Procedures - MCCCokikeq/documents/Chapter5_001.pdf3 5.1 Function Procedures • User-Defined Functions Having One Parameter • User-Defined Functions Having Several](https://reader035.vdocument.in/reader035/viewer/2022071607/61442f00aa0cd638b460b106/html5/thumbnails/1.jpg)
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
![Page 2: Chapter 5 - General Procedures - MCCCokikeq/documents/Chapter5_001.pdf3 5.1 Function Procedures • User-Defined Functions Having One Parameter • User-Defined Functions Having Several](https://reader035.vdocument.in/reader035/viewer/2022071607/61442f00aa0cd638b460b106/html5/thumbnails/2.jpg)
2
Devices for Modularity Visual Basic has two devices for breaking problems into smaller pieces:
• Function procedures • Sub procedures
![Page 3: Chapter 5 - General Procedures - MCCCokikeq/documents/Chapter5_001.pdf3 5.1 Function Procedures • User-Defined Functions Having One Parameter • User-Defined Functions Having Several](https://reader035.vdocument.in/reader035/viewer/2022071607/61442f00aa0cd638b460b106/html5/thumbnails/3.jpg)
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
![Page 4: Chapter 5 - General Procedures - MCCCokikeq/documents/Chapter5_001.pdf3 5.1 Function Procedures • User-Defined Functions Having One Parameter • User-Defined Functions Having Several](https://reader035.vdocument.in/reader035/viewer/2022071607/61442f00aa0cd638b460b106/html5/thumbnails/4.jpg)
4
Some Built-In Functions Function: Int Example: Int(2.6) is 2 Input: number Output: number Function: Math.Round Example: Math.Round(1.23, 1) is 1.2 Input: number, number Output: number
![Page 5: Chapter 5 - General Procedures - MCCCokikeq/documents/Chapter5_001.pdf3 5.1 Function Procedures • User-Defined Functions Having One Parameter • User-Defined Functions Having Several](https://reader035.vdocument.in/reader035/viewer/2022071607/61442f00aa0cd638b460b106/html5/thumbnails/5.jpg)
5
Some Built-In Functions (continued)
Function: FormatPercent Example: FormatPercent(0.12, 2) is 12.00% Input: number, number Output: string Function: FormatNumber Example: FormatNumber(12.62, 1) is 12.6 Input: number, number Output: string
![Page 6: Chapter 5 - General Procedures - MCCCokikeq/documents/Chapter5_001.pdf3 5.1 Function Procedures • User-Defined Functions Having One Parameter • User-Defined Functions Having Several](https://reader035.vdocument.in/reader035/viewer/2022071607/61442f00aa0cd638b460b106/html5/thumbnails/6.jpg)
6
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
![Page 7: Chapter 5 - General Procedures - MCCCokikeq/documents/Chapter5_001.pdf3 5.1 Function Procedures • User-Defined Functions Having One Parameter • User-Defined Functions Having Several](https://reader035.vdocument.in/reader035/viewer/2022071607/61442f00aa0cd638b460b106/html5/thumbnails/7.jpg)
Example With One Parameter Function FtoC(ByVal t As Double) As Double 'Convert Fahrenheit temp to Celsius Return (5 / 9) * (t - 32) End Function
7
![Page 8: Chapter 5 - General Procedures - MCCCokikeq/documents/Chapter5_001.pdf3 5.1 Function Procedures • User-Defined Functions Having One Parameter • User-Defined Functions Having Several](https://reader035.vdocument.in/reader035/viewer/2022071607/61442f00aa0cd638b460b106/html5/thumbnails/8.jpg)
Header of the FtoC Function Procedure
8
![Page 9: Chapter 5 - General Procedures - MCCCokikeq/documents/Chapter5_001.pdf3 5.1 Function Procedures • User-Defined Functions Having One Parameter • User-Defined Functions Having Several](https://reader035.vdocument.in/reader035/viewer/2022071607/61442f00aa0cd638b460b106/html5/thumbnails/9.jpg)
9
Example 1: Form
txtTempF
txtTempC
![Page 10: Chapter 5 - General Procedures - MCCCokikeq/documents/Chapter5_001.pdf3 5.1 Function Procedures • User-Defined Functions Having One Parameter • User-Defined Functions Having Several](https://reader035.vdocument.in/reader035/viewer/2022071607/61442f00aa0cd638b460b106/html5/thumbnails/10.jpg)
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
10
![Page 11: Chapter 5 - General Procedures - MCCCokikeq/documents/Chapter5_001.pdf3 5.1 Function Procedures • User-Defined Functions Having One Parameter • User-Defined Functions Having Several](https://reader035.vdocument.in/reader035/viewer/2022071607/61442f00aa0cd638b460b106/html5/thumbnails/11.jpg)
11
Example 1: Output
![Page 12: Chapter 5 - General Procedures - MCCCokikeq/documents/Chapter5_001.pdf3 5.1 Function Procedures • User-Defined Functions Having One Parameter • User-Defined Functions Having Several](https://reader035.vdocument.in/reader035/viewer/2022071607/61442f00aa0cd638b460b106/html5/thumbnails/12.jpg)
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
12
![Page 13: Chapter 5 - General Procedures - MCCCokikeq/documents/Chapter5_001.pdf3 5.1 Function Procedures • User-Defined Functions Having One Parameter • User-Defined Functions Having Several](https://reader035.vdocument.in/reader035/viewer/2022071607/61442f00aa0cd638b460b106/html5/thumbnails/13.jpg)
13
Example 2: Form
txtFullName
txtFirstName
![Page 14: Chapter 5 - General Procedures - MCCCokikeq/documents/Chapter5_001.pdf3 5.1 Function Procedures • User-Defined Functions Having One Parameter • User-Defined Functions Having Several](https://reader035.vdocument.in/reader035/viewer/2022071607/61442f00aa0cd638b460b106/html5/thumbnails/14.jpg)
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
14
![Page 15: Chapter 5 - General Procedures - MCCCokikeq/documents/Chapter5_001.pdf3 5.1 Function Procedures • User-Defined Functions Having One Parameter • User-Defined Functions Having Several](https://reader035.vdocument.in/reader035/viewer/2022071607/61442f00aa0cd638b460b106/html5/thumbnails/15.jpg)
15
Example 2: Output
![Page 16: Chapter 5 - General Procedures - MCCCokikeq/documents/Chapter5_001.pdf3 5.1 Function Procedures • User-Defined Functions Having One Parameter • User-Defined Functions Having Several](https://reader035.vdocument.in/reader035/viewer/2022071607/61442f00aa0cd638b460b106/html5/thumbnails/16.jpg)
16
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
![Page 17: Chapter 5 - General Procedures - MCCCokikeq/documents/Chapter5_001.pdf3 5.1 Function Procedures • User-Defined Functions Having One Parameter • User-Defined Functions Having Several](https://reader035.vdocument.in/reader035/viewer/2022071607/61442f00aa0cd638b460b106/html5/thumbnails/17.jpg)
17
Example 3: Form
txtWage
txtHours
txtEarnings
![Page 18: Chapter 5 - General Procedures - MCCCokikeq/documents/Chapter5_001.pdf3 5.1 Function Procedures • User-Defined Functions Having One Parameter • User-Defined Functions Having Several](https://reader035.vdocument.in/reader035/viewer/2022071607/61442f00aa0cd638b460b106/html5/thumbnails/18.jpg)
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
18
Function call
![Page 19: Chapter 5 - General Procedures - MCCCokikeq/documents/Chapter5_001.pdf3 5.1 Function Procedures • User-Defined Functions Having One Parameter • User-Defined Functions Having Several](https://reader035.vdocument.in/reader035/viewer/2022071607/61442f00aa0cd638b460b106/html5/thumbnails/19.jpg)
19
Example 3: Output
![Page 20: Chapter 5 - General Procedures - MCCCokikeq/documents/Chapter5_001.pdf3 5.1 Function Procedures • User-Defined Functions Having One Parameter • User-Defined Functions Having Several](https://reader035.vdocument.in/reader035/viewer/2022071607/61442f00aa0cd638b460b106/html5/thumbnails/20.jpg)
20
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
![Page 21: Chapter 5 - General Procedures - MCCCokikeq/documents/Chapter5_001.pdf3 5.1 Function Procedures • User-Defined Functions Having One Parameter • User-Defined Functions Having Several](https://reader035.vdocument.in/reader035/viewer/2022071607/61442f00aa0cd638b460b106/html5/thumbnails/21.jpg)
21
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
![Page 22: Chapter 5 - General Procedures - MCCCokikeq/documents/Chapter5_001.pdf3 5.1 Function Procedures • User-Defined Functions Having One Parameter • User-Defined Functions Having Several](https://reader035.vdocument.in/reader035/viewer/2022071607/61442f00aa0cd638b460b106/html5/thumbnails/22.jpg)
22
5.2 Sub Procedures, Part I • Defining and Calling Sub Procedures • Variables and Expressions as Arguments • Sub Procedures Calling Other Sub
Procedures
![Page 23: Chapter 5 - General Procedures - MCCCokikeq/documents/Chapter5_001.pdf3 5.1 Function Procedures • User-Defined Functions Having One Parameter • User-Defined Functions Having Several](https://reader035.vdocument.in/reader035/viewer/2022071607/61442f00aa0cd638b460b106/html5/thumbnails/23.jpg)
23
General Form of Sub Procedure
![Page 24: Chapter 5 - General Procedures - MCCCokikeq/documents/Chapter5_001.pdf3 5.1 Function Procedures • User-Defined Functions Having One Parameter • User-Defined Functions Having Several](https://reader035.vdocument.in/reader035/viewer/2022071607/61442f00aa0cd638b460b106/html5/thumbnails/24.jpg)
24
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)
![Page 25: Chapter 5 - General Procedures - MCCCokikeq/documents/Chapter5_001.pdf3 5.1 Function Procedures • User-Defined Functions Having One Parameter • User-Defined Functions Having Several](https://reader035.vdocument.in/reader035/viewer/2022071607/61442f00aa0cd638b460b106/html5/thumbnails/25.jpg)
25
Naming Sub Procedures The rules for naming Sub procedures are the same as the rules for naming variables.
![Page 26: Chapter 5 - General Procedures - MCCCokikeq/documents/Chapter5_001.pdf3 5.1 Function Procedures • User-Defined Functions Having One Parameter • User-Defined Functions Having Several](https://reader035.vdocument.in/reader035/viewer/2022071607/61442f00aa0cd638b460b106/html5/thumbnails/26.jpg)
26
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
![Page 27: Chapter 5 - General Procedures - MCCCokikeq/documents/Chapter5_001.pdf3 5.1 Function Procedures • User-Defined Functions Having One Parameter • User-Defined Functions Having Several](https://reader035.vdocument.in/reader035/viewer/2022071607/61442f00aa0cd638b460b106/html5/thumbnails/27.jpg)
27
Arguments and Parameters Sum(2, 3)
Sub DisplaySum(ByVal num1 As Double, ByVal num2 _ As Double)
arguments
parameters
displayed automatically
![Page 28: Chapter 5 - General Procedures - MCCCokikeq/documents/Chapter5_001.pdf3 5.1 Function Procedures • User-Defined Functions Having One Parameter • User-Defined Functions Having Several](https://reader035.vdocument.in/reader035/viewer/2022071607/61442f00aa0cd638b460b106/html5/thumbnails/28.jpg)
28
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.
![Page 29: Chapter 5 - General Procedures - MCCCokikeq/documents/Chapter5_001.pdf3 5.1 Function Procedures • User-Defined Functions Having One Parameter • User-Defined Functions Having Several](https://reader035.vdocument.in/reader035/viewer/2022071607/61442f00aa0cd638b460b106/html5/thumbnails/29.jpg)
29
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.
![Page 30: Chapter 5 - General Procedures - MCCCokikeq/documents/Chapter5_001.pdf3 5.1 Function Procedures • User-Defined Functions Having One Parameter • User-Defined Functions Having Several](https://reader035.vdocument.in/reader035/viewer/2022071607/61442f00aa0cd638b460b106/html5/thumbnails/30.jpg)
30
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.
![Page 31: Chapter 5 - General Procedures - MCCCokikeq/documents/Chapter5_001.pdf3 5.1 Function Procedures • User-Defined Functions Having One Parameter • User-Defined Functions Having Several](https://reader035.vdocument.in/reader035/viewer/2022071607/61442f00aa0cd638b460b106/html5/thumbnails/31.jpg)
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
31
![Page 32: Chapter 5 - General Procedures - MCCCokikeq/documents/Chapter5_001.pdf3 5.1 Function Procedures • User-Defined Functions Having One Parameter • User-Defined Functions Having Several](https://reader035.vdocument.in/reader035/viewer/2022071607/61442f00aa0cd638b460b106/html5/thumbnails/32.jpg)
32
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
![Page 33: Chapter 5 - General Procedures - MCCCokikeq/documents/Chapter5_001.pdf3 5.1 Function Procedures • User-Defined Functions Having One Parameter • User-Defined Functions Having Several](https://reader035.vdocument.in/reader035/viewer/2022071607/61442f00aa0cd638b460b106/html5/thumbnails/33.jpg)
Output This program displays the name and population of a state. CA has population 37 million.
33
![Page 34: Chapter 5 - General Procedures - MCCCokikeq/documents/Chapter5_001.pdf3 5.1 Function Procedures • User-Defined Functions Having One Parameter • User-Defined Functions Having Several](https://reader035.vdocument.in/reader035/viewer/2022071607/61442f00aa0cd638b460b106/html5/thumbnails/34.jpg)
34
5.3 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
![Page 35: Chapter 5 - General Procedures - MCCCokikeq/documents/Chapter5_001.pdf3 5.1 Function Procedures • User-Defined Functions Having One Parameter • User-Defined Functions Having Several](https://reader035.vdocument.in/reader035/viewer/2022071607/61442f00aa0cd638b460b106/html5/thumbnails/35.jpg)
35
ByVal and ByRef
• Parameters in Sub procedure headers are proceeded by ByVal or ByRef
• ByVal stands for By Value • ByRef stands for By Reference
![Page 36: Chapter 5 - General Procedures - MCCCokikeq/documents/Chapter5_001.pdf3 5.1 Function Procedures • User-Defined Functions Having One Parameter • User-Defined Functions Having Several](https://reader035.vdocument.in/reader035/viewer/2022071607/61442f00aa0cd638b460b106/html5/thumbnails/36.jpg)
36
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.
![Page 37: Chapter 5 - General Procedures - MCCCokikeq/documents/Chapter5_001.pdf3 5.1 Function Procedures • User-Defined Functions Having One Parameter • User-Defined Functions Having Several](https://reader035.vdocument.in/reader035/viewer/2022071607/61442f00aa0cd638b460b106/html5/thumbnails/37.jpg)
37
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
![Page 38: Chapter 5 - General Procedures - MCCCokikeq/documents/Chapter5_001.pdf3 5.1 Function Procedures • User-Defined Functions Having One Parameter • User-Defined Functions Having Several](https://reader035.vdocument.in/reader035/viewer/2022071607/61442f00aa0cd638b460b106/html5/thumbnails/38.jpg)
38
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
![Page 39: Chapter 5 - General Procedures - MCCCokikeq/documents/Chapter5_001.pdf3 5.1 Function Procedures • User-Defined Functions Having One Parameter • User-Defined Functions Having Several](https://reader035.vdocument.in/reader035/viewer/2022071607/61442f00aa0cd638b460b106/html5/thumbnails/39.jpg)
39
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.
![Page 40: Chapter 5 - General Procedures - MCCCokikeq/documents/Chapter5_001.pdf3 5.1 Function Procedures • User-Defined Functions Having One Parameter • User-Defined Functions Having Several](https://reader035.vdocument.in/reader035/viewer/2022071607/61442f00aa0cd638b460b106/html5/thumbnails/40.jpg)
40
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
![Page 41: Chapter 5 - General Procedures - MCCCokikeq/documents/Chapter5_001.pdf3 5.1 Function Procedures • User-Defined Functions Having One Parameter • User-Defined Functions Having Several](https://reader035.vdocument.in/reader035/viewer/2022071607/61442f00aa0cd638b460b106/html5/thumbnails/41.jpg)
41
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
![Page 42: Chapter 5 - General Procedures - MCCCokikeq/documents/Chapter5_001.pdf3 5.1 Function Procedures • User-Defined Functions Having One Parameter • User-Defined Functions Having Several](https://reader035.vdocument.in/reader035/viewer/2022071607/61442f00aa0cd638b460b106/html5/thumbnails/42.jpg)
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
42
![Page 43: Chapter 5 - General Procedures - MCCCokikeq/documents/Chapter5_001.pdf3 5.1 Function Procedures • User-Defined Functions Having One Parameter • User-Defined Functions Having Several](https://reader035.vdocument.in/reader035/viewer/2022071607/61442f00aa0cd638b460b106/html5/thumbnails/43.jpg)
Sub Procedures that Return a Single Value with ByRef
• Should be avoided • Usually can be replaced with a Function
procedure
43
![Page 44: Chapter 5 - General Procedures - MCCCokikeq/documents/Chapter5_001.pdf3 5.1 Function Procedures • User-Defined Functions Having One Parameter • User-Defined Functions Having Several](https://reader035.vdocument.in/reader035/viewer/2022071607/61442f00aa0cd638b460b106/html5/thumbnails/44.jpg)
44
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.
![Page 45: Chapter 5 - General Procedures - MCCCokikeq/documents/Chapter5_001.pdf3 5.1 Function Procedures • User-Defined Functions Having One Parameter • User-Defined Functions Having Several](https://reader035.vdocument.in/reader035/viewer/2022071607/61442f00aa0cd638b460b106/html5/thumbnails/45.jpg)
45
Debugging • Programs with Sub procedures are
easier to debug • Each Sub procedure can be checked
individually before being placed into the program
![Page 46: Chapter 5 - General Procedures - MCCCokikeq/documents/Chapter5_001.pdf3 5.1 Function Procedures • User-Defined Functions Having One Parameter • User-Defined Functions Having Several](https://reader035.vdocument.in/reader035/viewer/2022071607/61442f00aa0cd638b460b106/html5/thumbnails/46.jpg)
46
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)
![Page 47: Chapter 5 - General Procedures - MCCCokikeq/documents/Chapter5_001.pdf3 5.1 Function Procedures • User-Defined Functions Having One Parameter • User-Defined Functions Having Several](https://reader035.vdocument.in/reader035/viewer/2022071607/61442f00aa0cd638b460b106/html5/thumbnails/47.jpg)
47
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
![Page 48: Chapter 5 - General Procedures - MCCCokikeq/documents/Chapter5_001.pdf3 5.1 Function Procedures • User-Defined Functions Having One Parameter • User-Defined Functions Having Several](https://reader035.vdocument.in/reader035/viewer/2022071607/61442f00aa0cd638b460b106/html5/thumbnails/48.jpg)
48
5.4 Modular Design • Top-Down Design • Structured Programming • Advantages of Structured Programming
![Page 49: Chapter 5 - General Procedures - MCCCokikeq/documents/Chapter5_001.pdf3 5.1 Function Procedures • User-Defined Functions Having One Parameter • User-Defined Functions Having Several](https://reader035.vdocument.in/reader035/viewer/2022071607/61442f00aa0cd638b460b106/html5/thumbnails/49.jpg)
49
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
![Page 50: Chapter 5 - General Procedures - MCCCokikeq/documents/Chapter5_001.pdf3 5.1 Function Procedures • User-Defined Functions Having One Parameter • User-Defined Functions Having Several](https://reader035.vdocument.in/reader035/viewer/2022071607/61442f00aa0cd638b460b106/html5/thumbnails/50.jpg)
50
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
![Page 51: Chapter 5 - General Procedures - MCCCokikeq/documents/Chapter5_001.pdf3 5.1 Function Procedures • User-Defined Functions Having One Parameter • User-Defined Functions Having Several](https://reader035.vdocument.in/reader035/viewer/2022071607/61442f00aa0cd638b460b106/html5/thumbnails/51.jpg)
51
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. 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.
![Page 52: Chapter 5 - General Procedures - MCCCokikeq/documents/Chapter5_001.pdf3 5.1 Function Procedures • User-Defined Functions Having One Parameter • User-Defined Functions Having Several](https://reader035.vdocument.in/reader035/viewer/2022071607/61442f00aa0cd638b460b106/html5/thumbnails/52.jpg)
52
Beginning of Hierarchy Chart
![Page 53: Chapter 5 - General Procedures - MCCCokikeq/documents/Chapter5_001.pdf3 5.1 Function Procedures • User-Defined Functions Having One Parameter • User-Defined Functions Having Several](https://reader035.vdocument.in/reader035/viewer/2022071607/61442f00aa0cd638b460b106/html5/thumbnails/53.jpg)
53
Detailed Hierarchy Chart
![Page 54: Chapter 5 - General Procedures - MCCCokikeq/documents/Chapter5_001.pdf3 5.1 Function Procedures • User-Defined Functions Having One Parameter • User-Defined Functions Having Several](https://reader035.vdocument.in/reader035/viewer/2022071607/61442f00aa0cd638b460b106/html5/thumbnails/54.jpg)
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.
![Page 55: Chapter 5 - General Procedures - MCCCokikeq/documents/Chapter5_001.pdf3 5.1 Function Procedures • User-Defined Functions Having One Parameter • User-Defined Functions Having Several](https://reader035.vdocument.in/reader035/viewer/2022071607/61442f00aa0cd638b460b106/html5/thumbnails/55.jpg)
55
Advantages of Structured Programming
Goal to create correct programs that are easier to
• write • understand • modify
![Page 56: Chapter 5 - General Procedures - MCCCokikeq/documents/Chapter5_001.pdf3 5.1 Function Procedures • User-Defined Functions Having One Parameter • User-Defined Functions Having Several](https://reader035.vdocument.in/reader035/viewer/2022071607/61442f00aa0cd638b460b106/html5/thumbnails/56.jpg)
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
![Page 57: Chapter 5 - General Procedures - MCCCokikeq/documents/Chapter5_001.pdf3 5.1 Function Procedures • User-Defined Functions Having One Parameter • User-Defined Functions Having Several](https://reader035.vdocument.in/reader035/viewer/2022071607/61442f00aa0cd638b460b106/html5/thumbnails/57.jpg)
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.
![Page 58: Chapter 5 - General Procedures - MCCCokikeq/documents/Chapter5_001.pdf3 5.1 Function Procedures • User-Defined Functions Having One Parameter • User-Defined Functions Having Several](https://reader035.vdocument.in/reader035/viewer/2022071607/61442f00aa0cd638b460b106/html5/thumbnails/58.jpg)
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.
![Page 59: Chapter 5 - General Procedures - MCCCokikeq/documents/Chapter5_001.pdf3 5.1 Function Procedures • User-Defined Functions Having One Parameter • User-Defined Functions Having Several](https://reader035.vdocument.in/reader035/viewer/2022071607/61442f00aa0cd638b460b106/html5/thumbnails/59.jpg)
59
Easy to Change • Because a structured program is self-
documenting, it can easily be deciphered by another programmer.
![Page 60: Chapter 5 - General Procedures - MCCCokikeq/documents/Chapter5_001.pdf3 5.1 Function Procedures • User-Defined Functions Having One Parameter • User-Defined Functions Having Several](https://reader035.vdocument.in/reader035/viewer/2022071607/61442f00aa0cd638b460b106/html5/thumbnails/60.jpg)
60
Object-Oriented Programming • an encapsulation of data and code that
operates on the data • objects have properties, respond to
methods, and raise events.