- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
总结 1、while 语句的语法形式是什么? 2、do ...while语句 的语法形式是什么? 3、for 语句的语法形式是什么? 4、break、coninue 控制程序流程的区别 C语言程序设计与项目实践 清华大学出版社 学生成绩的统计分析 ———循环程序设计 项目5 回顾与作业点评 循环语句的格式 如何终止循环 回顾与作用点评 什么是循环? 循环语句的格式有哪些? 项目任务 任务5-3、穷举与迭代 1、强力破解密码 2、菲波那契数列问题 预习检查 什么是穷举? 什么是迭代? 目标 理解穷举编程 理解迭代编程 穷举3-1 在程序设计时,人们总是把复杂的不容易理解的求解过程转换为易于理解的多次重复操作。这样,一方面可以降低问题的复杂性,降低程序设计的难度,减少程序书写与输入的工作量;另一方面可以充分发挥计算机运算速度快、自动执行程序的优势。 在循环算法中,穷举与迭代是两类具有代表性的基本应用,本次任务就是如何应用循环程序的设计实现这两种基本算法。 穷举3-2 穷举是一种重复型算法。它的基本思想是,对问题的所有可能状态一一进行测试,直到找到解或全部可能的状态都测试过为止。 穷举算法设计的三个关键: (1)确定穷举变量:问题涉及哪些.因素需进行穷举; (2)确定穷举范围:问题所涉及的情况有哪些,穷举范围应该如何确定; (3)验证条件:分析出来的这些情况,需要满足什么条件,才成为问题的答案。 穷举3-3 利用穷举法,关键是如何控制循环。 控制循环有两种方法:计数法和标志法。 计数法首先要确定循环次数,然后逐次测试,完成测试次数后,循环结束。 标志法是让标志位真,循环处理相关事务,当达到某一目标后,将标志设置为假,使循环结束。 适合知道循环的总次数 适合不知道循环的 总次数的情况 穷举案例2-1 【案例5-13】编程输出乘法九九表。 分析: 这里我们知道乘法九九表的行数以及每行的列数,只要“列举”所有情况就可以了。我们利用二重循环,其程序流程图如图5-21所示。 穷举案例2-2 void main() { int i,j; for (i=1;i=9;i++) { printf(\n); //换行 for (j=1;j=i;j++) printf(%d*%d=%d ,i,j,i*j); } printf(\n); } 穷举案例 【案例5.14】求水仙花数。 分析: 所谓水仙花数是指一个三位数,其各位的立方之和等于该数。 如:153=13+53+33,所以153是水仙花数。 从三位数中找水仙花数,用循环来“穷举”所有的三位数,只要满足水仙花数的条件,输出该数就可以了。将循环控制变量的初值设为100,终值设为999,步长为1,每个循环变量分离出个位、十位、百位三个数字,如果将这三个数字的立方和相加等于循环控制变量的值,则这个循环控制变量的值就是水仙花数。其算法的流程图如下5-22所示. 穷举案例 void main() { int unit=0,ten=0,hundred=0,itmp=0,ino=0; printf(水仙花数有:\n); for(ino=100;ino1000;ino++) { unit=ino%10; //求个位数 ten=(ino/10)%10; //求十位数 hundred=(ino/100)%10; //求百位数 itmp=unit*unit*unit+ten*ten*tens+hundred*hundred*hundred; if(itmp==ino) printf(%d\t,ino); } printf(%d\n,ino); } 迭代 迭代是不断用新值取代旧值,或者由旧值递推出变量新值的过程。迭代与下面的因素有关: (1)确定迭代变量。 (2)建立迭代关系式。 (3)对迭代过程进行控制。 迭代案例6-1 【案例5-16】按年2%的增长速度,现在有13亿人,多少年后人口达到15亿。 分析: 设当年的人口数为a,人口增长率为rate,则第一年的人口数量为a*(1+rate),第二年的为a*(1+rate)*(1+rate),依次类推,第n年后其人口数量为a*(1+rate)n 。 迭代案例6-2 void main() { float rate=0.02f,a=13,b=15; int i=0; while (ab) { a=a+a*rate; i++; } printf(%d,i); } 迭代案例6-3 【案例5-1
您可能关注的文档
- 人民版七年级思品上第2,3课《我们都爱玩》第2-3框-玩中也能学、不能玩过了头.ppt
- 人教版七年级历史下册第12课 蒙古的兴起和元朝的建立 第1课时 (林美娴).ppt
- 人教版七年级历史下册第12课 蒙古的兴起和元朝的建立 第2课时 (王金娣).ppt
- 人教版七年级历史下册第12课蒙古的兴起和元朝的建立人教版七年级.ppt
- 人民版七年级思品下册思想品德:第二课情绪调味师第三框课件.ppt
- 人教版七年级美术下册第二单元《春天的畅想》(造型·表现)2.ppt
- 人民版七年级思想品德教案.doc
- 人教版七年级上册第10课《木兰诗》实用课件.ppt
- 人民版-选修1-《日本的明治维新》用课件.ppt
- 人教版七年级思想品德上册《世界因生命而精彩》课件.ppt
文档评论(0)