chapter 4 general procedures
DESCRIPTION
Chapter 4 General Procedures. 4.1 Sub Procedures, Part I 4.2 Sub Procedures, Part II 4.3 Function Procedures. Building Block Analogy. How would you build a small square house using building blocks?? How would you build a castle using building blocks??. Devices for modularity. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Chapter 4 General Procedures](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814f3c550346895dbce227/html5/thumbnails/1.jpg)
Chapter 4 - VB.Net by Schneider 1
Chapter 4 General Procedures
• 4.1 Sub Procedures, Part I
• 4.2 Sub Procedures, Part II
• 4.3 Function Procedures
![Page 2: Chapter 4 General Procedures](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814f3c550346895dbce227/html5/thumbnails/2.jpg)
Chapter 4 - VB.Net by Schneider 2
Building Block Analogy
• How would you build a small square house using building blocks??
• How would you build a castle using building blocks??
![Page 3: Chapter 4 General Procedures](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814f3c550346895dbce227/html5/thumbnails/3.jpg)
Chapter 4 - VB.Net by Schneider 3
Devices for modularity
• VB.NET has two devices for breaking problems into smaller pieces:• Sub procedures• Function procedures
![Page 4: Chapter 4 General Procedures](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814f3c550346895dbce227/html5/thumbnails/4.jpg)
Chapter 4 - VB.Net by Schneider 4
Sub Procedures
• Performs one or more related tasks
• General syntax
Sub ProcedureName()
statements
End Sub
Comparison to an Event Procedure
![Page 5: Chapter 4 General Procedures](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814f3c550346895dbce227/html5/thumbnails/5.jpg)
Chapter 4 - VB.Net by Schneider 5
Calling a Sub procedure
• The statement that invokes a Sub procedure is also referred to as a call statement
• A call statement looks like this:ProcedureName()
Or Call ProcedureName()
![Page 6: Chapter 4 General Procedures](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814f3c550346895dbce227/html5/thumbnails/6.jpg)
Chapter 4 - VB.Net by Schneider 6
Sub ExplainPurpose()
ExamplelstResult.Items.Clear()ExplainPurpose()lstResult.Items.Add("")
lstResult.Items.Add("This program displays a sentence")
lstResult.Items.Add("identifying two numbers and their sum.")
End Sub
![Page 7: Chapter 4 General Procedures](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814f3c550346895dbce227/html5/thumbnails/7.jpg)
Chapter 4 - VB.Net by Schneider 7
Passing
• You can send items to a Sub procedure Sum(2, 3)
Sub Sum(num1 As Double, num2 As Double)
• In the Sum Sub procedure, 2 will be stored in num1 and 3 will be stored in num2
Think of this the same as “Dim num1 As Double”
![Page 8: Chapter 4 General Procedures](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814f3c550346895dbce227/html5/thumbnails/8.jpg)
Chapter 4 - VB.Net by Schneider 8
Parameters and ArgumentsCalculateDensity("Alaska", 627000, 591000)
Arguments – what you send to a Sub procedure
Parameters – place holders for what the sub procedure
receives
Sub CalculateDensity(ByVal state As String, _
ByVal pop As Double, _
ByVal area As Double)
Demo – SubProcedure1
![Page 9: Chapter 4 General Procedures](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814f3c550346895dbce227/html5/thumbnails/9.jpg)
Chapter 4 - VB.Net by Schneider 9
Arguments & Parameters
Notice that the argument and parameter names do not match
![Page 10: Chapter 4 General Procedures](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814f3c550346895dbce227/html5/thumbnails/10.jpg)
Chapter 4 - VB.Net by Schneider 10
Sub Procedures Calling Other Sub Procedures
Private Sub btnDisplay_Click(...) Handles btnDisplay.Click FirstPart()End Sub
Sub FirstPart() SecondPart()End Sub
Sub SecondPart() lstOutput.Items.Add(2)End Sub
![Page 11: Chapter 4 General Procedures](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814f3c550346895dbce227/html5/thumbnails/11.jpg)
Chapter 4 - VB.Net by Schneider 11
Exercises p. 139
![Page 12: Chapter 4 General Procedures](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814f3c550346895dbce227/html5/thumbnails/12.jpg)
Chapter 4 - VB.Net by Schneider 12
4.2 Sub Procedures, Part II
• Passing by Value (ByVal)
• Passing by Reference (ByRef)
• Local vs Class-Level Variables
![Page 13: Chapter 4 General Procedures](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814f3c550346895dbce227/html5/thumbnails/13.jpg)
Chapter 4 - VB.Net by Schneider 13
Passing by Value
• ByVal stands for “By Value”
• ByVal parameters retain their original value after Sub procedure terminates
• The Sub procedure creates its own variables to hold passed arguments
![Page 14: Chapter 4 General Procedures](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814f3c550346895dbce227/html5/thumbnails/14.jpg)
Chapter 4 - VB.Net by Schneider 14
Passing by Reference
• ByRef stands for "By Reference“
• ByRef parameters can be changed by the Sub procedure and retain the new value after the Sub procedure terminates
• The Sub procedure does NOT create new variables to hold the arguments
Demo – SubProcedure2
![Page 15: Chapter 4 General Procedures](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814f3c550346895dbce227/html5/thumbnails/15.jpg)
Chapter 4 - VB.Net by Schneider 15
Local Variables
• Variables declared inside a Sub or Event procedure with a Dim statement
• Space reserved in memory for that variable until the End Sub – then the variable ceases to exist
![Page 16: Chapter 4 General Procedures](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814f3c550346895dbce227/html5/thumbnails/16.jpg)
Chapter 4 - VB.Net by Schneider 16
Class-Level Variables
• Visible to every procedure in a form’s code without being passed
• Dim statements for Class-Level variables are placed outside all procedures
![Page 17: Chapter 4 General Procedures](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814f3c550346895dbce227/html5/thumbnails/17.jpg)
Chapter 4 - VB.Net by Schneider 17
Scope
• Class-level variables have class-level scope and are available to all procedures in the class
• Variables declared inside a procedure have local scope and are only available to the procedure in which they are declared
Demo - ClassLevel
![Page 18: Chapter 4 General Procedures](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814f3c550346895dbce227/html5/thumbnails/18.jpg)
Chapter 4 - VB.Net by Schneider 18
Debugging
• Programs with Sub procedures are easier to debug
• Each Sub procedure can be checked individually before being placed into the program
![Page 19: Chapter 4 General Procedures](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814f3c550346895dbce227/html5/thumbnails/19.jpg)
Chapter 4 - VB.Net by Schneider 19
Exercises p. 159In-class, #32, p. 166Homework, #30, p. 166
![Page 20: Chapter 4 General Procedures](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814f3c550346895dbce227/html5/thumbnails/20.jpg)
Chapter 4 - VB.Net by Schneider 20
User-Defined Functions
• Functions always return one value
• Syntax:Function FunctionName(ByVal var1 As Type1, _
ByVal var2 As Type2, _
…) As dataType
statement(s)
Return expression
End Function
![Page 21: Chapter 4 General Procedures](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814f3c550346895dbce227/html5/thumbnails/21.jpg)
Chapter 4 - VB.Net by Schneider 21
Some Built-In FunctionsFunction Example Input Output
Int Int(2.6) is 2 number number
Chr Chr(65) is “A” number string
Asc Asc(“Apple”) is 65 string number
FormatNumber FormatNumber(12345.628, 1) is 12,345.6
number, number string
![Page 22: Chapter 4 General Procedures](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814f3c550346895dbce227/html5/thumbnails/22.jpg)
Chapter 4 - VB.Net by Schneider 22
SamplePrivate Sub btnDetermine_Click(...)
Handles btnDetermine.Click
Dim name As String
name = txtFullName.Text
txtFirstname.Text = FirstName(name)
End Sub
Function FirstName(ByVal name As String) As String
Dim firstSpace As Integer
firstSpace = name.IndexOf(" ")
Return name.Substring(0, firstSpace)
End Function
Function call
Return statement
![Page 23: Chapter 4 General Procedures](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814f3c550346895dbce227/html5/thumbnails/23.jpg)
Chapter 4 - VB.Net by Schneider 23
Having Several ParametersPrivate Sub btnCalculate_Click(...) Handles btnCalculate.Click Dim a, b As Double a = CDbl(txtSideOne.Text) b = CDbl(txtSideTwo.Text) txtHyp.Text = CStr(Hypotenuse(a, b))End Sub
Function Hypotenuse(ByVal a As Double, _ ByVal b As Double) As Double Return Math.Sqrt(a ^ 2 + b ^ 2)End Function
Demo SubProcedure3
![Page 24: Chapter 4 General Procedures](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814f3c550346895dbce227/html5/thumbnails/24.jpg)
Chapter 4 - VB.Net by Schneider 24
User-Defined Functions Having No ParametersPrivate Sub btnDisplay_Click(...) _ Handles btnDisplay.Click txtBox.Text = Saying()End Sub
Function Saying() As String Return InputBox("What is your" _ & " favorite saying?")End Function
![Page 25: Chapter 4 General Procedures](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814f3c550346895dbce227/html5/thumbnails/25.jpg)
Chapter 4 - VB.Net by Schneider 25
Comparing Function Procedures with Sub Procedures
• Subs are accessed using a call statement
• Functions are called where you would expect to find an expression or value
• For example:• Result = functionCall• lstBox.Items.Add (functionCall)
![Page 26: Chapter 4 General Procedures](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814f3c550346895dbce227/html5/thumbnails/26.jpg)
Chapter 4 - VB.Net by Schneider 26
Functions vs. Procedures
• Both can perform similar tasks
• Both can call other subs and functions
• Use a function when you want to return one and only one value
![Page 27: Chapter 4 General Procedures](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814f3c550346895dbce227/html5/thumbnails/27.jpg)
Chapter 4 - VB.Net by Schneider 27
Collapsing a Procedure with a Region Directive
• To specify a region, precede the code to be collapsed with a line of the form
#Region "Text to be displayed in the box.“
• and follow the code with the line#End Region
Demo
![Page 28: Chapter 4 General Procedures](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814f3c550346895dbce227/html5/thumbnails/28.jpg)
Chapter 4 - VB.Net by Schneider 28
Region Directives
![Page 29: Chapter 4 General Procedures](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814f3c550346895dbce227/html5/thumbnails/29.jpg)
Chapter 4 - VB.Net by Schneider 29
Collapsed Regions
Demo Skateboard & Skateboard2
![Page 30: Chapter 4 General Procedures](https://reader036.vdocuments.us/reader036/viewer/2022062322/56814f3c550346895dbce227/html5/thumbnails/30.jpg)
Chapter 4 - VB.Net by Schneider 30
Exercises p. 176Homework p. 180, #16