自定义函数及递归算法.ppt

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

自定义函数 及 递归算法 自定义函数 用户自己编写的一段具有独立功能的子程序,可在主程序中直接调用。 语句格式及调用方法 语句格式 [Public|Private] Function 函数名称 ([参数列表]) [As 类型] 局部变量、变量定义 语句组 函数名称=返回值 End Function 如何在主程序中调用 变量=函数名称(参数) 自定义求 最大值函数 Function Max(a as Integer,b as Integer) as Integer If ab then Max=a Else Max=b End if End Function Private Sub Command1_Click() n=Max(1234,433) Print n End Sub 使用递归的条件 什么是递归算法 —— 利用函数反复调用本身的算法。 递归算法 给定N(N=1),用自定义函数的方法求 S(n)=1+2+3+4+……+n的值 斐波那契数列 一列数的规则如下: 1、1、2、3、5、8、13、21、34......?求第30位数是多少, 用递归算法实现。 * * VB内部函数:ABS()、INT()、RND…… R=ABS(n) If n=0 then R=n Else R=-n End if 如果有需要,用户可以自定义一个函数MAX(),用于求三个数中最大的那个数 在主程序中可直接通过语句: S=MAX(a,b,c) 使S获得a,b,c三个数中最大数的值 说明:“[]”中的内容为选写项;“”为必写项;“|”两侧为单选项,即用了“Public”就不能用“Private” 用户自定义函数 子程序 主程序调用 [Public|Private] Function 函数名称 ([参数列表]) [As 类型] 局部变量、变量定义 语句组 函数名称=返回值 End Function 变量=函数名称(参数) 实参 形参 function third(a as integer,b as integer) third = sqr(a*a+b*b) end function Function s(n as integer) s=s(n-1)+2 End function 自定义函数中调用VB内部函数 自定义函数中调用本身 使用递归的两个条件: 2、有结束条件。 1、在计算过程中,前后数据有一定的递推关系; 1, 2, 4, 7, 11, 16, 22, 29, 37…….. 递推关系:S(n) 和 S(n-1)的递推关系? S(n)=S(n-1)+n S(5)=s(4)+5 S(4)=s(3)+4 S(3)=s(2)+3 S(2)=s(1)+2 S(1)=1 N=1时, s值为1 N1时, s=s(n-1)+n Public Function S(n As Integer) As Integer If n = 1 Then S = 1 Else S = n + S(n - 1) End If End Function Private Sub Command1_Click() Dim Sum As Integer Sum = S(5) Print Sum= CStr(Sum) End Sub 分析:前两项为1,从第三项开始,S(n)=S(n-1)+S(n-2) *

文档评论(0)

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

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

1亿VIP精品文档

相关文档