- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第八章 子过程和函数过程
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 程序的递归过程: 说明: 递归处理一般用栈来实现,分递推和回归两个过程,如上图所示。 递推过程:每调用一次自身,把当前参数(形参、局部变量、返回地址等)压入栈,直到递归结束条件成立。 回归过程:然后从栈中弹出当前参数,直到栈空。 递归算法设计简单,解决同一问题,使用递归算法消耗的机时和占据的内存空间要比使用非递归算法大。 使用递归算法必须要满足以下的递归条件: (1)存在递归结束条件及结束时的值; (2)能用递归形式表示,且递归向终止条件发展。 *8.8 过程的可选参数与不定数量参数 8.8.1 可选参数(Optional) 概念: 当然用户在自定义子过程或函数时也可以定义可选参数。要指定某个形参为可选参数,这就是在形参变量前加入Optional关键字即可。 如果一个过程某个形参为可选参数,则在调用此过程时可以不提供对应于这个形参的实参, 若一个过程有多个形参,当它的一个形参被设定为可选参数,则这个参数之后面的其它参数也必是可选的,并且要用 Optional 关键字来声明。 例 可选参数的使用 Private Sub Nadres(x As String, Optional y As String) Text1.text= x Text2.text= y End Sub ? Private Sub Command1_Click () Dim strName As String Dim strAddress As String strName = 张 玉 strAddress = 杭州市学院路85号 ‘ 提供了两个参数。 Call Nadres (strName, strAddress) End Sub 说明: 1、 检测可选参数是否被省略 使用VB的内部函数IsMissing(可选参数名) 来测试过程被调用时,某个参数是否被省略。如果可选参数被省略了,则返回True,未省略,返回False。 注意:若可选参数是其它类型,则IsMissing()总是返回False,不能起到检测的作用。 例: Private Sub Nadres(x As String, Optional y As Variant) Text1.Text = x If Not IsMissing(y) Then Text2.Text = y End If End Sub 2.指定可选参数的缺省值 也可以给可选参数指定缺省值。在下例中,如果未将可选参数传递到函数过程,则返回一个缺省值。 Sub Nadres(x As String, Optional y As String= 杭州市学院路85号) Text1.text= x Text2.text= y End Sub ? Private Sub Command1_Click () Dim strName As String strName = 张 玉 未提供第二个参数。 Call Nadres (strName) End Sub 8.8.2 使用不定数量的参数 一般说来,过程调用中的参数个数应等于过程说明的参数个数。可用 ParamArray 关键字指明,过程将接受任意个数的参数。 其定义形式如下: Sub 过程名(ParamArray 数组名()) Function 函数名(ParamArray 数组名()) As 数据类型 8.9 应用举例 8.9.1 查找问题 例 使用顺序查找法,在一组数中查找某给定的数x 算法设计: 设一组数据存放在数组a(1)---a(n)中,待查找的数据放在x 中,把x与a数组中的元素从头到尾一 一进行比较查找。用变量p表示a数组元素下标,p初值为1,使x与a(p)比较,如果x不等于a(p),则使p=p+1,不断重复这个过程;一旦x等于a(p)则退出循环;另外,如果p大于数组长度,循环也应该停止,则可由以下语句来实现它。 For P=1 to n IF a(p)=x then Exit For Next 下面编写一查找函数Fin
您可能关注的文档
最近下载
- 油田开发与分析研究知识问答汇编.doc VIP
- 2025陕西公需课党的二十届三中全会精神解读与高质量发展答案.docx VIP
- NFPA 110-2019 国外国际标准.pdf VIP
- 宿舍规章制度十条.docx VIP
- (2025)第九届全国中小学“学宪法、讲宪法”活动知识竞赛题库及答案.pdf VIP
- 严明党的纪律和规矩论述摘编.docx VIP
- 福建省福州第一中学2024-2025学年高一下学期第四学段模块考试(7月期末)数学试题(含部分答案).pdf
- DB36∕T 1601-2022 猪场粪污异位发酵处理技术规程.pdf VIP
- 甘肃白银有色集团股份有限公司招聘真题.docx VIP
- 《科研基金申请撰写策略》课件.ppt VIP
文档评论(0)