《VBA编程及应用基础》第3章5常用算法应用.pptx

《VBA编程及应用基础》第3章5常用算法应用.pptx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
VBA 程序控制结构循环嵌套常用算法本讲内容循环嵌套编写一个宏,用于在工作表中输出下图所示的 5 个“*”?编写一个宏,用于在工作表中输出下图所示的 5行的 5 个“*”?循环嵌套一个循环结构的循环体内又包含另一个循环结构即称为循环的嵌套。内嵌的循环中还可以再嵌套循环,这就是所谓的多重循环三种循环结构,即For…Next、For Each…Next和Do…Loop可以互相嵌套多重循环的执行次数为各层相嵌的各单个循环次数的乘积多重循环不能出现交叉结构循环嵌套实例1:编写一个宏,用于在工作表中输出下图所示的字符“*”组成的金字塔图形?循环嵌套实践1:编写一个宏,用于在工作表中输出下图所示的字符“*”组成的金字塔图形?循环嵌套实践2:编写一个宏,用于在工作表中输出下图所示的字符“*”组成的菱形图形?一个问题一个饲养场引进一只刚出生的新品种兔子,这种兔子从出生的下一个月开始,每月新生一只兔子,新生的兔子也如此繁殖。如果所有的兔子都不死去,问到第 12 个月时,该饲养场共有兔子多少只?一个问题(续)递推:T1 = 1T2 = T1 + T1T3 = T2 + T2……Tn = Tn-1 + Tn-1归纳:Tn = Tn-1 * 2 (n=2)迭代法解决兔子问题迭代法也称辗转法,是一种不断用变量的旧值递推新值的过程例如累加:Sum = Sum + i累乘:T = T * i迭代法实践3:一只小猴某天摘了若干个桃子,当天吃掉了一半多一个,第二天吃了剩下的一半多一个,以后每天都吃尚存的一半多一个,到第七天早上要吃时,猴子发现只剩下一个桃子了。请问小猴一开始摘的桃子总共有几个?迭代法实践4:已知斐波纳契(Fibonacci)数列指的是这样一个数列:1,1,2,3,5,8,13,21,……,即这个数列从第三项开始,每一项都等于前两项之和。试编写一个宏,在A1:A20区域中列出此数列的前20项?另一个问题中国古代约5-6世纪成书的《张邱建算经》中记载了一算题:今有鸡翁一,值钱伍;鸡母一,值钱三;鸡鶵三,值钱一。凡百钱买鸡百只,问鸡翁、母、鶵各几何?另一个问题(续)两个方程,三个未知量,即不定方程组,有多种解: 穷举法解决百鸡问题穷举法又称蛮力法,它的思路是列举出所有可能的情况,逐个判断哪些符合问题所设的条件,从而得到问题的解穷举法素数判断.xlsm实例素数判断.xlsm2:编写一个宏,在A2单元格随机生成一个[10, 99]之间的整数,然后判断此数是否为素数,并以“是”或“否”的结果输出在B2单元格穷举法素数又称为质数,是指在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数。换句话说,只能被1和自身整除的自然数即为素数穷举法实践5:大约在1500年前,《孙子算经》中记载了这样一个算题:今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?新建一个工作簿,试编写一个宏,在 Sheet1 工作表的 A1 单元格中输出鸡的数量,在 B1 单元格中输出兔的数量?穷举法实践6:在“最大公约数.xlsm最大公约数”工作簿中编写一个宏,先随机生成两个 [10, 99] 之间的整数并写入 A2 和 B2 单元格,然后求出这两个数的最大公约数并写入到 C2 单元格?Thank YouSub Test() Dim t As Integer, i As Integer t = 1 For i = 6 To 1 Step -1 t = (t + 1) * 2 Cells(8 - i, 2) = t Next iEnd SubSub Test() Dim x As Integer, y As Integer, z As Integer Randomize x = Int(Rnd() * 90) + 10 y = Int(Rnd() * 90) + 10 Range(A2).Value = x Range(B2).Value = y For z = x To 1 Step -1 If x Mod z = 0 And y Mod z = 0 Then Range(C2).Value = z Exit For End If Next zEnd Sub

文档评论(0)

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

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

1亿VIP精品文档

相关文档