第7章VB过程和参数传递
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
VB程序设计教程
沈美莉 马银晓 陈孟建 编著
10
Function过程 第二节 Function过程
二、调用Function过程 调用 过程
Function过程的调用比较简单,可以象一个函数一样调用,其调用格式为: <过程名> = ([<实参表列>]) 【例题5.16】 编写一个求最大公约数(GCD)的函数过程,并调用该函数。 【程序代码】 (1)创建GCD函数 Function gcd(ByVal x As Integer, ByVal y As Integer) As Integer Dim reminder As Integer Do While y <> 0 reminder = x Mod y x = y y = reminder Loop gcd = x End Function
VB程序设计教程
沈美莉 马银晓 陈孟建 编著
5
Sub过程 第一节 Sub过程
二、调用sub过程 调用 过程 调用Sub过程有两种方法,一种方法是使用Call调用过程语句来调 用过程,另一种方法是将过程名作为一个语句来使用。 call调用语句 1.用call调用语句 (1)格式 Call 过程名 [(<实参表>)] (2)功能 Call语句把程序控制传递到一个Visual Basic语言的Sub过程。 Call语句调用一个过程时,如果过程本身没有参数,则<实参表> 和括号可以省略;否则,应给出相应的实际参数,并把参数放在 括号中。实际参数是传递给sub过程的变量或常数的。 例如: Call ppa(a,b)
VB程序设计教程
沈美莉 马银晓 陈孟建 编著
18
第三节 参数的传递
例如: Function fac(a,b) …… …… fac = fa End Function 调用fac函数时,可以使用以下语句来完成: Private Sub Command1_Click() …… …… Call fac(x,y) End sub 以上程序中的a和b是两个形式参数,而 x和y是两个实际参数。这样就完成了形参 与实参的结合,其关系如下图所示。
沈美莉 马银晓 陈孟建 编著
VB程序设计教程
19
第三节 参数的传递
VB程序设计教程
沈美莉 马银晓 陈孟建 编著
20
第三节 参数的传递
2.注意事项 (1)在传递时,形参表与实参表中对应变量的名字不必相同,但是它们 所包含的参数的个数必须相同。 (2)实参表中的数据类型必须与形参表中的数据类型相匹配。 (3)实参表与形参表中的各个变量,可以使用逗号相分隔。 (4)实参表中的各个参数可以是常量、变量、数组、表达式等。
一、创建Sub过程 创建 过程 定义Sub Sub过程 1.定义Sub过程 格式: [static][private][public] sub 过程名[(参数表列)] <语句组> [Exit sub] [<语句组>] End sub
VB程序设计教程
沈美莉 马银晓 陈孟建 编著
2
Sub过程 第一节 Sub过程
VB程序设计教程
沈美莉 马银晓 陈孟建 编著
12
Function过程 第二节 Function过程
【例题5.17】 输入三个整数,求出其中最大值。 【程序代码】 (1)主程序段 Private Sub Command1_Click() Dim a, b, c, q As Integer a = Val(InputBox("请输入第一个数据", "输入数据", 0)) b = Val(InputBox("请输入第二个数据", "输入数据", 0)) c = Val(InputBox("请输入第三个数据", "输入数据", 0)) q = max(a, b) ‘第一次调用max函数,求出a、b中最大值 q = max(q, c) ‘第二次调用max函数,求出 a、b、c中最大值 Print "最大值为: "; q End Sub
VB程序设计教程
沈美莉 马银晓 陈孟建 编著
16
Function过程 第二节 Function过程
返回本章首页
VB程序设计教程
沈美莉 马银晓 陈孟建 编著
17
第三节 参数的传递
一、形参与实参
形参是在Sub和 Function过程的定义中出现的变量名,实参则是在调用 Sub或 Function过程时传递给Sub或Function过程的常数、变量、表达式 或数组。 1.按位置传递 定义一个函数的目的是用来被其他程序调用,在调用函数时,大多数情 况下,主调用函数和被调用函数之间有数据传递关系,这就是有参函数, 在定义函数时函数名后面括号中的变量称为“形式参数”,在调用函数 时,函数名后面括号中的表达式称为“实际参数”。 所谓按位置传递指的是实际参数的次序与形式参数的次序相一致。
VB程序设计教程
沈美莉 马银晓 陈孟建 编著
13
Function过程 第二节 Function过程
(2)Function函数段 Function max(x, y) As Integer ‘函数max其功能是求出两个数中的最大值 Dim z As Integer If (x < y) Then z = y Else z = x End If max = z End Function 运行该程序后,即可比较三个数中的最大值,在主程序中共调用二次max()函数, 调用第一次时比较a和b两个数的大小,将大的数赋值给q变量,再调用一次时,将 比较q和c两个数的大小,返回时得到三个数中的最大值。 如果需要对四个数比较,可以增加一次调用max()的函数,若再增加数的个数,只 需要增加调用函数的次数即可。
VB程序设计教程 沈美莉 马银晓 陈孟建 编著 7
Sub过程 第一节 Sub过程
Private Sub Command1_Click() Dim a, b a = Val(InputBox("请输入圆半径", "输入数据", 1)) circul a End Sub Private Sub circul(r) Dim area area = 3.1415926 * r * r Print "圆的面积为"; area MsgBox ("圆面积为" & area) End Sub 以上程序创建一个计算圆面积的子程序,即Sub circul(r)过程,该过程 返回本章首页 的实参表为r,调用过程的方法是将过程作为一个语句,即,circul a。
VB程序设计教程 沈美莉 马银晓 陈孟建 编著 11
Function过程 第二节 Function过程
(2)调用GCD函数: Private Sub Command1_Click() Dim a As Integer, b As Integer a = Val(InputBox("输入第一个整数", "输入数据", 0)) b = Val(InputBox("输入第二个整数", "输入数据", 0)) x = gcd(a, b) Print "a="; a, "b="; b Print "最大公约数CD="; x End Sub
VB程序设计教程 沈美莉 马银晓 陈孟建 编著 3
Sub过程 第一节 Sub过程
建立sub sub过程的方法 3.建立sub过程的方法 (1)方法一 ① 双击窗体打开代码设计窗口,或利用“添加模块”功能,打开模块代码窗口。 ② 单击“工具”模块下的“添加过程”功能,系统弹出如下图所示的“添加过 程”对话框。
VB程序设计教程
沈美莉 马银晓 陈孟建 编著
15
Function过程 第二节 Function过程
(2)fac函数段 Function fac(x) Dim fa As Single Dim i As Integer fa = 1 For i = 1 To x fa = fa * i fac = fa Next i End Function 运行该程序后,显示结果如下图所示。
VB程序设计教程 沈美莉 马银晓 陈孟建 编著 6
Sub过程 第一节 Sub过程
2.把过程作为一个语句来使用 在调用sub 过程时,如果省略关键字Call,就成为调用sub过程的 第二种方式。其格式为: 过程名 [<实参表>] 与第一种方式相比,它有两点不同: (1)去掉了关键字Call (2)去掉了<实参表>中的括号。 例如: ppa a,b 【例题5.15】 编写一个计算圆面积的sub 过程,然后,调用该过程计算圆面积。
VB程序设计教程 沈美莉 马银晓 陈孟建 编著 9
Function过程 第二节 Function过程
3. 注意事项 ( 1 ) 定 义 Function 过 程 时 , 必 须 以 Function 开 始 , 以 End Function结束。在其之间是描述过程操作的语句组,可以是一个 语句,也可以是若干个语句,<语句组>中的语句也称为“函数 体”。 (2)调用Sub过程相当于执行一个语句,不返回值,可以作为独 立的基本语句调用,而调用Function过程要返回一个值,因此, 可以象内部函数一样在表达式中使用。
第七章 过程
Sub过程 一、 Sub过程 Function过程 二、 Function过程 三、参数的传递 四、可变参数与对象参数
VB程序设计教程
沈美莉 马银晓 陈孟建 编著
1
Sub过程 第一节 Sub过程
过程实际上就是其他语言中的子程序,子程序是一个相对独立的应用程 序,它可以被其他程序所调用,当然,它也能够调用其他的子程序。在 Visual Basic语言中提供了两类过程,一类是子程序过程,又称为Sub过 程,另一类是函数过程,马银晓 陈孟建 编著
14
Function过程 第二节 Function过程
【例题5.18】 (1)主程序段
Private Sub Command1_Click() Dim m, n, k, l, q, w As Single m = Val(InputBox("请输入m数据", "输入数据", 0)) n = Val(InputBox("请输入n据", "输入数据", 0)) k = fac(m) ‘第一次调用fac函数 l = fac(n) ‘第二次调用fac函数 q = fac(m - n) ‘第三次调用fac函数 w = k / (l * q) Print "组合数C “;m;n;” 的值是:"; w End Sub
VB程序设计教程
沈美莉 马银晓 陈孟建 编著
4
Sub过程 第一节 Sub过程
③ 在图中的名称文本框中输入过程名称为:ppa。 ④ 在“类型”选项中选择“子程序”单选框。 ⑤ 在“范围”选项中选择“公有的”单选框。 ⑥ 单击“确定”按钮即可建立一个Sub过程,用户可以在Sub ppa与End Sub之 间增添程序代码了。 (2)方法二 ① 单击“工程”模块下的“添加模块”功能。 ② 打开模块代码窗口,并键入过程的名字。例如:键入:sub ppa(),并按回车键, 即可建立一个Sub过程,如下图所示。
2.注意事项 (1)sub过程以sub开始,以End sub结束。 (2)参数static指的是在过程中的变量为static型。 (3)private指的是过程是私有过程,只能被本模块中的其他过程访问。 (4)public指的是过程是公有过程,可以在程序的任何地方调用它。 (5)过程名指的是过程的一个名称,是一个长度不超过255字符的变量 名。 (6)参数表列指的是,调用时传递给过程的参数的类型和个数,每个参 数的格式为: [By Val] 变量名 [()][As 数据类型] (7)Sub过程不能嵌套,也就是说,在sub过程内,不能定义sub过程或 function过程;也不能用gosub、goto或return语句进入或退出一个sub 过程,只能通过调用执行sub过程。
VB程序设计教程
沈美莉 马银晓 陈孟建 编著
8
Function过程 第二节 Function过程
一、Function过程的定义 过程的定义 1. 格式 [static][private][public] Function <过程名> [(<参数表列 >)][As <类型>] <语句组> [<过程名>] = <表达式>] [Exit Function] [<语句组>] End Function 2. 功能 定义一个Function过程。