第6章 过程与函数.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第6章 过程与函数

例6.2 将第四章4.13判断一个整数是不是素数的程序改写函数过程.如果给定的是素数,则返回逻辑值True,否则返回False. 例:调用上述判定素数的函数. Const PWD = “pass” ‘预先设定密 Private Sub cmdOK_Click() Static times As Integer 定义静态变量统计验证次数 If txtInput PWD Then times = times + 1 times的初始值为0 MsgBox Invalid Password! If times = 3 Then End Else MsgBox Welcome! times = 0 End If End Sub 例6.6 分别编写计算下面级数的子过程和函数过程,并在窗体的单击事件中调用。 级数为, 要求精度为: 6.4.4 数组作过程的参数 Visual Basic允许把数组作为实参传送到过程中。数组作参数是通过传地址方式传送。在传送数组时,除遵守参数传送的一般规则外,还应注意以下几点: 1.为了把一个数组的全部元素传送给一个过程,应将数组名分别写入形参表中,并略去数组的上下界,但括号不能省略。 Private Sub Sort(a() As single) …… End Sub 其中形参“a( )”即为数组。 2.被调过程可通过Lbound和Ubound函数确定实参数组的上、下界。 3.当用数组作形参时,对应的实参必须也是数组,且类型一致。 4.实参和形参结合是按地址传递,即形参数组和实参数组共用一段内存单元。 例如:定义了实参数组b(1 to 8),给它们赋了值,调用Sort()函数过程的形式如下: Sort b( ) 或 Call Sort( b() ) 实参数组后面的括号可以省略,但为便于阅读,建议一般不要省略为好。 6.4.4 数组作过程的参数 调用时形参数组a和实参数组b虚实结合,共用一段内存单元,如图6-7所示。因此在Sort()过程中改变数组a的各元素值,也就相当于改变了实参数组b中对应的元素的值,当调用结束时,形参数组a成为无定义。 ? b(1) b(2) b(3) b(4) b(5) b(6) b(7) b(8) a(1) a(2) a(3) a(4) a(5) a(6) a(7) a(8) 参数为数组时虚实结合示意图 例6.7 改写上章例5.3的排序程序,分别将排序用子过程Sort(),产生N个随机整数用子过程GetData(),输入N个数组元素用PrData()子过程来完成。 6.4.4 数组作过程的参数 6.5 过程的嵌套和递归调用 6.5.1 过程的嵌套 在程序中调用一子过程,而在子过程中又调用另外的子过程,这种程序结构称为过程的嵌套。过程的嵌套调用执行过程如下图: 6.5.2 过程的递归调用 用自身的结构来描述自身,称递归。例如,对阶乘的定义: Visual Basic允许在一个Sub子过程和Function过程的定义内部调用自己,即递归Sub子过程和递归Function函数。 6.5 过程的嵌套和递归调用 例6.8 编求阶乘fac(n)=n! 的递归函数 Private Function fac(n As Integer) As Integer If n = 1 Then fac = 1 Else fac = n * fac(n - 1) End If End Function Private Sub Form_Click() Print “fac(4)=”;fac(4) End Sub 程序的递归过程: 6.5 过程的嵌套和递归调用 说明: 递归处理分递推和回归两个过程,如上图所示。 使用递归算法必须要满足以下的递归条件: (1)存在递归结束条件及结束时的值; (2)能用递归形式表示,且递归向终止条件发展。 6.5 过程的嵌套和递归调用 1.Visual Basic工程的组成 一个V

文档评论(0)

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

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

1亿VIP精品文档

相关文档