《vb第2版》课件第8章过程.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《vb第2版》课件第8章过程.ppt》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- vb第2版 vb 课件 过程
- 资源描述:
-
1、第八章第八章 过程过程8.1过程概述过程概述8.2子程序过程子程序过程(Sub过程过程)8.3函数函数(Fountion过程过程)8.4过程之间的参数传递过程之间的参数传递8.5过程和变量的作用域过程和变量的作用域8.1过程概述过程概述过程:过程:一个实际应用程序可分解成多个具有独立一个实际应用程序可分解成多个具有独立功能的逻辑程序段来实现程序的完整功能,这些功能的逻辑程序段来实现程序的完整功能,这些逻辑程序段被称为过程。逻辑程序段被称为过程。Visual Basic中的过程:内部过程和外部过程。中的过程:内部过程和外部过程。内部过程内部过程是由系统提供的程序段,用户在编写程是由系统提供的程序
2、段,用户在编写程序时,可以使用内部过程名直接调用内部过程。序时,可以使用内部过程名直接调用内部过程。外部过程外部过程是用户根据需要自己定义编写的程序段。是用户根据需要自己定义编写的程序段。外部过程可分为外部过程可分为事件过程事件过程和和通用过程通用过程。事件过程事件过程附加在窗体或控件上,是当某事件发生附加在窗体或控件上,是当某事件发生时,对象对该事件做出响应的程序代码。时,对象对该事件做出响应的程序代码。通用过程:通用过程:在实际编程中,有时会有多个不同的在实际编程中,有时会有多个不同的事件过程需要使用同一段程序代码。这时把这段事件过程需要使用同一段程序代码。这时把这段代码独立出来,编写成为
3、一个共用的过程,即代码独立出来,编写成为一个共用的过程,即通通用过程用过程,它可供其他事件过程调用。,它可供其他事件过程调用。通用过程根据是否返回值,可分为通用过程根据是否返回值,可分为子程序过程子程序过程(Sub过程)和过程)和函数过程函数过程(Function过程)。过程)。子程序过程不返回值,函数过程返回函数值。子程序过程不返回值,函数过程返回函数值。定义子程序过程有两种方法:一种是使用定义子程序过程有两种方法:一种是使用“添加过添加过程程”对话框,另一种是直接在代码窗口中输入过程对话框,另一种是直接在代码窗口中输入过程代码。代码。8.2 子程序过程(子程序过程(Sub过程)过程)1使用
4、使用“添加过添加过程程”对话框对话框创建创建8.2 子程序过程(子程序过程(Sub过程)过程)2直接在代码窗口中定义直接在代码窗口中定义在窗体或标准模块的代码窗口中,按以下格式输入在窗体或标准模块的代码窗口中,按以下格式输入相应的代码:相应的代码:Public|Private Static Sub(形参列表形参列表)语句块语句块1Exit Sub语句块语句块2End Sub8.2 子程序过程(子程序过程(Sub过程)过程)说明:说明:Private:表示:表示Sub过程是一个私有过程,只限于本模过程是一个私有过程,只限于本模块内的其他过程调用。块内的其他过程调用。Public:表示:表示Sub
5、过程是一个公有过程,可在整个应用过程是一个公有过程,可在整个应用程序范围调用。程序范围调用。Static:表示:表示Sub过程中的所有局部变量的存储空间只过程中的所有局部变量的存储空间只分配一次,且这些变量的值在整个程序运行期间都存在。分配一次,且这些变量的值在整个程序运行期间都存在。过程名:用户为过程名:用户为Sub过程起的名字。命名规则与变量命过程起的名字。命名规则与变量命名规则相同。同一模块内,名规则相同。同一模块内,Sub过程不能和过程不能和Function过程同名。过程同名。形参列表:类似于变量声明,它指明了从调用过形参列表:类似于变量声明,它指明了从调用过程传递给过程的参量个数、类
6、型和位置,形参可程传递给过程的参量个数、类型和位置,形参可以是变量名或数组名。各参数之间用以是变量名或数组名。各参数之间用“,”隔开。隔开。参数定义格式:参数定义格式:ByVal|ByRef 变量名变量名()As 数数据类型据类型 ,ByVal表示该过程被调用时,参数是按值传递的;表示该过程被调用时,参数是按值传递的;默认或默认或ByRef表示该过程被调用时,参数是按地表示该过程被调用时,参数是按地址传递的。址传递的。Exit Sub:表示退出:表示退出Sub过程,常常是与选择结过程,常常是与选择结构联用,即当满足一定条件时,退出构联用,即当满足一定条件时,退出Sub过程。过程。8.2 子程序
7、过程(子程序过程(Sub过程)过程)例例【8-1】编一个交换两个整型变量值的编一个交换两个整型变量值的Sub过程。过程。Private Sub swap(a As Integer,b As Integer)Dim t As Integert=a:a=b:b=tEnd Sub 8.2 子程序过程(子程序过程(Sub过程)过程)子程序过程的调用有两种方法。子程序过程的调用有两种方法。1使用使用Call语句语句Call 窗体名窗体名|模块名模块名.(实参列表实参列表)如:如:Call swap(m,n)或或 Call Form1.swap(m,n)2直接使用过程名直接使用过程名窗体名窗体名|模块名模
8、块名.如:如:swap m,n 或或 Form1.swap m,n说明:说明:直接使用过程名调用时必须直接使用过程名调用时必须省略参数两边省略参数两边的括号的括号。使用。使用Call语句调用时,没有参数,()也语句调用时,没有参数,()也能省,否则参数必须在括号内。在调用时实参和能省,否则参数必须在括号内。在调用时实参和形参的数据类型、顺序、个数必须匹配。形参的数据类型、顺序、个数必须匹配。8.2 子程序过程(子程序过程(Sub过程)过程)例例【8-2】调用前面的交换两个整数的调用前面的交换两个整数的Sub过程。过程。Private Sub Form_Click()Dim first As I
9、nteger,second As Integerfirst=Val(InputBox(请输入第一个整数请输入第一个整数)second=Val(InputBox(请输入第二个整数请输入第二个整数)Print 交换前交换前first=;first,second=;secondswap first,secondPrint 交换后交换后first=;first,second=;secondEnd SubPrivate Sub swap(a As Integer,b As Integer)Dim t As Integert=a:a=b:b=tEnd Sub形参形参实参实参8.2 子程序过程(子程序过程(
10、Sub过程)过程)例例【8-3】编写一个程序,在文本框(编写一个程序,在文本框(Text1)中输入)中输入一个正整数,当单击命令按钮(一个正整数,当单击命令按钮(Command1)时,)时,调用调用Sub过程输出其阶乘。过程输出其阶乘。8.2 子程序过程(子程序过程(Sub过程)过程)创建步骤:创建步骤:(1)新建一个工程,在窗体中添)新建一个工程,在窗体中添加两个标签,一个文本框和一个加两个标签,一个文本框和一个命令按钮,并按图命令按钮,并按图8-3设置它们的设置它们的属性。属性。(2)在代码窗口输入下列代码:)在代码窗口输入下列代码:Private Sub Command1_Click()
11、Dim ji As Long,a As Integera=Val(Text1.Text)fact a,jiLabel2.Caption=其阶乘为:其阶乘为:&jiEnd SubPrivate Sub fact(n As Integer,f As Long)Dim i As Integerf=1For i=1 To nf=f*iNextEnd Sub 8.3 函数(函数(Function过程)过程)函数过程是用户根据需要用函数过程是用户根据需要用Function关键字定义的过程,与关键字定义的过程,与Sub过程不同的过程不同的是函数过程返回一个值。是函数过程返回一个值。格式:格式:Public|
12、Private Static Function(形参列表形参列表)As 语句块语句块1函数名函数名=返回值返回值Exit Function语句块语句块2函数名函数名=返回值返回值End Function说明:说明:As:是指函数:是指函数的返回值类型,若省略,的返回值类型,若省略,则函数返回则函数返回Variant类类型。型。Exit Function:常常:常常是与选择结构联用,即是与选择结构联用,即当满足一定条件时,退当满足一定条件时,退出出Function过程。过程。在函数体内,函数名可在函数体内,函数名可以当变量名使用,函数以当变量名使用,函数值通过函数名返回,因值通过函数名返回,因此
13、在此在函数过程中至少要函数过程中至少要对函数名赋值一次对函数名赋值一次。8.3 函数(函数(Function过程)过程)例例【8-4】编写一个函数过程,当调用该过编写一个函数过程,当调用该过程时,能求出一个正整数的阶乘值。程时,能求出一个正整数的阶乘值。Private Function fact(n As Integer)As LongDim i As Integerf=1For i=1 To nf=f*iNextfact=fEnd Function 8.3 函数(函数(Function过程)过程)例例【8-5】利用例利用例【8-4】的函数过程,编写一个与例的函数过程,编写一个与例【8-3】一
14、一样功能的程序。在文本框(样功能的程序。在文本框(Text1)中输入一个正整数,当单击)中输入一个正整数,当单击命令按钮(命令按钮(Command1)时,调用例)时,调用例【8-4】函数过程输出其阶函数过程输出其阶乘。乘。编写程序代码编写程序代码Private Sub Command1_Click()Dim ji As Long,a As Integera=Val(Text1.Text)ji=fact(a)Label2.Caption=其阶乘为:其阶乘为:&jiEnd Sub例例【8-5】Private Function fact(n As Integer)As LongDim i As In
15、tegerf=1For i=1 To nf=f*iNextfact=fEnd Function 8.3 函数(函数(Function过程)过程)例例【8-6】编写一个求两个数中较大数的函数过程。然后调用该编写一个求两个数中较大数的函数过程。然后调用该函数过程求任意两个数中较大的数。函数过程求任意两个数中较大的数。Private Function max(a As Single,b As Single)As Singlemax=IIf(a=b,a,b)End FunctionPrivate Sub Command1_Click()Dim m As Single,n As Singlem=Text
16、1.Text:n=Text2.TextLabel3.Caption=大数为:大数为:&max(m,n)End Sub 8.4过程之间的参数传递过程之间的参数传递1形式参数形式参数形式参数简称形式参数简称形参形参,是指在定义通用过程时,出现在,是指在定义通用过程时,出现在Sub或或Function语句中过程名后面圆括号内的变量名,是用语句中过程名后面圆括号内的变量名,是用来接收传送给过程的数据,形参列表中的各形式参数之间来接收传送给过程的数据,形参列表中的各形式参数之间用逗号分隔。用逗号分隔。2实际参数实际参数实际参数简称实际参数简称实参实参,是指在调用,是指在调用Sub或或Function过程
17、时,过程时,写入过程名后面圆括号内的参数。其作用是将它们的数据写入过程名后面圆括号内的参数。其作用是将它们的数据(数值或地址)传送给(数值或地址)传送给Sub或或Function过程与其对应的形过程与其对应的形参变量。实参列表可由常量、表达式、有效的变量名、数参变量。实参列表可由常量、表达式、有效的变量名、数组名(后加左右圆括号,如组名(后加左右圆括号,如Arr())组成,实参表中的各)组成,实参表中的各实际参数之间用逗号分隔。实际参数之间用逗号分隔。8.4过程之间的参数传递过程之间的参数传递在在过程调用过程调用时必须先完成时必须先完成“实参列表实参列表”与与“形参列表形参列表”的结合,即把实
18、参传递给形参,参数的传递是按实参的结合,即把实参传递给形参,参数的传递是按实参与形参对应位置进行的,不是按同名的原则进行的,与形参对应位置进行的,不是按同名的原则进行的,这就要求实参与形参在类型、个数、位置上要一一对这就要求实参与形参在类型、个数、位置上要一一对应;然后按实参执行调用的过程。应;然后按实参执行调用的过程。8.4过程之间的参数传递过程之间的参数传递在调用过程时,参数的传递有两种方式:按地址传递在调用过程时,参数的传递有两种方式:按地址传递(即传址)和按值传递(传值),其中(即传址)和按值传递(传值),其中按地址传递方按地址传递方式是默认方式式是默认方式。按值传递按值传递(传值):
19、当定义过程时在(传值):当定义过程时在形参前加上形参前加上ByVal关键字或在传递实参时实参为常量或表达式。关键字或在传递实参时实参为常量或表达式。按地址传递按地址传递(即传址):当定义过程时在(即传址):当定义过程时在形参前加上形参前加上ByRef关键字时参数的传递方式就是传址方式或缺省关键字时参数的传递方式就是传址方式或缺省没有关键字没有关键字“ByVal”。VB6.0中参数的传递方式默认中参数的传递方式默认为传址方式。为传址方式。1传值传值 将实参的数值传递给过程中对应的形参变量。将实参的数值传递给过程中对应的形参变量。按值传递参数时,按值传递参数时,Visual Basic给传递的形参
20、分给传递的形参分配一个临时的内存单元,将实参的值传递到这配一个临时的内存单元,将实参的值传递到这个临时单元中去。个临时单元中去。按值传递是单向的按值传递是单向的。如果在被调用过程中改变。如果在被调用过程中改变了形参变量的值,则只是变动了临时单元的值,了形参变量的值,则只是变动了临时单元的值,不会影响实参变量的值。当被调过程结束返回不会影响实参变量的值。当被调过程结束返回调用过程时,调用过程时,Visual Basic释放形参变量的临时释放形参变量的临时单元,实参变量的值不变。单元,实参变量的值不变。8.4过程之间的参数传递过程之间的参数传递2传址(默认方式)传址(默认方式)是一种将实参的地址传
21、递给过程中对应形参变是一种将实参的地址传递给过程中对应形参变量的方式,形参变量和实参变量具有相同的地量的方式,形参变量和实参变量具有相同的地址,址,即形参、实参共用一存储单元即形参、实参共用一存储单元。按地址传递是双向的按地址传递是双向的。如果在被调用过程中改。如果在被调用过程中改变了形参变量的值,当被调过程结束返回调用变了形参变量的值,当被调过程结束返回调用过程时,实参变量的值也改变。过程时,实参变量的值也改变。实参的使用形式决定数据的传递方式。实参的使用形式决定数据的传递方式。在过程调用时,如果实参是在过程调用时,如果实参是常量常量或或表达式表达式,无论过,无论过程定义时使用按地址传递(即
22、传址)还是按值传递程定义时使用按地址传递(即传址)还是按值传递(即传值),此时都是(即传值),此时都是按值传递方式按值传递方式将常量或表达式将常量或表达式计算的值传递给形参变量。计算的值传递给形参变量。如果在定义时是按地址传递(即传址),但调用时如果在定义时是按地址传递(即传址),但调用时想使实参按值传递,可以把想使实参按值传递,可以把实参变量加上圆括号,将实参变量加上圆括号,将其转换为表达式其转换为表达式。8.4过程之间的参数传递过程之间的参数传递例例【8-7】传址和传值方式的比较。编写交换两个数的过程程序传址和传值方式的比较。编写交换两个数的过程程序代码代码Swap1和和Swap2。Swa
23、p1按地址传递参数,按地址传递参数,Swap2按值传按值传递参数。运行程序,观察它们的区别。递参数。运行程序,观察它们的区别。创建过程:创建过程:(1)新建一个工程,在)新建一个工程,在窗体中添加两个命令按钮,窗体中添加两个命令按钮,并按图设置有关的对象属并按图设置有关的对象属性。性。8.4过程之间的参数传递过程之间的参数传递(2)编写两个过程)编写两个过程Swap1和和Swap2:Sub Swap1(x As Integer,y As Integer)Dim t As Integert=x:x=y:y=tEnd SubSub Swap2(ByVal x As Integer,ByVal y
24、As Integer)Dim t As Integert=x:x=y:y=tEnd Sub(3)编写两个命令按钮单击事件过程如下:)编写两个命令按钮单击事件过程如下:Private Sub Command1_Click()Print 按地址传递按地址传递Dim a As Integer,b As Integera=10:b=20Print 两数交换前:两数交换前:a=;a;b=;bSwap1 a,bPrint 两数交换后:两数交换后:a=;a;b=;bEnd SubPrivate Sub Command2_Click()Print 按值传递按值传递Dim a As Integer,b As I
25、ntegera=10:b=20Print 两数交换前:两数交换前:a=;a;b=;bSwap2 a,bPrint 两数交换后:两数交换后:a=;a;b=;bEnd Sub 8.4过程之间的参数传递过程之间的参数传递实参实参 a b 实参实参 a b形参形参 x y 形参形参 x y 改变前改变前 改变后改变后 图图8-10 按地址传递参数示意图按地址传递参数示意图 10202010实参实参 a b 实参实参 a b 形参形参 x y 形参形参 x y 改变前改变前 改变后改变后 图图8-11 按数值传递参数示意图按数值传递参数示意图1020201010201020形参、实参一块变形参、实参一块
展开阅读全文