- 1、本文档共45页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
VB程序设计第四版第6章课案
* * * * * * * * * * * Welcome stud W C 87 IAsc=Asc(C) 92 +5 IAsc90 IAsc=IAsc-26 B 如果密钥为5 ,对取得的一个字符”W”放入变量C中, 加密的过程如下: C=Chr(IAsc) 加密思路 过程头如何设置? 思考:解密思路? * 3.查找 查找是在线性表(在此为数组)中,根据指定的关键值,找出与其值相同的元素。 查找方法: 一般有顺序查找和二分法查找。顺序查找根据查找的关键值与数组的元素逐一比较,若相同,查找成功,若找不到,则查找失败。 例6.13实现顺序查找 * 例1 阶乘函数 迭代算法 s=1; for(i=1;i=n;i++) s=s*i; 迭代过程:1!=1 2!=1!*2 3!=2!*3 … n!=(n-1)!*n 6.5 自主学习—递归和二分法 6.5.1 递归 * 是一种直接或者间接地调用自身的算法。 直接递归:在函数f中直接调用函数f f f 简接递归: f g f 递归算法: * 递归函数 ■ 为什么能计算n! 考察程序执行过程: Function fact#(n% ) If(n=1) fac=1 Else fact=n*fact(n-1) End If EndSub Function fact#(n% ) If(n=1) fac=1 Else fact=n*fact(n-1) End If EndSub Function fact#(n% ) If(n=1) fac=1 Else fact=n*fact(n-1) End If EndSub Function fact#(n% ) If(n=1) fac=1 Else fact=n*fact(n-1) End If EndSub 第一次调用开始:n为4 递归算法 Function fact#( n% ) If ( n =0 ) Then fact=1 Else fact=n*fact(n-1) End If EndSub Private Sub Command1_Click() Dim n% n = Val(Text1.Text) Print fac(n) End Sub n=3 n=2 n=1 返回fac=24 返回fac=6 返回fac=2 返回fac=1 递推 回归 例6.14 * 思考: 1.在上述fac函数中,若少了: If n = 1 Then fac = 1 即只有语句: fac = n * fac(n-1) 程序运行结果将如何? 2.若调用时n=-4,则程序运行结果? 递归的要素 1.递归边界条件:确定递归到何时终止,也称为递 归出口; 2.递归模式:向终止方向发展;大问题是如何 分解为小问题的,也称为递归体。 递归算法 Function fact#( n% ) If ( n =0 ) Then fact=1 Else fact=n*fact(n-1) End If EndSub 递归算法设计简单,但消耗的机时和占据的内存空间比非递归大 * 举例6.15 求两数的最大公约数 mn gcd(m,n)= m n=0 gcd(n , m Mod n) n0 Function mn%(m%, n%) If m Mod n = 0 Then mn = n Else mn = mn(n, m Mod n) End If End Function * 递归三角形 从1个大的三角形开始,将其三条边的中点进行连线,分成相同的4个三角形,除中间外的3个三角形重复上述过程,直到满足给定的条件底层为止。 x1,y1 x2,y2 x3,y3 u1,v1 u2
文档评论(0)