visual basic - chapter 5alumni.cs.ucr.edu/~mshok002/imefall2012/ch05.pdf · 1 visual basic -...
TRANSCRIPT
![Page 1: Visual Basic - Chapter 5alumni.cs.ucr.edu/~mshok002/IMEfall2012/Ch05.pdf · 1 Visual Basic - Chapter 5 Mohammad Shokoohi * Adopted from An Introduction to Programming Using Visual](https://reader034.vdocuments.us/reader034/viewer/2022051803/5b00ee247f8b9a84338d6362/html5/thumbnails/1.jpg)
1
Visual Basic - Chapter 5
Mohammad Shokoohi
* Adopted from An Introduction to Programming Using Visual Basic 2010, Schneider
![Page 2: Visual Basic - Chapter 5alumni.cs.ucr.edu/~mshok002/IMEfall2012/Ch05.pdf · 1 Visual Basic - Chapter 5 Mohammad Shokoohi * Adopted from An Introduction to Programming Using Visual](https://reader034.vdocuments.us/reader034/viewer/2022051803/5b00ee247f8b9a84338d6362/html5/thumbnails/2.jpg)
2
Chapter 5 - General Procedures
5.1 Function Procedures5.2 Sub Procedures, Part I5.3 Sub Procedures, Part II5.4 Modular Design
![Page 3: Visual Basic - Chapter 5alumni.cs.ucr.edu/~mshok002/IMEfall2012/Ch05.pdf · 1 Visual Basic - Chapter 5 Mohammad Shokoohi * Adopted from An Introduction to Programming Using Visual](https://reader034.vdocuments.us/reader034/viewer/2022051803/5b00ee247f8b9a84338d6362/html5/thumbnails/3.jpg)
3
Devices for ModularityVisual Basic has two devices for breaking problems into smaller pieces:
• Function procedures• Sub procedures
![Page 4: Visual Basic - Chapter 5alumni.cs.ucr.edu/~mshok002/IMEfall2012/Ch05.pdf · 1 Visual Basic - Chapter 5 Mohammad Shokoohi * Adopted from An Introduction to Programming Using Visual](https://reader034.vdocuments.us/reader034/viewer/2022051803/5b00ee247f8b9a84338d6362/html5/thumbnails/4.jpg)
4
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 5: Visual Basic - Chapter 5alumni.cs.ucr.edu/~mshok002/IMEfall2012/Ch05.pdf · 1 Visual Basic - Chapter 5 Mohammad Shokoohi * Adopted from An Introduction to Programming Using Visual](https://reader034.vdocuments.us/reader034/viewer/2022051803/5b00ee247f8b9a84338d6362/html5/thumbnails/5.jpg)
5
Some Built-In FunctionsFunction: IntExample: Int(2.6) is 2Input: numberOutput: number
Function: Math.RoundExample: Math.Round(1.23, 1) is 1.2 Input: number, numberOutput: number
![Page 6: Visual Basic - Chapter 5alumni.cs.ucr.edu/~mshok002/IMEfall2012/Ch05.pdf · 1 Visual Basic - Chapter 5 Mohammad Shokoohi * Adopted from An Introduction to Programming Using Visual](https://reader034.vdocuments.us/reader034/viewer/2022051803/5b00ee247f8b9a84338d6362/html5/thumbnails/6.jpg)
6
Some Built-In Functions (continued)
Function: FormatPercentExample: FormatPercent(0.12, 2) is 12.00%Input: number, numberOutput: string
Function: FormatNumberExample: FormatNumber(12.62, 1) is 12.6 Input: number, numberOutput: string
![Page 7: Visual Basic - Chapter 5alumni.cs.ucr.edu/~mshok002/IMEfall2012/Ch05.pdf · 1 Visual Basic - Chapter 5 Mohammad Shokoohi * Adopted from An Introduction to Programming Using Visual](https://reader034.vdocuments.us/reader034/viewer/2022051803/5b00ee247f8b9a84338d6362/html5/thumbnails/7.jpg)
7
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 8: Visual Basic - Chapter 5alumni.cs.ucr.edu/~mshok002/IMEfall2012/Ch05.pdf · 1 Visual Basic - Chapter 5 Mohammad Shokoohi * Adopted from An Introduction to Programming Using Visual](https://reader034.vdocuments.us/reader034/viewer/2022051803/5b00ee247f8b9a84338d6362/html5/thumbnails/8.jpg)
Example With One ParameterFunction FtoC(ByVal t As Double) As Double
'Convert Fahrenheit temp to CelsiusReturn (5 / 9) * (t - 32)
End Function
8
![Page 9: Visual Basic - Chapter 5alumni.cs.ucr.edu/~mshok002/IMEfall2012/Ch05.pdf · 1 Visual Basic - Chapter 5 Mohammad Shokoohi * Adopted from An Introduction to Programming Using Visual](https://reader034.vdocuments.us/reader034/viewer/2022051803/5b00ee247f8b9a84338d6362/html5/thumbnails/9.jpg)
Header of the FtoC Function Procedure
9
![Page 10: Visual Basic - Chapter 5alumni.cs.ucr.edu/~mshok002/IMEfall2012/Ch05.pdf · 1 Visual Basic - Chapter 5 Mohammad Shokoohi * Adopted from An Introduction to Programming Using Visual](https://reader034.vdocuments.us/reader034/viewer/2022051803/5b00ee247f8b9a84338d6362/html5/thumbnails/10.jpg)
10
Example 1: Form
txtTempF
txtTempC
![Page 11: Visual Basic - Chapter 5alumni.cs.ucr.edu/~mshok002/IMEfall2012/Ch05.pdf · 1 Visual Basic - Chapter 5 Mohammad Shokoohi * Adopted from An Introduction to Programming Using Visual](https://reader034.vdocuments.us/reader034/viewer/2022051803/5b00ee247f8b9a84338d6362/html5/thumbnails/11.jpg)
Example 1: CodePrivate Sub btnConvert_Click(...) _
Handles btnConvert.ClickDim fahrenheitTemp, celsiusTemp As DoublefahrenheitTemp = CDbl(txtTempF.Text)celsiusTemp = FtoC(fahrenheitTemp)txtTempC.Text = CStr(celsiusTemp )
End Sub
Function FtoC(ByVal t As Double) As DoubleReturn (5 / 9) * (t - 32)
End Function11
![Page 12: Visual Basic - Chapter 5alumni.cs.ucr.edu/~mshok002/IMEfall2012/Ch05.pdf · 1 Visual Basic - Chapter 5 Mohammad Shokoohi * Adopted from An Introduction to Programming Using Visual](https://reader034.vdocuments.us/reader034/viewer/2022051803/5b00ee247f8b9a84338d6362/html5/thumbnails/12.jpg)
12
Example 1: Output
![Page 13: Visual Basic - Chapter 5alumni.cs.ucr.edu/~mshok002/IMEfall2012/Ch05.pdf · 1 Visual Basic - Chapter 5 Mohammad Shokoohi * Adopted from An Introduction to Programming Using Visual](https://reader034.vdocuments.us/reader034/viewer/2022051803/5b00ee247f8b9a84338d6362/html5/thumbnails/13.jpg)
Example With One ParameterFunction FirstName(ByVal fullName As
String) As String'Extract first name from full nameDim firstSpace As IntegerfirstSpace = fullName.IndexOf(" ")Return fullName.Substring(0, firstSpace)
End Function
13
![Page 14: Visual Basic - Chapter 5alumni.cs.ucr.edu/~mshok002/IMEfall2012/Ch05.pdf · 1 Visual Basic - Chapter 5 Mohammad Shokoohi * Adopted from An Introduction to Programming Using Visual](https://reader034.vdocuments.us/reader034/viewer/2022051803/5b00ee247f8b9a84338d6362/html5/thumbnails/14.jpg)
14
Example 2: Form
txtFullName
txtFirstName
![Page 15: Visual Basic - Chapter 5alumni.cs.ucr.edu/~mshok002/IMEfall2012/Ch05.pdf · 1 Visual Basic - Chapter 5 Mohammad Shokoohi * Adopted from An Introduction to Programming Using Visual](https://reader034.vdocuments.us/reader034/viewer/2022051803/5b00ee247f8b9a84338d6362/html5/thumbnails/15.jpg)
Example 2: CodePrivate Sub btnDetermine_Click(...) _
Handles btnDetermine.ClickDim fullName As StringfullName = txtFullName.TexttxtFirstName.Text = FirstName(fullName)
End Sub
Function FirstName(ByVal fullName As String) _As String
Dim firstSpace As IntegerfirstSpace = name.IndexOf(" ")Return name.Substring(0, firstSpace)
End Function 15
![Page 16: Visual Basic - Chapter 5alumni.cs.ucr.edu/~mshok002/IMEfall2012/Ch05.pdf · 1 Visual Basic - Chapter 5 Mohammad Shokoohi * Adopted from An Introduction to Programming Using Visual](https://reader034.vdocuments.us/reader034/viewer/2022051803/5b00ee247f8b9a84338d6362/html5/thumbnails/16.jpg)
16
Example 2: Output
![Page 17: Visual Basic - Chapter 5alumni.cs.ucr.edu/~mshok002/IMEfall2012/Ch05.pdf · 1 Visual Basic - Chapter 5 Mohammad Shokoohi * Adopted from An Introduction to Programming Using Visual](https://reader034.vdocuments.us/reader034/viewer/2022051803/5b00ee247f8b9a84338d6362/html5/thumbnails/17.jpg)
17
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 <= 40amt = wage * hrs
Case Is > 40amt = wage * 40 +(1.5 * wage * (hrs – 40))
End SelectReturn amt
End Function
![Page 18: Visual Basic - Chapter 5alumni.cs.ucr.edu/~mshok002/IMEfall2012/Ch05.pdf · 1 Visual Basic - Chapter 5 Mohammad Shokoohi * Adopted from An Introduction to Programming Using Visual](https://reader034.vdocuments.us/reader034/viewer/2022051803/5b00ee247f8b9a84338d6362/html5/thumbnails/18.jpg)
18
Example 3: Form
txtWage
txtHours
txtEarnings
![Page 19: Visual Basic - Chapter 5alumni.cs.ucr.edu/~mshok002/IMEfall2012/Ch05.pdf · 1 Visual Basic - Chapter 5 Mohammad Shokoohi * Adopted from An Introduction to Programming Using Visual](https://reader034.vdocuments.us/reader034/viewer/2022051803/5b00ee247f8b9a84338d6362/html5/thumbnails/19.jpg)
Example 3: Partial CodePrivate Sub btnCalculate_Click(...) _
Handles btnCalculate.ClickDim hourlyWage, hoursWorkded As DoublehourlyWage = CDbl(txtWage.Text)hoursWorked = CDbl(txtHours.Text)txtEarnings.Text =
FormatCurrency(Pay(hourlyWage, hoursWorked))End Sub
19
Function call
![Page 20: Visual Basic - Chapter 5alumni.cs.ucr.edu/~mshok002/IMEfall2012/Ch05.pdf · 1 Visual Basic - Chapter 5 Mohammad Shokoohi * Adopted from An Introduction to Programming Using Visual](https://reader034.vdocuments.us/reader034/viewer/2022051803/5b00ee247f8b9a84338d6362/html5/thumbnails/20.jpg)
20
Example 3: Output
![Page 21: Visual Basic - Chapter 5alumni.cs.ucr.edu/~mshok002/IMEfall2012/Ch05.pdf · 1 Visual Basic - Chapter 5 Mohammad Shokoohi * Adopted from An Introduction to Programming Using Visual](https://reader034.vdocuments.us/reader034/viewer/2022051803/5b00ee247f8b9a84338d6362/html5/thumbnails/21.jpg)
21
User-Defined Function Having No Parameters
Function CostOfItem() As DoubleDim price As Double = CDbl(txtPrice.Text)Dim quantity As Integer =
CDbl(txtQuantity.Text)Dim cost = price * quantityReturn cost
End Function
![Page 22: Visual Basic - Chapter 5alumni.cs.ucr.edu/~mshok002/IMEfall2012/Ch05.pdf · 1 Visual Basic - Chapter 5 Mohammad Shokoohi * Adopted from An Introduction to Programming Using Visual](https://reader034.vdocuments.us/reader034/viewer/2022051803/5b00ee247f8b9a84338d6362/html5/thumbnails/22.jpg)
22
User-Defined Boolean-Valued Function
Function IsVowelWord(ByVal word As String) AsBoolean
If word.IndexOf("A") = -1 ThenReturn False
End If..If word.IndexOf("U") = -1 Then
Return FalseEnd IfReturn True
End Function
![Page 23: Visual Basic - Chapter 5alumni.cs.ucr.edu/~mshok002/IMEfall2012/Ch05.pdf · 1 Visual Basic - Chapter 5 Mohammad Shokoohi * Adopted from An Introduction to Programming Using Visual](https://reader034.vdocuments.us/reader034/viewer/2022051803/5b00ee247f8b9a84338d6362/html5/thumbnails/23.jpg)
23
5.2 Sub Procedures, Part I• Defining and Calling Sub Procedures• Variables and Expressions as Arguments• Sub Procedures Calling Other Sub
Procedures
![Page 24: Visual Basic - Chapter 5alumni.cs.ucr.edu/~mshok002/IMEfall2012/Ch05.pdf · 1 Visual Basic - Chapter 5 Mohammad Shokoohi * Adopted from An Introduction to Programming Using Visual](https://reader034.vdocuments.us/reader034/viewer/2022051803/5b00ee247f8b9a84338d6362/html5/thumbnails/24.jpg)
24
General Form of Sub Procedure
![Page 25: Visual Basic - Chapter 5alumni.cs.ucr.edu/~mshok002/IMEfall2012/Ch05.pdf · 1 Visual Basic - Chapter 5 Mohammad Shokoohi * Adopted from An Introduction to Programming Using Visual](https://reader034.vdocuments.us/reader034/viewer/2022051803/5b00ee247f8b9a84338d6362/html5/thumbnails/25.jpg)
25
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 26: Visual Basic - Chapter 5alumni.cs.ucr.edu/~mshok002/IMEfall2012/Ch05.pdf · 1 Visual Basic - Chapter 5 Mohammad Shokoohi * Adopted from An Introduction to Programming Using Visual](https://reader034.vdocuments.us/reader034/viewer/2022051803/5b00ee247f8b9a84338d6362/html5/thumbnails/26.jpg)
26
Naming Sub ProceduresThe rules for naming Sub procedures are the same as the rules for naming variables.
![Page 27: Visual Basic - Chapter 5alumni.cs.ucr.edu/~mshok002/IMEfall2012/Ch05.pdf · 1 Visual Basic - Chapter 5 Mohammad Shokoohi * Adopted from An Introduction to Programming Using Visual](https://reader034.vdocuments.us/reader034/viewer/2022051803/5b00ee247f8b9a84338d6362/html5/thumbnails/27.jpg)
27
Passing ValuesDisplaySum(2, 3)
Sub DisplaySum(ByVal num1 As Double, ByVal num2 _As Double)
Dim z As Doublez = num1 + num2lstOutput.Items.Add("The sum of " & num1 &
" and " & num2 & " is " & z & ".")End Sub
• In the Sub procedure, 2 will be stored in num1and 3 will be stored in num2
![Page 28: Visual Basic - Chapter 5alumni.cs.ucr.edu/~mshok002/IMEfall2012/Ch05.pdf · 1 Visual Basic - Chapter 5 Mohammad Shokoohi * Adopted from An Introduction to Programming Using Visual](https://reader034.vdocuments.us/reader034/viewer/2022051803/5b00ee247f8b9a84338d6362/html5/thumbnails/28.jpg)
28
Arguments and ParametersSum(2, 3)
Sub DisplaySum(ByVal num1 As Double, ByVal num2 _As Double)
arguments
parameters
displayedautomatically
![Page 29: Visual Basic - Chapter 5alumni.cs.ucr.edu/~mshok002/IMEfall2012/Ch05.pdf · 1 Visual Basic - Chapter 5 Mohammad Shokoohi * Adopted from An Introduction to Programming Using Visual](https://reader034.vdocuments.us/reader034/viewer/2022051803/5b00ee247f8b9a84338d6362/html5/thumbnails/29.jpg)
29
Several Calling StatementsDisplaySum(2, 3)DisplaySum(4, 6)DisplaySum(7, 8)
Output:The sum of 2 and 3 is 5.The sum of 4 and 6 is 10The sum of 7 and 8 is 15.
![Page 30: Visual Basic - Chapter 5alumni.cs.ucr.edu/~mshok002/IMEfall2012/Ch05.pdf · 1 Visual Basic - Chapter 5 Mohammad Shokoohi * Adopted from An Introduction to Programming Using Visual](https://reader034.vdocuments.us/reader034/viewer/2022051803/5b00ee247f8b9a84338d6362/html5/thumbnails/30.jpg)
30
Passing Strings and NumbersDemo("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 31: Visual Basic - Chapter 5alumni.cs.ucr.edu/~mshok002/IMEfall2012/Ch05.pdf · 1 Visual Basic - Chapter 5 Mohammad Shokoohi * Adopted from An Introduction to Programming Using Visual](https://reader034.vdocuments.us/reader034/viewer/2022051803/5b00ee247f8b9a84338d6362/html5/thumbnails/31.jpg)
31
Variables and Expressions as Arguments
Dim s As String = "CA"Dim p As Double = 19Demo(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 32: Visual Basic - Chapter 5alumni.cs.ucr.edu/~mshok002/IMEfall2012/Ch05.pdf · 1 Visual Basic - Chapter 5 Mohammad Shokoohi * Adopted from An Introduction to Programming Using Visual](https://reader034.vdocuments.us/reader034/viewer/2022051803/5b00ee247f8b9a84338d6362/html5/thumbnails/32.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
32
![Page 33: Visual Basic - Chapter 5alumni.cs.ucr.edu/~mshok002/IMEfall2012/Ch05.pdf · 1 Visual Basic - Chapter 5 Mohammad Shokoohi * Adopted from An Introduction to Programming Using Visual](https://reader034.vdocuments.us/reader034/viewer/2022051803/5b00ee247f8b9a84338d6362/html5/thumbnails/33.jpg)
33
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 34: Visual Basic - Chapter 5alumni.cs.ucr.edu/~mshok002/IMEfall2012/Ch05.pdf · 1 Visual Basic - Chapter 5 Mohammad Shokoohi * Adopted from An Introduction to Programming Using Visual](https://reader034.vdocuments.us/reader034/viewer/2022051803/5b00ee247f8b9a84338d6362/html5/thumbnails/34.jpg)
Output
This program displaysthe name and populationof a state.
CA has population 37 million.
34
![Page 35: Visual Basic - Chapter 5alumni.cs.ucr.edu/~mshok002/IMEfall2012/Ch05.pdf · 1 Visual Basic - Chapter 5 Mohammad Shokoohi * Adopted from An Introduction to Programming Using Visual](https://reader034.vdocuments.us/reader034/viewer/2022051803/5b00ee247f8b9a84338d6362/html5/thumbnails/35.jpg)
35
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 36: Visual Basic - Chapter 5alumni.cs.ucr.edu/~mshok002/IMEfall2012/Ch05.pdf · 1 Visual Basic - Chapter 5 Mohammad Shokoohi * Adopted from An Introduction to Programming Using Visual](https://reader034.vdocuments.us/reader034/viewer/2022051803/5b00ee247f8b9a84338d6362/html5/thumbnails/36.jpg)
36
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 37: Visual Basic - Chapter 5alumni.cs.ucr.edu/~mshok002/IMEfall2012/Ch05.pdf · 1 Visual Basic - Chapter 5 Mohammad Shokoohi * Adopted from An Introduction to Programming Using Visual](https://reader034.vdocuments.us/reader034/viewer/2022051803/5b00ee247f8b9a84338d6362/html5/thumbnails/37.jpg)
37
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 38: Visual Basic - Chapter 5alumni.cs.ucr.edu/~mshok002/IMEfall2012/Ch05.pdf · 1 Visual Basic - Chapter 5 Mohammad Shokoohi * Adopted from An Introduction to Programming Using Visual](https://reader034.vdocuments.us/reader034/viewer/2022051803/5b00ee247f8b9a84338d6362/html5/thumbnails/38.jpg)
38
Example Public Sub btnOne_Click (...) Handles _
btnOne.ClickDim n As Double = 4Triple(n)txtBox.Text = CStr(n)
End Sub
Sub Triple(ByVal num As Double)num = 3 * num
End Sub
Output: 4
![Page 39: Visual Basic - Chapter 5alumni.cs.ucr.edu/~mshok002/IMEfall2012/Ch05.pdf · 1 Visual Basic - Chapter 5 Mohammad Shokoohi * Adopted from An Introduction to Programming Using Visual](https://reader034.vdocuments.us/reader034/viewer/2022051803/5b00ee247f8b9a84338d6362/html5/thumbnails/39.jpg)
39
Same Example: n num Public Sub btnOne_Click (...) Handles _
btnOne.ClickDim num As Double = 4Triple(num)txtBox.Text = CStr(num)
End Sub
Sub Triple(ByVal num As Double)num = 3 * num
End Sub
Output: 4
![Page 40: Visual Basic - Chapter 5alumni.cs.ucr.edu/~mshok002/IMEfall2012/Ch05.pdf · 1 Visual Basic - Chapter 5 Mohammad Shokoohi * Adopted from An Introduction to Programming Using Visual](https://reader034.vdocuments.us/reader034/viewer/2022051803/5b00ee247f8b9a84338d6362/html5/thumbnails/40.jpg)
40
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 41: Visual Basic - Chapter 5alumni.cs.ucr.edu/~mshok002/IMEfall2012/Ch05.pdf · 1 Visual Basic - Chapter 5 Mohammad Shokoohi * Adopted from An Introduction to Programming Using Visual](https://reader034.vdocuments.us/reader034/viewer/2022051803/5b00ee247f8b9a84338d6362/html5/thumbnails/41.jpg)
41
ExamplePublic Sub btnOne_Click (...) Handles _
btnOne.ClickDim num As Double = 4Triple(num)txtBox.Text = CStr(num)
End Sub
Sub Triple(ByRef num As Double)num = 3 * num
End Sub
Output: 12
![Page 42: Visual Basic - Chapter 5alumni.cs.ucr.edu/~mshok002/IMEfall2012/Ch05.pdf · 1 Visual Basic - Chapter 5 Mohammad Shokoohi * Adopted from An Introduction to Programming Using Visual](https://reader034.vdocuments.us/reader034/viewer/2022051803/5b00ee247f8b9a84338d6362/html5/thumbnails/42.jpg)
42
Example: num n Private Sub btnOne_Click(...) Handles _
btnOne_ClickDim n As Double = 4Triple(n)txtBox.Text = CStr(n)
End Sub
Sub Triple(ByRef num As Double)num = 3 * num
End Sub
Output: 12
![Page 43: Visual Basic - Chapter 5alumni.cs.ucr.edu/~mshok002/IMEfall2012/Ch05.pdf · 1 Visual Basic - Chapter 5 Mohammad Shokoohi * Adopted from An Introduction to Programming Using Visual](https://reader034.vdocuments.us/reader034/viewer/2022051803/5b00ee247f8b9a84338d6362/html5/thumbnails/43.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
43
![Page 44: Visual Basic - Chapter 5alumni.cs.ucr.edu/~mshok002/IMEfall2012/Ch05.pdf · 1 Visual Basic - Chapter 5 Mohammad Shokoohi * Adopted from An Introduction to Programming Using Visual](https://reader034.vdocuments.us/reader034/viewer/2022051803/5b00ee247f8b9a84338d6362/html5/thumbnails/44.jpg)
Sub Procedures that Return a Single Value with ByRef
• Should be avoided• Usually can be replaced with a Function
procedure
44
![Page 45: Visual Basic - Chapter 5alumni.cs.ucr.edu/~mshok002/IMEfall2012/Ch05.pdf · 1 Visual Basic - Chapter 5 Mohammad Shokoohi * Adopted from An Introduction to Programming Using Visual](https://reader034.vdocuments.us/reader034/viewer/2022051803/5b00ee247f8b9a84338d6362/html5/thumbnails/45.jpg)
45
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 46: Visual Basic - Chapter 5alumni.cs.ucr.edu/~mshok002/IMEfall2012/Ch05.pdf · 1 Visual Basic - Chapter 5 Mohammad Shokoohi * Adopted from An Introduction to Programming Using Visual](https://reader034.vdocuments.us/reader034/viewer/2022051803/5b00ee247f8b9a84338d6362/html5/thumbnails/46.jpg)
46
Debugging• Programs with Sub procedures are
easier to debug• Each Sub procedure can be checked
individually before being placed into the program
![Page 47: Visual Basic - Chapter 5alumni.cs.ucr.edu/~mshok002/IMEfall2012/Ch05.pdf · 1 Visual Basic - Chapter 5 Mohammad Shokoohi * Adopted from An Introduction to Programming Using Visual](https://reader034.vdocuments.us/reader034/viewer/2022051803/5b00ee247f8b9a84338d6362/html5/thumbnails/47.jpg)
47
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 48: Visual Basic - Chapter 5alumni.cs.ucr.edu/~mshok002/IMEfall2012/Ch05.pdf · 1 Visual Basic - Chapter 5 Mohammad Shokoohi * Adopted from An Introduction to Programming Using Visual](https://reader034.vdocuments.us/reader034/viewer/2022051803/5b00ee247f8b9a84338d6362/html5/thumbnails/48.jpg)
48
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 49: Visual Basic - Chapter 5alumni.cs.ucr.edu/~mshok002/IMEfall2012/Ch05.pdf · 1 Visual Basic - Chapter 5 Mohammad Shokoohi * Adopted from An Introduction to Programming Using Visual](https://reader034.vdocuments.us/reader034/viewer/2022051803/5b00ee247f8b9a84338d6362/html5/thumbnails/49.jpg)
49
5.4 Modular Design• Top-Down Design • Structured Programming • Advantages of Structured Programming
![Page 50: Visual Basic - Chapter 5alumni.cs.ucr.edu/~mshok002/IMEfall2012/Ch05.pdf · 1 Visual Basic - Chapter 5 Mohammad Shokoohi * Adopted from An Introduction to Programming Using Visual](https://reader034.vdocuments.us/reader034/viewer/2022051803/5b00ee247f8b9a84338d6362/html5/thumbnails/50.jpg)
50
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 51: Visual Basic - Chapter 5alumni.cs.ucr.edu/~mshok002/IMEfall2012/Ch05.pdf · 1 Visual Basic - Chapter 5 Mohammad Shokoohi * Adopted from An Introduction to Programming Using Visual](https://reader034.vdocuments.us/reader034/viewer/2022051803/5b00ee247f8b9a84338d6362/html5/thumbnails/51.jpg)
51
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 52: Visual Basic - Chapter 5alumni.cs.ucr.edu/~mshok002/IMEfall2012/Ch05.pdf · 1 Visual Basic - Chapter 5 Mohammad Shokoohi * Adopted from An Introduction to Programming Using Visual](https://reader034.vdocuments.us/reader034/viewer/2022051803/5b00ee247f8b9a84338d6362/html5/thumbnails/52.jpg)
52
Top-Down Design Criteria1. 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 53: Visual Basic - Chapter 5alumni.cs.ucr.edu/~mshok002/IMEfall2012/Ch05.pdf · 1 Visual Basic - Chapter 5 Mohammad Shokoohi * Adopted from An Introduction to Programming Using Visual](https://reader034.vdocuments.us/reader034/viewer/2022051803/5b00ee247f8b9a84338d6362/html5/thumbnails/53.jpg)
53
Beginning of Hierarchy Chart
![Page 54: Visual Basic - Chapter 5alumni.cs.ucr.edu/~mshok002/IMEfall2012/Ch05.pdf · 1 Visual Basic - Chapter 5 Mohammad Shokoohi * Adopted from An Introduction to Programming Using Visual](https://reader034.vdocuments.us/reader034/viewer/2022051803/5b00ee247f8b9a84338d6362/html5/thumbnails/54.jpg)
54
Detailed Hierarchy Chart
![Page 55: Visual Basic - Chapter 5alumni.cs.ucr.edu/~mshok002/IMEfall2012/Ch05.pdf · 1 Visual Basic - Chapter 5 Mohammad Shokoohi * Adopted from An Introduction to Programming Using Visual](https://reader034.vdocuments.us/reader034/viewer/2022051803/5b00ee247f8b9a84338d6362/html5/thumbnails/55.jpg)
55
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 56: Visual Basic - Chapter 5alumni.cs.ucr.edu/~mshok002/IMEfall2012/Ch05.pdf · 1 Visual Basic - Chapter 5 Mohammad Shokoohi * Adopted from An Introduction to Programming Using Visual](https://reader034.vdocuments.us/reader034/viewer/2022051803/5b00ee247f8b9a84338d6362/html5/thumbnails/56.jpg)
56
Advantages of Structured Programming
Goal to create correct programs that are easier to
• write• understand• modify
![Page 57: Visual Basic - Chapter 5alumni.cs.ucr.edu/~mshok002/IMEfall2012/Ch05.pdf · 1 Visual Basic - Chapter 5 Mohammad Shokoohi * Adopted from An Introduction to Programming Using Visual](https://reader034.vdocuments.us/reader034/viewer/2022051803/5b00ee247f8b9a84338d6362/html5/thumbnails/57.jpg)
57
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 58: Visual Basic - Chapter 5alumni.cs.ucr.edu/~mshok002/IMEfall2012/Ch05.pdf · 1 Visual Basic - Chapter 5 Mohammad Shokoohi * Adopted from An Introduction to Programming Using Visual](https://reader034.vdocuments.us/reader034/viewer/2022051803/5b00ee247f8b9a84338d6362/html5/thumbnails/58.jpg)
58
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 59: Visual Basic - Chapter 5alumni.cs.ucr.edu/~mshok002/IMEfall2012/Ch05.pdf · 1 Visual Basic - Chapter 5 Mohammad Shokoohi * Adopted from An Introduction to Programming Using Visual](https://reader034.vdocuments.us/reader034/viewer/2022051803/5b00ee247f8b9a84338d6362/html5/thumbnails/59.jpg)
59
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 60: Visual Basic - Chapter 5alumni.cs.ucr.edu/~mshok002/IMEfall2012/Ch05.pdf · 1 Visual Basic - Chapter 5 Mohammad Shokoohi * Adopted from An Introduction to Programming Using Visual](https://reader034.vdocuments.us/reader034/viewer/2022051803/5b00ee247f8b9a84338d6362/html5/thumbnails/60.jpg)
60
Easy to Change• Because a structured program is self-
documenting, it can easily be deciphered by another programmer.
![Page 61: Visual Basic - Chapter 5alumni.cs.ucr.edu/~mshok002/IMEfall2012/Ch05.pdf · 1 Visual Basic - Chapter 5 Mohammad Shokoohi * Adopted from An Introduction to Programming Using Visual](https://reader034.vdocuments.us/reader034/viewer/2022051803/5b00ee247f8b9a84338d6362/html5/thumbnails/61.jpg)
61
Object-Oriented Programming• an encapsulation of data and code that
operates on the data• objects have properties, respond to
methods, and raise events.