版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、大学VB.NET程序设计实践教程(第三版)项目四 过程编写1大学VB.NET程序设计实践教程(第三版)项目四 过程编写 求组合数 函数过程的定义和调用 递归函数 竞赛评分 子过程的定义和调用 参数传递 可选参数 变量、函数过程、子过程的作用域2大学VB.NET程序设计实践教程(第三版)项目四 过程编写问题提出 在前面所遇到的很多计算问题中,检验输入的是否是数字字符串的问题是必须要做的。能否象标准函数一样,用函数名就可多次调用?3大学VB.NET程序设计实践教程(第三版)项目四 过程编写问题问题分析分析 将检验输入的是否是数字字符串的问题定义为一个自定义函数过程,便可象标准函数一样,在程序中需用
2、这个功能时,只要调用这一调用这一函数函数过程过程。 4大学VB.NET程序设计实践教程(第三版)项目四 过程编写 例:数据验证。5大学VB.NET程序设计实践教程(第三版)项目四 过程编写 定义函数过程:Function datatest(ByVal x x As String) As Boolean If IsNumeric(x x) Then datatest = True Else datatest = False End IfEnd Function6大学VB.NET程序设计实践教程(第三版)项目四 过程编写单击“数据验证”按钮事件过程:Private Sub Button1_Clic
3、k(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click If datatest(TextBox1.Text) Then MsgBox(数据正确) Else MsgBox(数据不正确,请重新输入) TextBox1.Text = TextBox1.Focus() End IfEnd Sub7大学VB.NET程序设计实践教程(第三版)项目四 过程编写单击“确定”按钮事件过程:Private Sub Button2_Click(ByVal sender As System.Object,
4、ByVal e As System.EventArgs) Handles Button2.Click If datatest(TextBox2.Text) Then MsgBox(密码不能是全数字,请重新设置) TextBox2.Text = TextBox2.Focus() Else MsgBox(密码设置成功) End IfEnd Sub8大学VB.NET程序设计实践教程(第三版)项目四 过程编写单击“显示”按钮事件过程:Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
5、 Handles Button3.Click Dim i, a(9) As Integer, m As String For i = 0 To 9 m = InputBox(输入数据) If datatest(m) Then a(i) = Val(m) Label2.Text &= Str(a(i) Else MsgBox(数据不正确) End If NextEnd Sub9大学VB.NET程序设计实践教程(第三版)项目四 过程编写函数(Function)过程的定义、调用 定义函数过程 函数过程定义的格式:Private|Public FunctionPrivate|Public Functi
6、on () As As = 或Return Exit Function = 或Return End FunctionEnd Function10函数过程返回函数过程返回值的数据类型值的数据类型函函数数过过程程体体大学VB.NET程序设计实践教程(第三版)项目四 过程编写 函数过程由Function语句声明它的名称名称、参数参数以及构成其主体的代码构成其主体的代码 Private | | Public:用于指出函数过程被调用指出函数过程被调用的范围的范围: PublicPublic表示函数过程是公共(全局)过程公共(全局)过程,Public函数过程可在整个项目内被调用。 PrivatePriva
7、te函数过程是局部过程函数过程是局部过程,只能被包含其声明的窗体或模块调用。省略时,系统默认为是系统默认为是“PrivatePrivate”。共 74 页11大学VB.NET程序设计实践教程(第三版)项目四 过程编写 参数列表:指明了参数类型和个数参数类型和个数。 每个参数的格式为:ByValByVal | ByRefByRef ( ) As 在定义函数过程时,“参数列表”中的参数为形式参数形式参数(Formal parameter。形参只能是变量名或数组名变量名或数组名(数组名后加“()”),定义时没有值,参数名之间用逗号分隔。 函数过程没有参数时,函数过程名后的括号不能省函数过程名后的括号
8、不能省。 当参数为类类、数组、接口、字符串类型、数组、接口、字符串类型时,默认的参数传递方式是按地址传递按地址传递。共 74 页12表示其后的参表示其后的参数是按值传递数是按值传递还还是按地址传是按地址传递递参数参数类型类型大学VB.NET程序设计实践教程(第三版)项目四 过程编写 “As”:定义函数过程返回值的数据类型。如省略,则为Object。 函数过程直接返回一个值到调用处,因此在函数过程体中至少要对至少要对“函数过程名函数过程名”赋一次值赋一次值;或用Return (表达式)。 “Exit Function”:退出函数过程。共 74 页13大学VB.NET程序设计实践教程(第三版)项目
9、四 过程编写 定义函数过程的操作 利用命令定义函数过程利用命令定义函数过程 在代码窗口中,将光标置于所有过程之外,右击鼠标,在快捷菜单中单击“插入代码段”命令,在弹出的下拉列表中,双击“通用代码模式”选项。在弹出的列表中双击“属性和过程”命令。在弹出的第三级下拉列表中双击“定义函数”命令。由此建立了一个函数过程的模板,在其中输入函数过程代码。模板中的函数名可以更改。 在代码窗口定义函数过程在代码窗口定义函数过程 在代码窗口所有过程之外,直接输入定义函数过程的代码。14大学VB.NET程序设计实践教程(第三版)项目四 过程编写 函数过程的调用函数过程的调用和标准函数相同,格式如下: 函数过程名函
10、数过程名(参数列表参数列表) 参数列表:列表中的参数称为实际参数实际参数(Actual parameter),简称实参。实参的个数、位置、实参的个数、位置、类型与形参完全一致类型与形参完全一致。实参可以是同类型的常同类型的常量、变量和表达式。如果是数组,省略维数和量、变量和表达式。如果是数组,省略维数和括号括号 与标准函数一样,函数过程不能作为单独的语句使用,只能作为表达式或表达式中的一部分15大学VB.NET程序设计实践教程(第三版)项目四 过程编写例:定义求两个数和的函数过程,并调用。 定义求和的函数过程Function sum(ByVal x As Long, ByVal y As Lo
11、ng) As Single sum = x + yEnd FunctionPrivate Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click Label1.Text = sum(TextBox1.Text, TextBox2.Text)End SubPrivate Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button2.Click TextBox
12、1.Text = TextBox2.Text = Label1.Text = End Sub共 74 页16大学VB.NET程序设计实践教程(第三版)项目四 过程编写 例4-1-1: : 编写计算n!的函数过程。 n!=n(n-1)(n-2)21 分析:编写计算n!的函数过程, n是一个自变量。因此在函数过程中,将n作为一个参数。17大学VB.NET程序设计实践教程(第三版)项目四 过程编写 在代码窗口的窗体模块声明段中定义函数过程:18Public Class Form1 Public Function factorial (Byval n As Integer) As Double Dim
13、 t as Double , i As Integer t = 1 For i = 1 To n t = t * i Next i Return t End FunctionEnd Class大学VB.NET程序设计实践教程(第三版)项目四 过程编写19单击“计算”按钮的事件过程:Private Sub Button1_Click(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles Button1.Click Label3.Text = factorial(TextBox1.Text)End Sub 单击“清除”按钮的事
14、件过程:Private Sub Button2_Click(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles Button2.Click Textbox1.Text = Label3.Text = End Sub大学VB.NET程序设计实践教程(第三版)项目四 过程编写 提示提示: Label3.Text = factorial (TextBox1.Text)中的TextBox1.Text是实参。 下面是形参与实参的关系Label3.Text =factorial (TextBox1.Text) Public Func
15、tion factorial (ByVal n As Integer) As Double20大学VB.NET程序设计实践教程(第三版)项目四 过程编写 提示提示: 调用函数过程的程序,称为主调程序或主程序主调程序或主程序。下图说明了在主程序中调用函数过程的运行情况 主程序主程序 调用 调用点调用点 执行函数过程执行函数过程 返回主程序 21调用函数过程调用函数过程 大学VB.NET程序设计实践教程(第三版)项目四 过程编写 在例4-1-1中已定义了计算阶乘的函数过程factorial。在活动一的求组合数中,可以调用这一函数过程。 在活动一的单击“计算”按钮的事件过程中,调用factorial
16、函数过程,计算组合数。22大学VB.NET程序设计实践教程(第三版)项目四 过程编写程序代码如下:23Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click Dim m As Integer, n As Integer, c As Double m = Val(TextBox1.Text) n = Val(TextBox2.Text) c = factorial(m) / (factorial(n) * factorial(m - n) Label3
17、.Text = 共有共有 & c & 种选派方法种选派方法End Sub调用调用factorial函数过程函数过程大学VB.NET程序设计实践教程(第三版)项目四 过程编写复习P119124的内容作业:P126127实践活动2、3、524大学VB.NET程序设计实践教程(第三版)项目四 过程编写活动说明活动说明 在竞赛活动中,有十位评委为选手评分。在十位评委的评分中,去掉一个最高分和一个最低分,再计算出选手的平均分。25大学VB.NET程序设计实践教程(第三版)项目四 过程编写活动分析活动分析 在本活动中,十位评委给出分数后,要去掉最低分和最高分。简单的办法是:将十个分数排序,去掉排序后的第一
18、个和最后一个分数。 在评委给每位选手评分后,用排序程序将选手得分排序。对于多次使用的排序程序,编写一段通用程序,像函数过程一样,一次定义,多处使用。这个问题与函数过程有所不同,它最终不是得到一个值,而是完成一组数据排序的功能。26大学VB.NET程序设计实践教程(第三版)项目四 过程编写 子过程 函数过程调用的结果是得到一个函数值。 实际应用中,有时是要完成某一种功能,无须返回一个值。 在VB.NET中也可以像函数过程一样,将程序中多次重复使用的程序代码抽出来,使之成为一段独立的程序并给它一个名字。 需要使用这段程序时,只要用它的名字来调用即可,这段程序代码称为子过程子过程。27大学VB.NE
19、T程序设计实践教程(第三版)项目四 过程编写 子过程是取了名字的一段程序代码,通常完成完成一个独立的(子)功能一个独立的(子)功能。 主程序通过子过程的名来使用(调用)子过程。 子过程执行结束后,自动返回主程序的调用点,继续执行调用点后的程序代码。 子过程与函数过程子过程与函数过程的性质基本相同,区别区别是:子过程名不带值;而函数过程名带值子过程名不带值;而函数过程名带值。 28大学VB.NET程序设计实践教程(第三版)项目四 过程编写 子过程的定义 子过程定义语句的格式: Private | Public Private | Public Sub Sub () Exit SubExit Su
20、b 子过程体 End SubEnd Sub 格式中的“子过程名”、“参数列表”、“Public”、“Private”、 “Exit ”的含义与函数过程中的相同29大学VB.NET程序设计实践教程(第三版)项目四 过程编写 建立子过程的操作与函数过程相同 子过程的调用(两种格式)Call Call 子过程名子过程名()子过程名子过程名 () 说明: 调用子过程是一个独立的语句一个独立的语句。 若实参要获得子过程的返回值,则形参必须是“传址”方式(ByRef);实参只能是变量,不能是常量、表达式或控件名。30大学VB.NET程序设计实践教程(第三版)项目四 过程编写 在调用函数过程和子过程时,在调
21、用语句处由实参向形参传递数据后,执行函数过程和子过程程序。 形参是在子过程或函数过程定义中出现的变量名,实参则是在调用子过程或函数过程时传送给子过程或函数过程的常数、变量、表达式或数组 VB.NET中,实参和形参的数据传递有两种方式: 传址(ByRef)又称为引用 传值(ByVal) 区分方法是在定义的形参前加“ByRef”“ByVal”关键字31大学VB.NET程序设计实践教程(第三版)项目四 过程编写 传址方式 传址是将实参的地址传递给形参将实参的地址传递给形参:在调用语句处,将实参变量的内存地址传递给被调用过程的形参,形参用用得到的地址(实参的地址)访地址(实参的地址)访问变量问变量。如
22、果在过程体中改变形参的值在过程体中改变形参的值,实际实际上被改变的是实参的值上被改变的是实参的值。 传址方式是通过关键字ByRefByRef来定义的。在定义函数过程或子过程时,如果形参前面有关键字ByRef,表示该参数用传地址的方式传送32大学VB.NET程序设计实践教程(第三版)项目四 过程编写 例4-2-1:编写分别改变两自变量值的程序。要求:第一个变量为两个变量和 第二个变量为两个变量积 并打印两个变量的子过程。 参数传送采用“传址”方式。 单击窗体事件过程中对两个变量(实参)赋值,显示两个变量(实参)的值; 调用子过程后,再显示两个变量(实参)的值;观察实参值的变化。33大学VB.NE
23、T程序设计实践教程(第三版)项目四 过程编写 在代码窗口的窗体模块声明段中定义子过程ChangeChange: 34Sub Change(ByRef x As Integer, ByRef y As Integer) x = x + y y = x * y End Sub Private Sub Form1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Click Dim a As Integer, b As Integer a = 10 : b = 20 Label1.Text = 调用前:调用前:
24、 & a= & Str(a) & & b= & Str(b) Change(a, b) Label2.Text = 调用后:调用后: & a= & Str(a) & & b= & Str(b) End Sub大学VB.NET程序设计实践教程(第三版)项目四 过程编写 提示提示: 子过程changechange中,参数x、y采用的是传址方式传址方式。单击窗体事件过程中,调用子过程change (a、 b),将实参将实参a a、 b b的地址传给形参的地址传给形参x x、y y。 调用子过程时,用地址去访问,真正被访问的就真正被访问的就是实参是实参a a、b b。 子过程体中形参x、y的值被改变,
25、从而改变了实参a、b的值。 从程序运行的结果可以看出,实参a、b的值被改变了。35大学VB.NET程序设计实践教程(第三版)项目四 过程编写 传值方式 在调用带参数的函数过程或子过程时,将实参的将实参的值复制给函数过程(或子过程)的形参值复制给函数过程(或子过程)的形参,称为值传递(传值)。 实际上形参只是实参的一个副本,无论函数过程体中形参的值怎样变化,实参的值均不受影响。 在Visual Basic.NET中,传值方式通过在形参前加关键字ByVal或省略来实现。36大学VB.NET程序设计实践教程(第三版)项目四 过程编写 例4-2-2:将例4-2-1中参数传递改为传值方式。只要将子过程c
26、hange 中形参x、 y前的ByRef换成ByVal。 对事件过程Form_Click未作任何修改。 由此可见,传值方式没有改变实参a和b的原有值37Sub change(ByVal x As Integer, ByVal y As Integer) x = x + y y = x * yEnd Sub大学VB.NET程序设计实践教程(第三版)项目四 过程编写 注意注意: 传值方式中,形参和实参分别占有不同的内存单形参和实参分别占有不同的内存单元元,形参值的变化不会影响实参的值。 传址方式中,形参与实参占有相同的内存单元形参与实参占有相同的内存单元。当形参的值发生变化时,实参的值也随之而变。
27、 数组作为过程的参数时,可定义为传址或传值,但系统按传址方式处理系统按传址方式处理。 ByVal方式下,形参数组值改变影响实参数组,但若对形参数组使用了ReDim,则形参数组获得新的存储空间,不再影响实参数组; ByRef方式下,形参数组的所有改变均影响实参数组。38大学VB.NET程序设计实践教程(第三版)项目四 过程编写 可选参数 用关键字OptionalOptional指定可选参数 一般情况下,函数过程和子过程中形参的个数是固定的,在调用时实参的个数也是固定的。 但Visual Basic 2005中,定义函数过程和子过程时可以将一部分形参定义成可选参数;在调用时,可以给可选参数提供实参
28、,也可以不提供实参。这样增加了过程调用的灵活性。39大学VB.NET程序设计实践教程(第三版)项目四 过程编写 在定义函数过程和子过程中,要将参数定义为可选参数,在形参前加关键字在形参前加关键字OptionalOptional。 可选参数在定义时,必须注意: 一个形参定义为可选参数后,参数列表中其后定义的参数列表中其后定义的形参也必须是可选参数形参也必须是可选参数。因此,定义为可选参数的形参一般放在参数列表的后部。 定义为可选参数的形参,必须指出其类型和默类型和默认值认值。 在调用有可选参数的过程时,在可选参数处可以提供实参也可不提供实参。提供实参时,用实参的值;不提供实参时,用定义形参时的默
29、认值。40大学VB.NET程序设计实践教程(第三版)项目四 过程编写 例4-2-3:定义一个求三个数和的函数过程,将第三个参数定义为可选参数。界面设计如图4-2-4所示。41大学VB.NET程序设计实践教程(第三版)项目四 过程编写 在代码窗口的窗体模块声明段中定义函数过程Tsum :42Private function Tsum(Byval a As Integer, ByVal b as Integer, Optional ByVal c as Integer =0) As Integer Tsum=a+b+c End Function在函数过程在函数过程TsumTsum定定义时,将第三个
30、参义时,将第三个参数数c c定义为可选参数。定义为可选参数。大学VB.NET程序设计实践教程(第三版)项目四 过程编写 单击“求两个数之和”按钮的事件过程:43Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click Dim x As Integer, y As Integer x = InputBox(输入第一个数输入第一个数) y = InputBox(输入第二个数输入第二个数) Label1.Text = Str(Tsum(x, y) End S
31、ub大学VB.NET程序设计实践教程(第三版)项目四 过程编写 单击“求三个数之和”按钮的事件过程:44Private Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button2.Click Dim x As Integer, y As Integer, z As Integer x = InputBox(输入第一个数输入第一个数) y = InputBox(输入第二个数输入第二个数) z = InputBox(输入第三个数输入第三个数) Label2.Text = Str(Tsu
32、m(x, y, z)End Sub大学VB.NET程序设计实践教程(第三版)项目四 过程编写 用数组参数作为可变参数 在VB.NET中,还可以将过程中的最后一个形参定过程中的最后一个形参定义成能接受任意多个实参的形式义成能接受任意多个实参的形式,这个形参接受接受实参的个数是可变的实参的个数是可变的。 在定义过程时在形参前加关键字ParamArrayParamArray。 注意:关键字关键字ParamArrayParamArray只能用于参数列表中的只能用于参数列表中的最后一个形参前或只有一个参数的过程最后一个形参前或只有一个参数的过程,且不能不能与关键字与关键字ByRefByRef或或Opti
33、onal Optional 同时使用同时使用。 格式为:Function 函数过程名(ParamArrayParamArray 数组名() As 数据类型)Sub 过程名(ParamArrayParamArray 数组名()As 数据类型)45大学VB.NET程序设计实践教程(第三版)项目四 过程编写 例4-2-4:将例4-2-3 求三个数和的函数过程改成求任意个数和的函数过程,只要将函数过程Tsum中的形参修改为: 无论有几个参数都可用Sum函数过程,VB.NET会自动创建一个过程内的数组,如本例中的数组a。其元素的个数自动与实参个数相同。 注意:用实参来替换形参ParamArray 数组时
34、,实参实参可以是一组数据,也可是数组可以是一组数据,也可是数组。46Private function Sum(Byval ParamArray a() As Integer) As Integer Dim i As Integer For i=0 to UBound(a) Sum=Sum+a(i) Next iEnd Function大学VB.NET程序设计实践教程(第三版)项目四 过程编写函数过程和子过程的作用域 过程的作用域分为:模块级和全局级模块级和全局级 模块级过程 在窗体或标准模块内定义函数过程或子过程时,在其声明语句(Sub语句或Function语句)前加上关键字 PrivateP
35、rivate。 只能被本窗体(在本窗体内定义)或本标准模块(在本标准模块内定义)中的过程调用。47大学VB.NET程序设计实践教程(第三版)项目四 过程编写函数过程和子过程的作用域 全局级过程 在窗体或标准模块内定义函数过程或子过程时,在其声明语句(Sub语句或Function语句)前加上关键字 PublicPublic 可供该应用程序的所有窗体和所有标准模块中的过程调用。 48大学VB.NET程序设计实践教程(第三版)项目四 过程编写 将活动二中排序程序定义为一个子过程。将这段程序放在代码窗口的窗体模块声明段中定义,然后在其他的事件过程中调用。 定义子过程sortsort:49Public
36、Sub sort(ByRef a() As Integer) Dim i As Integer, j As Integer, t As Integer For i = 0 To UBound(a) - 1 For j = i + 1 To UBound(a) If a(i) a(j) Then t = a(i) a(i) = a(j) a(j) = t End If Next j Next i End Sub大学VB.NET程序设计实践教程(第三版)项目四 过程编写已将活动二排序程序定义为一个子过程。在程序中评委亮分后,需要调用该子过程,以完成活动二的要求。 在代码窗口的窗体模块声明段中声明存
37、放分数的数组c。 单击“评委亮分”按钮的事件过程:50Dim c(9) As Integer Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim i As Integer For i = 0 To 9 c(i) = Int(Rnd() * 100) 随机产生随机产生10个分数个分数 Next i Call sort(c) 调用排序子过程调用排序子过程 End Sub大学VB.NET程序设计实践教程(第三版)项目四 过程编写
38、单击“去掉最低分”按钮的事件过程: 单击“去掉最高分”按钮的事件过程:51Private Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button2.Click Label3.Text = CStr(c(0) 显示去掉的最低分显示去掉的最低分End Sub Private Sub Button3_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button3.Click Label4.Text =
39、 CStr(c(9) 显示去掉的最高分显示去掉的最高分 End Sub大学VB.NET程序设计实践教程(第三版)项目四 过程编写 单击“选手得分”按钮的事件过程:52 Private Sub Button4_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button4.Click Dim i As Integer, s As Integer For i = 1 To 8 去掉去掉c数组中第一个和最后一个元素,数组中第一个和最后一个元素,即即去掉的最低、最高分去掉的最低、最高分 s = s + c(i) Ne
40、xt i ave = s / 8 Label6.Text = CStr(ave) 显示平均分显示平均分 End Sub 大学VB.NET程序设计实践教程(第三版)项目四 过程编写 例4-2-7:分别用子过程和函数过程编写计算求前n项和的程序。公式如下:Progression = 当 = esp) t = t*x2/(n-1)*n) sum=sum+ t n = n + 2 LoopEnd Sub大学VB.NET程序设计实践教程(第三版)项目四 过程编写 例:定义为函数过程55Public Function progression2 (ByVal x!, ByVal esp#) As Doubl
41、e Dim n%, s#, t# n = 2: s = 1: t = 1 Do While (Math.Abs(t) = esp) t = t*x2/(n-1)*n) s=s + t n = n + 2 Loop Progression2 = s End Function大学VB.NET程序设计实践教程(第三版)项目四 过程编写 注意注意: 与子过程progresssion相比,函数过程少一个少一个形参形参 不是所有的子过程都可以用函数过程定义的,但所有的函数过程均可用子过程定义。56大学VB.NET程序设计实践教程(第三版)项目四 过程编写 提示提示:子过程与函数过程之间的区别: 函数过程有
42、返回值函数过程有返回值,因此函数过程要定义类型;子过程名不需要定义类型。 必须在函数过程体中给函数过程名赋值;不能在过程体中给子过程名赋值。 调用函数过程有返回值,因此象内部函数一样只能出现在表达式或语句中,不能单独出现。 子过程的调用相当于一个语句。 57大学VB.NET程序设计实践教程(第三版)项目四 过程编写 VB.NET中有三种类型模块:窗体、标准和类。VB.NET的应用程序由若干个窗体模块(Class Form)、若干个标准模块(Module)、若干个类模块(Class)组成。一个 VB.NET应用程序的组成如下图所示:58VB应用程序应用程序一个或多个一个或多个窗体模块窗体模块事件
43、过程事件过程自定义子过程自定义子过程自定义函数过程自定义函数过程一个或多个一个或多个的标准模块的标准模块自定义子过程自定义子过程自定义函数过程自定义函数过程大学VB.NET程序设计实践教程(第三版)项目四 过程编写变量的作用域 变量的有效使用范围称为变量的作用域。 按变量作用域从小到大,变量可分为块级变量、过程级变量、模块级变量、全局变量。 块级变量 语句块中声明的变量,只能在该语句块中使用。 例,在分支语句或循环语句中用Dim声明的变量,只能在声明的分支语句或循环语句中使用。59大学VB.NET程序设计实践教程(第三版)项目四 过程编写 过程级变量/局部变量 在某一过程内用Dim或Stati
44、c语句声明的变量 作用域仅在声明它的过程内 不能在过程中使用Public声明变量。例4-2-5 :过程级变量(局部变量)。输入两个整数,用两个按钮的单击事件过程分别求两个整数的和及平均数。程序运行结果如图:60 单击单击“求和求和”命令按钮后命令按钮后单击单击“求均数求均数”命令按钮后命令按钮后大学VB.NET程序设计实践教程(第三版)项目四 过程编写 “求和”按钮单击事件过程:61Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
45、 Dim x As Integer, y As Integer, sum As Integer x = Val(InputBox(输入第一个数输入第一个数) y = Val(InputBox(输入第二个数输入第二个数) sum = x + y Label1.Text = sum End Subx、y为本过程声明为本过程声明变量变量大学VB.NET程序设计实践教程(第三版)项目四 过程编写 “求均数求均数”按钮单击事件过程按钮单击事件过程62Private Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Butto
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 取环后健康教育
- 租赁厂房用电合同模板(2篇)
- 2024山林防护管理的承包合同
- 电子技术与应用课程设计
- 《社保CA培训》课件
- 电器售后网点管理方案
- 电商接单培训课程设计
- 《临床药效动力学》课件
- 外科患者一般护理常规
- 电动车务联网课程设计
- (正式版)YBT 6163-2024 预应力混凝土用耐蚀螺纹钢筋
- 孔孟老庄的人格修养智慧树知到期末考试答案2024年
- (2024年)供应链安全培训教材
- 超声引导下神经阻滞治疗的进展
- 2024年初中学业音乐科目水平考试题库及答案
- 2024中国通用技术集团总部招聘7人高频考题难、易错点模拟试题(共500题)附带答案详解
- 体检中心护理课件培训
- 《婴幼儿营养与喂养》课程标准
- 礼盒销售方案
- 茶百道整合营销方案
- 建筑工程大学生职业生涯规划
评论
0/150
提交评论