第六章过程 武汉职业技术学晚 本章要求: 1.掌握子过程(Sub过程的定义、调用); 2.掌握函数过程( Function过程)的定义、调用; 3.掌握值传递、地址传递的传递规则。 本章重点: 1.Sub过程及 Function过程的定义与调用 2过程调用中数据的传递。 本章难点: 过程调用中数据的传递
第六章 过 程 本章要求: 1.掌握子过程(Sub过程的定义、调用); 2.掌握函数过程(Function过程)的定义、调用; 3.掌握值传递、地址传递的传递规则。 本章重点: 1.Sub过程及Function过程的定义与调用 2.过程调用中数据的传递。 本章难点: 过程调用中数据的传递
61S咖过程 武汉职业技术学晚 在vB中,的Sub子过程分为:事件过程和通用过程 6.1.1事件过程 (1)窗体事件的语法 Private sub form事件名(参数列表) End sub (2)控件事件的语法 Pri vate sub控件名_事件名(参数列表) End sub
6.1 Sub过程 在VB中,的Sub子过程分为:事件过程和通用过程 6.1.1 事件过程 (1)窗体事件的语法 Private Sub Form_事件名(参数列表) <语句组> End Sub (2)控件事件的语法 Private Sub 控件名_事件名(参数列表) <语句组> End Sub
61S咖过程 武汉职业技术学晚 6.1.2通用过程(Sub过程)的定义 子过程的定义形式如下: [ Public| Private][ Static]Sub子过程名([形参表]) LExit Sub] End Sub 说明:(1)子过程名:命名规则与变量名规则相同。 子过程名不返回值,而是通过形参与实参的传递得到结果 调用时可返回多个值
6.1 Sub过程 6.1.2 通用过程(Sub过程)的定义 子过程的定义形式如下: [Public|Private][Static] Sub 子过程名([形参表]) <语句组> [Exit Sub] <语句组> End Sub 说明:(1)子过程名:命名规则与变量名规则相同。 子过程名不返回值,而是通过形参与实参的传递得到结果, 调用时可返回多个值
61S咖过程 武汉职业技术学晚 (2)形式参数列表:形式参数通常简称“形参”,仅表示 形参的类型、个数、位置,定义时是无值的,只有在过程被 调用时,虚实参结合后才获得相应的值。 (3)过程可以无形式参数,但括号不能省。 (4)参数的定义形式: [ByVa||ByRe]变量名[()][As类型][,], Bya表示当该过程被调用时,参数是按值传递的;缺省或 ByRef表示当该过程被调用时,参数是按地址传递的
6.1 Sub过程 (2)形式参数列表:形式参数通常简称“形参” ,仅表示 形参的类型、个数、位置,定义时是无值的,只有在过程被 调用时,虚实参结合后才获得相应的值。 (3)过程可以无形式参数,但括号不能省。 (4)参数的定义形式: [ByVal|ByRef]变量名[( )][As 类型][,…], ByVal表示当该过程被调用时,参数是按值传递的;缺省或 ByRef表示当该过程被调用时,参数是按地址传递的
61S咖过程 武汉职业技术学晚 例6.1编一个交换两个整型变量值的子过程。 Private Sub Swap( X As Integer, Y As Integer) Dim temp As Integer Temp=X: XEY: YETemp End sub Private Sub command1 cl icko Dim a%. b% a=va|( i inputbox(“a=“) b=val( inputbox(“"b=“) print a=w; a, mb=, b call swap(a, b) pr int a=w; a, mb=n, b End Sub
6.1 Sub过程 例6.1 编一个交换两个整型变量值的子过程。 Private Sub Swap( X As Integer, Y As Integer) Dim temp As Integer Temp=X : X=Y : Y=Temp End Sub Private Sub command1_click() Dim a%,b% a=val(inputbox(“a=“)) b=val(inputbox(“b=“)) print “a=“;a,”b=“,b call swap(a,b) print “a=“;a,”b=“,b End Sub
61S咖过程 武汉职业技术学晚 6.1.2通用过程的建立 通过“工具”菜单中的“添加过程”命令,出现“添 加过程”对话框(见图6.1),选择过程类型(子过程、函 数、属性、事件)及作用范围(公有的 Public、私有的 Pri vate),单击确定后得到一个过程或函数定义的结构框 架(模板),如: 添加过程 Pub l ic Sub Sort() 名称0):ort 确定 类型 G子程序 取消 属性①) C函数 事件吧〕 End sub 范围 G公有的① C私有的 厂所有本地变量为静态变量(A
6.1 Sub过程 6.1.2 通用过程的建立 通过 “工具”菜单中的“添加过程”命令,出现“添 加过程”对话框(见图6.1),选择过程类型(子过程、函 数、属性、事件)及作用范围(公有的Public、私有的 Private),单击确定后得到一个过程或函数定义的结构框 架(模板),如: Public Sub Sort( ) …… End Sub
61S咖过程 武汉职业技术学晚 6.1.3过程的调用 1子过程的调用 子过程名[参数列表] 或Ga子过程名(参数列表) 说明: (1)参数列表称为实参或实元,它必须与形参保持个数相 同,位置与类型一一对应。 (2)调用时把实参值传递给对应的形参。其中值传递(形 参前有ByVa|说明)时实参的值不随形参的值变化而改变。而 地址传递时实参的值随形参值的改变而改变
6.1 Sub过程 6.1.3 过程的调用 1 子过程的调用 子过程名 [参数列表] 或 Call 子过程名(参数列表) 说明: (1)参数列表称为实参或实元,它必须与形参保持个数相 同,位置与类型一一对应。 (2)调用时把实参值传递给对应的形参。其中值传递(形 参前有ByVal说明)时实参的值不随形参的值变化而改变。而 地址传递时实参的值随形参值的改变而改变
61S咖过程 武汉职业技术学晚 (3)当参数是数组时,形参与实参在参数声明时应省略 其维数,但括号不能省。 (4)调用子过程的形式有两种,用Ga关键字时, 实参必须加圆括号括起,反之则实参之间用“,”分隔。 例:调用上面定义的Swap子过程的形式: Swap a, D Call Swap(a, b)
6.1 Sub过程 (3)当参数是数组时,形参与实参在参数声明时应省略 其维数,但括号不能省。 (4)调用子过程的形式有两种,用Call关键字时, 实参必须加圆括号括起,反之则实参之间用“ , ”分隔。 例:调用上面定义的Swap子过程的形式: Swap a,b Call Swap(a,b)
Sub过程 武汉职业技术学晚 过程调用的执行过程: Private Sub CmdOK o Private Sub Swag(x%,y%) Dim temp% Call Swap(a, b) Temp=X XE=Y Swapa.b ↓Y=Temp End sub End sub
6.1 Sub过程 过程调用的执行过程: Private Sub CmdOK() …… Call Swap(a,b) …… Swap a,b End Sub Private Sub Swap(x%,y%) Dim temp% Temp=X X=Y Y=Temp End Sub
6.2 Function过程 武汉职业技术学晚 Visua| Basic函数分为内部函数和外部函数,外部函数 是用户根据需要用 Function关键字定义的函数过程,与子 过程不同的是函数过程将返回一个值。 6.3.1函数过程( Function过程)的定义 [ Public| Private][ Static] Function函数名([] <局部变量或常数定义 <语句块 [函数名=返回值] [Exit Funct ion] <语句块 [函数名=返回值] End Funct on
6.2 Function过程 Visual Basic函数分为内部函数和外部函数,外部函数 是用户根据需要用Function关键字定义的函数过程,与子 过程不同的是函数过程将返回一个值 。 6.3.1 函数过程(Function过程)的定义 [Public|Private][Static]Function 函数名([])[As] [函数名=返回值] [Exit Function] [函数名=返回值] End Function