函数与过程.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六章 函数与过程 本章将全面介绍Visual Basic函数、过程、文件,其主要内容有: 函数概述 过程概述 过程之间参数的传递 过程的嵌套调用和递归调用 过程的作用域 文件的操作 【例】编写Sub过程,打印以下图形。 分析: 打印以上图形,不需要返回值,因此无需引入参数。 【例】编写Sub过程,求三个数中的最大数和最小数。 分析: 首先要设置3个参数,如x、y、z,用于接收三个原始数据,另外引入2个参数Max、Min,用于返回最大数和最小数。 使用Sub子过程、Function函数过程必须先定义,再在主过程中调用,注意调用和定义的区分。 在读顺序文件之前,必须用Open语句以Input方式打开顺序文件。对顺序文件的读取可用下列三种方法来实现。 ? 6.顺序文件的读操作 格式: Input #文件号,变量表 功能:该语句从一个已经打开的顺序文件中读出数据项,并分别赋给变量表中用逗号分隔的各个变量,变量的类型必须与文件中数据的类型一致。 说明: “变量表”由一个或多个变量组成。这些变量既可以是数值变量,也可以是字符串变量或数组元素,但不能是一个数组或对象变量。从数据文件中读出的数据赋给这些变量。 Input #语句通常与写顺序文件的Write#语句配合使用。 (1) Input #语句 3)在用Input #语句把读出的数据赋给数值变量时,将忽略前导空格、回车或换行符,把遇到的第一个非空格、非回车和换行符作为数值的开始,遇到空格、回车或换行符则认为数值结束。对于字符串数据,同样忽略开头的空格、回车或换行符。如果需要把开头带有空格的字符串赋给变量,则必须把字符串放在双引号中。 6)Input #语句与InputBox函数相似,但InputBox函数要求从键盘上输入数据,而Input #语句要求从文件中输入数据,而且执行时不显示对话框。 5)Input #语句也可用于随机文件。 (2) Line Input #语句 格式: Line Input #文件号,字符串变量 功能:该语句用于从已打开的顺序文件中读取完整一行,并把它赋给一个字符串变量。 说明: Visual Basic的Sub过程和Function过程均具有具有递归调用功能,即允许在其过程体中调用自己,将这样的子程序或函数过程称为递归子程序或递归函数。在执行递归操作时,Visual Basic把递归过程中的信息保存在堆栈中,而堆栈的容量是有限的,如果因递归调用的嵌套层次太多而超过规定的递归次数,则将产生“堆栈溢出”错误,使程序运行出错。 递归求解分为两个阶段。第一个阶段是“递推”,第二个阶段是“回推” 。 注意:虽然递归算法设计简单,程序简练,但对同一问题,使用递归算法所消耗的时间和内存空间要比非递归算法要多得多,因此,能够使用其他方法解决的问题最好不要用递归解决。 通常 Static关键字和递归的Sub 过程以及递归Function过程不在一起使用。 例6-9 用递归过程计算n!(n≥0) 由数学知识可知:负数无阶乘,0的阶乘等于1,正数n的阶乘为: n!=n(n-1)!,(n-1)!=(n-1)(n-2)!,……,1!=1*0!,0!=1,即: n!= 1 (n=0) n*(n-1) (n10) 程序代码如下: Private Sub Form_Click() Dim n As Integer Do n = Val(InputBox(请输入一个正整数)) Loop While (n 0) Print n; != fact(n) End Sub Function f(m%) As Long If m = 0 Then f = 1 Else f = m * f(m - 1) End If End Function 若运行后输入得正整数为5,则递归调用过程如图6-5所示。 图6-5 5!递归调用过程示意图 6.5 过程的作用域  6.5.1 程序模块概述 一个Visual Basic的应用程序也称为一个工程。一个工程一般由三类模块组成,即窗体模块(Form)、标准模块 (Module)和类模块(Class)。它们之间的关系如图6-6所示。模块(Module)是相对独立的程序单元。每个工程可以包含多个上述模块,所有模块共同属于一个工程。但每个模块又相对独立,用一个单独的文件保存,例如:.bas文件(标准模块)、.frm文件(窗体模块)、 .cls文件(类模块)、 .vbp文件(工程)、.vbg文件(工程组)。但在装入时,只需装入.vbp文件(单工程)

文档评论(0)

bm5044 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档