- 1、本文档共41页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第06章节循环程序的设计
第六章 循环结构程序设计 循环结构程序设计 void main() {char c; while((c=getchar())!=‘\n’) {if(c=‘a’c=‘v’|| if(c=‘A’c=‘V’) c+=4; if(c=‘w’c=‘z’|| if(c=‘W’c=‘Z’)c-=22; printf(“%c”,c);} } 迭代公式推导: pi=pi+t; 迭代初值:pi=0;n=1;s=1;t=1 t=s/n; 迭代次数:由t决定,当fabs(t) 10-6 迭代结束 s=-s; n=n+2; 迭代公式: sum=sum+t; n=n+2; s=-s; t=s/n; 具体分析 相一致 分子:1,-1,1,-1… 分母:1,3,5,7,... t=1,pi=0,n=1.0,s=1 当|t|?1e-6 pi=pi+t n=n+2 s=-s t=s/n pi=pi*4 输出pi 例2:打印Fibonacci数列前40个数, 数列具有如下特点:第1,2两个数为1,1从第三个数开始,该数是其前面两个数之和 F1=1 F2=1 Fn=F n-1+F n-2 (n=3) 迭代公式推导 F=F1+F2 F代表数列 从第三项起的某一项,F1代表该项的前两项,F2代表该项的前一项 迭代初值:F1=1,F2=1 迭代次数:由题目要求决定(可用标志法或计数法) 1,1,2,3,5,8…… F1=F2 F2=F 1 5 34 233 1597 10946 75025 514229 35245781 8 55 377 2584 17711 121393 832040 57028872 13 89 610 4181 28657 196418 1346269 92274653 21 144 987 6765 46368 317811 2178309102334155 求:打印Fibonacci数列前40个数(方法二) 迭代公式推导1 F=F1+F2 F1=F2 F2=F 迭代公式推导2 F1=F1+F2 F2=F1+F2 一次得到两个数,分析F1,F2的含义 思考 f1=1,f2=1 for i=1 to 20 输出f1,f2 f1=f1+f2 f2=f2+f1 例3:判断m是否是素数 算法:m%n=r n: 2~sqrt(m) 若r均不为0,则表明m是素数 循环:穷举法 例4:打印100~200之间的全部素数 循环的嵌套(自己分析) 例5:译密码(输入一行字符,输出其相应密码) 算法分析: 1、输入字符为c:(A~V或a~v) 转变为c+4; 2、输入字符为c:(V或v之后) 转变为c-22; 分析程序 例:输入China!转换为Glmre! * * 概述 我必须跑12圈 我举12次 我举24次 循环:规律性的重复,即依据特定条件重复执行 基本操作 表现在程序设计中:算法中含有循环结构 例:在屏幕上输出10个*号 printf(“**********\n”); 又例:在屏幕上输出100,1000,10000个*号 分析 输出一个*号 putchar(‘*’) 输出1000个*号 putchar(‘*’)执行1000次即可 分析 基本操作 为什么使用循环算法呢? 降低解题难度,减少程序代码,提高执行效率。 循环型程序设计解题关键 1、确定循环体 确定哪些操作需反复执行 2、确定循环执行条件 确定什么条件循环执行 例:在屏幕上输出1000个*号 1、确定循环体 putchar(’*’) 2、确定循环条件 i=1000( i初值为1) 计数器 i=i+1 (使循环趋向于结束的操作) 又如:求1+2+3+4+…..10
文档评论(0)