【vb精品源码栏目提醒】:网学会员鉴于大家对vb精品源码十分关注,论文会员在此为大家搜集整理了“4.1~4.2自定义过程 - 大学课件”一文,供大家参考学习
4.1 过程的编写与调用 内部函数是
VB事先定义好的函数,我们可以直接拿过来用,但内部函数并不能解决所有的问题,有很多地方需要我们亲自动手,编写自定义的函数或者过程。
内部函数 函数 自定义函数 过程 事件过程 子过程 自定义子过程 1例1: mn C mn m n FacN 1 For i 1 To n FacN FacN i Next iPrivate Sub command1_Click Dim m n c t i FacM 1 For i 1 To m Dim FacN FacM FacNM FacM FacM i m ValInputBox请输入m的值 Next i n ValInputBox请输入n的值 FacNM 1 If n m Then For i 1 To n - m tn FacNM FacNM i nm Next i mt End If c FacN / FacM FacNM label1.Caption Strc End Sub 2Private Sub CmdOk_Click Dim m n c t m ValInputBox请输入m的值 n ValInputBox请输入n的值 If n m Then tn Private Function FacByVal x As Long As Long nm Dim F i mt F1 End If For i 1 To x FFi Next i Fac F End Function c Facn / Facm Facn - m LblResult.Caption StrcEnd Sub 3 4.1.1 自定义函数的编写与调用——定义方式 Function 函数名形参列表 AsEnd Function:PublicPrivateStatic,其中之一,不能是Dim。
形参列表:表示在调用时传递给函数的参数的变量列表, 圆括号必须要有。
有返回类型形参列表的声明语法:ByValByRef 变量名 As 类型关键字Function与End Function相呼应。
44.1.1 自定义函数的编写与调用——调用方式调用形式如下: 函数名(实参列表)说明: (1)调用时实参和形参的数据类型、顺序、个数必须匹配。
(2)由于函数过程名返回一个值,故函数过程不能作为单独的语句加以调用,必须作为表达式或表达式的一部分,再配以其他的语法成分构成语句。
(3)其功能是求得函数的返回值。
函数过程的调用: 变量名 函数过程名参数列表 参数列表称为实参或实元,它必须与形参保持个数 相同,位置与类型一一对应。
b a S1例2:已知多边形的各条边的长度, c要计算多边形的面积。
g e S2 d S3定义:Function areax y z As Single f 调用:s1 areaa b c4.1.1 自定义函数的编写与调用——参数形参:在函数定义中的参数列表称为形参。
形参标明了在调用函数时参数的个数、位置和类型。
形参仅仅是一个符号,是要被实际数据所代替的。
形参列表就像一张计划表,规定了时间、地点、人数和人物等事项。
实参:实际参与运算的数据就是实参。
参数传递:程序在调用函数时,实参代替形参的过程。
7实例4-3显示1~1000之间的素数。
要求编制函数过程,用于判断一个整数是否是素数。
自定义过程(SUB)的引入注意Msgbox函数的用法MsgBoxprompt,button,title )比如: i MsgBox“请关机“ 0 64 0 ”关机确认如果有时候并不需要用到返回值,仅仅是一个操作过程的话,那就引入自定义过程。
比如:MsgBox “请关机“ 0 64 0 ”关机确认4.1.2 自定义子过程(SUB) Private Sub swapa b Sub 子过程名形参列表 Dim t ta abEnd Sub bt End Sub:PublicPrivateStatic,其中之一,不能是Dim。
形参列表:表示在调用时传递给子过程的参数的变量列表, 圆括号必须要有。
没有返回类型形参列表的声明语法:ByValByRef 变量名 As 类型关键字Sub与End Sub相呼应。
10 4.1.2 自定义子过程Private Sub Form_Click Dim First Second First InputBox请输入第一个数: First Second InputBox请输入第二个数: Second Print 初始值:First First Second Second Private Sub swapa b If First Second Then Dim t ta swap First Second ab End If bt Print 交换后:First First Second Second End SubEnd Sub Call swapFirst Second 114.1.2 自定义子过程——调用方式 省略Call关键字,则必须 省略参数两边的圆括号。
两种调用方式: 1 子过程名 实参列表 2 Call 子过程名 (实参列表) 使用Call关键字时,参 数两边要加圆括号。
12自定义子过程与自定义函数的异同StaticPublicPrivateSub 子过程名参数列表 局部变量或常数定义 语句 End SubStaticPublicPrivateFunction 函数过程名参数列表 As 类型 局部变量或常数定义 语句 函数名 返回值End Function自定义子过程与自定义函数的异同相同点: 内部函数 函数(1)都属于过程。
自定义函数(2)都能实现相同的功能。
过程 事件过程 子过程区别: 自定义子过程(1)子过程以关键字Sub开始,函数以关键字Function开始。
(1)子过程没有返回值,没有类型,不能在子过程体内对子过程赋值; 函数有返回值,有类型,在函数过程体内必须对函数过程名赋值。
(2)调用时,子过程是一条独立的语句; 但函数不能作为独立的语句加以调用,必须参与表达式运算。
14函数和子过程的建立 通过 “工具”菜单中的“添加过程”命令,出现“添加过程”对话框,选择过程类型(子过程、函数、属性、事件)及作用范围(公有的Public、私有的Private),单击确定后得到一个过程或函数定义的结构框架(模板),如:Public Sub Sort ……End Sub4.2 参数传递1、形式参数 是指在定义通用过程时,出现在Sub或Function语句中的变量名后面圆括号内的数,是用来接收传送给子过程的数据,形参表中的各个变量之间用逗号分隔。
2、实际参数 实际参数是指在调用Sub或Function过程时,写入子过程名或函数名后括号内的参数,其作用是将它们的数据(数值或地址)传送给Sub或Function过程与其对应的形参变量。
实参可由常量、表达式、有效的变量名、数组名(后加左、右括号,如A)组成,实参表中各参数用逗号分隔。
4.2 参数传递 参数传递是指实参传递给形参的过程。
参数传递有两种方式: 按地址传递、按数值传递 形参前加“ByRef”关键字或什么都不加的为按地址传递, 形参前加“ByVal”关键字的是按数值传递。
传址:形参得到的是实参的地址,当形参值的改变同 时也改变实参的值。
传值:形参得到的是实参的值,形参值的改变不会影 响实参的值。
17参数传递——按数值传递 传值(形参前有ByVal说明) 实参的值不随形参的值变化而改变Private Sub Command1_Click a 10 b 20 Sub Swap1ByVal x ByVal y Swap1 a b t x: x y: y tEnd Sub End Sub参数传递——按地址传递 传址(形参前有ByRef说明) 实参的值随形参值的改变而改变Private Sub Command2_Click a 10 b 20 Sub Swap2x y Swap2 a b t x: x y: y tEnd Sub End Sub例5:单击Command1后的运行结果 Private Sub Command1_Click Dim A B C A1 B2 C3 Call ssA B C Print A B C End Sub Private Sub ssByVal x as integer ByRef y z 134 xx1 yy1 zz1 End Sub 20