函数与子程序

上传人:豆浆 文档编号:37541334 上传时间:2018-04-18 格式:DOC 页数:10 大小:81KB
返回 下载 相关 举报
函数与子程序_第1页
第1页 / 共10页
函数与子程序_第2页
第2页 / 共10页
函数与子程序_第3页
第3页 / 共10页
函数与子程序_第4页
第4页 / 共10页
函数与子程序_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《函数与子程序》由会员分享,可在线阅读,更多相关《函数与子程序(10页珍藏版)》请在金锄头文库上搜索。

1、工程应用培训教材Visual Basic 6.0 程序员培训教程第四第四节节 函数与子程序函数与子程序应应用背景用背景 函数和子程序是构成程序的一个模块,往往是完成一个相对独立的功 能,这个模块定义一个入口数据接口,一个中间过程处理算法逻辑,最后给 定计算得到的出口数据接口。因此模块的基本过程为:数据接口+算法逻辑+数据接口。 将一个程序分解为多个模块过程,可以使程序更清晰,更容易调试,且 更容易多人合作开发项目,共同完成一个大项目。下图 4-1 描述了一个典型 的程序构架,这里包括全局类定义,全局变量,局部变量,全局函数,局部函 数,程序模块,全局常数,数据文件等等。图 4-1 程序构架 知

2、知识识要点要点 (1)函数的定义与调用 一般函数有返回值,故有返回值类型定义,且返回值保存在函数名变 量里。函数定义的基本方式如下: public|private|static function 过程名(参数列表) as 返回值类型end function子程序模块 1/ 局部变量子程序模块 2/ 局部变量子程序模块 3/ 局部变量子程序模块 n/ 局部变量全局变量全局常数程序入口 Sub Main()全局函数全局类定义工程应用培训教材Visual Basic 6.0 程序员培训教程在函数的定义中,过程名就是函数名,他代表一个返回值变量,而参数 列表是一组数,代表函数的入口数据,即函数过程中要

3、处理的数据。调用函 数的最基本方式为: 变量名=过程名(传递参数列表) 下面是一个给定三角形的三个边长,计算面积的函数定义:Private Function triangle(ByVal a As Single, ByVal b As Single, ByVal c As Single) As SingleDim r As Single r = (a + b + c) / 2 r = r * (r - a) * (r - b) * (r - c) If r s(j + 1) Then工程应用培训教材Visual Basic 6.0 程序员培训教程tmp = s(j)s(j) = s(j + 1

4、)s(j + 1) = tmpEnd IfNext j Next iEnd Sub 调用子过程如下:Const nn = 10 Dim s(nn) As Integer Call order(s, nn) 该函数的传递参数有两个,一个是整数数组,一个是整数。本例子就是 采用默认的传递地址方式传递整数数组,在子过程中排序后,将排序好的数 组传递回来。因此,在调用排序函数的前打印数组与调用函数后打印数组是 不一样的。 (5)递归函数 VB 允许子过程或函数内部调用自己,这样的子过程或函数成为递归 函数。递归函数在程序的设计中是一个技巧,有时候能够很巧妙的解决很多 实际问题。下面是一个简单的递归函数

5、举例:Public Function tree(s As Long) As LongIf s = 0 Thentree = 1 Elsetree = (s + 1) / tree(s - 1) End IfEnd Function 在设计递归函数必须具备递归条件,否则程序陷入死循环的逻辑错误 之中。上面这个递归函数的终止条件是 s=0。 (6)变量的作用域 在窗体和标准模块中定义的变量或过程,加 Private 作限制的,只能在当 前模块中使用。 在窗体中定义的过程,一般应该用 Private 加以限制,说明该过程或变量 是窗体级变量,只能在窗体模块中使用,在其他模块中是不可见的。工程应用培训

6、教材Visual Basic 6.0 程序员培训教程在模块中定义的过程,默认的为全局的,也可以加 Public 作说明。 局部变量为在子过程内使用或不加说明使用的变量,只能在过程中使 用,离开过程该变量失效. 窗体或模块级变量:在通用声名区域中声明的变量,可以在窗体或模块 代码中使用,private 或 Dim,成为窗体级或模块级变量,离开窗体或者模块 级变量失效。 全局变量:在模块级变量定义中,使用 Public 或者 Global,则该变量可 以在整个程序范围内任意地方使用,当在程序运行过程中改变一个全局变 量的值,那么当程序再次使用该变量时,就是已经改变的变量值拉。在一个 工程中,所有的

7、窗体对象,连接对象,类定义都是全局的,可以在程序的人一地方使用。 应应用用举举例:例: 例 1:编写一个计算三角形面积的函数,计算边长为(6,8,10)和 (15,17,28)的三角形面积,并打印在窗体上。 1建立一个标准 exe 的工程 1,在窗体上添加命令按钮 1 2在窗体代码的通用声明部分,写程序 Option Explicit 告诉 VB 下面 的程序中的变量必须声明才可使用。并编写计算三角形面积的函数如下:Option Explicit Private Function triangle(ByVal a As Single, ByVal b As Single, ByVal c As

8、 Single) As SingleDim r As Single r = (a + b + c) / 2 r = r * (r - a) * (r - b) * (r - c) If r s(j + 1) Thentmp = s(j)s(j) = s(j + 1)s(j + 1) = tmpEnd IfNext j Next iEnd Sub工程应用培训教材Visual Basic 6.0 程序员培训教程3.在窗体 Form1 的代码最顶部的通用声明部分,写程序 Option Explicit 告诉 VB 下面的程序中的变量必须声明才可使用。在窗体加载事件 中,对全局数组进行初始化,代码如下

9、:Dim i As Integer Randomize For i = 0 To nns(i) = Int(100 * Rnd) + 1 Next i 4. 编写命令按钮 Command2 的 Click 事件,程序如下:Private Sub Command2_Click() Dim i As IntegerFor i = 0 To nnPrint Tab(i * 4); s(i); Next i Print Call order(s, nn) For i = 0 To nnPrint Tab(i * 4); s(i); Next iEnd Sub 程序运行结果如下图 4-3图 4-3 程序

10、运行结果 例 3:编写一个判断整数是否为素数的函数,输入一个整数,返回一个布尔 型变量,为 true 时代表该整数为素数,为 false 时不是素数。请计算 1 到 10000 之间的所有素数之和1.在已经建立的标准 exe 工程 1 中,在窗体 form1 添加命令按钮 3 2.在窗体代码的通用声明部分,写程序 Option Explicit 告诉 VB 下面 的程序中的变量必须声明才可使用,并编写判断素数的函数如下:Public Function prime(ByVal m As Long) As BooleanDim i As Long工程应用培训教材Visual Basic 6.0 程

11、序员培训教程prime = TrueFor i = 2 To m - 1If (m Mod i) = 0 Thenprime = FalseExit ForEnd IfNext iEnd Function 3编写 Command3 的 Click 事件,调用判断素数函数,计算 1 到 10000 的所有素数之和,代码如下:Private Sub Command3_Click() Dim i As Long Dim sumprime As Longsumprime = 0 For i = 2 To 10000If prime(i) ThenPrint i;sumprime = sumprime

12、+ iEnd If Next i Print Print sumprimeEnd Sub 程序运行结果如下图 4-4图 4-4 程序运行结果 例 4:利用递归函数计算 n0 时的 f(n)=n*f(n-1),其中 n=1 时 f(1)=1。1.在已经建立的标准 exe 工程 1 中,在窗体 form1 添加命令按钮 4工程应用培训教材Visual Basic 6.0 程序员培训教程2.在窗体代码的通用声明部分,写程序 Option Explicit 告诉 VB 下面 的程序中的变量必须声明才可使用,并编写 f(n)=n*f(n-1)的递归函数如下:Private Function funn(n

13、 As Integer) As LongIf n = 0 Thenfunn = 1 Elsefunn = n * funn(n - 1) End IfEnd Function 3.编写 Command4 的 Click 程序,计算打印 f(10)的结果,代码如下:Private Sub Command4_Click()Print funn(10)End Sub 知知识扩识扩展:展:(1)内部函数 Shell 内部函数 Shell (外部程序全路径,窗体状态常数),用于执行外部的程 序,这给用户提供了很多方便之处。例如:Shell “cmd“, vbNormalFocus 表示执行启动命令 cm

14、d,并获得焦点,即 Console 控制台。 培培训练习训练习: : (1)编写函数,用于计算一个数组的平均值,该函数定义如下:Function avg( a as Single,Byval n as Integer) as Single,并请验证函数。 (2)编写一个子过程,用于查找一个数组的最大值和最小值,该子过程如下定 义:Private Sub seek( a as single,byval n as Integer,mina as Single,maxa as Single),并请验证子过程。 (3)编写随机数产生程序,x 为在 0-99 之间的随机数,请编写命令按钮点击 程序,不考虑纵向位置,在窗体上横向 x 的位置打印 A 字符,且当不断点击 时产生的位置不一样。(4)计算的值,当 x=97.2,108.6 时的值。xxxxe35 . 1)log(5)在自动化系统中经常使用十六进制数,请计算 100,800,654,8765,2,233 的 十六进制和八进制的转换值,打印到窗体上。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号