- 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)循环变量和初始条件; (2)循环体; (3)循环终止的条件. 复习回顾 循环变量=初始值 循环体 循环变量=循环变量的后继值 终止条件是否成立 是 否 步骤甲 步骤乙 步骤乙 步骤甲 真 假 判断条件真假 §2 算法框图的基本结构及设计---习题课 一、应用举例 例1.斐波那契数列: 0, 1, 1, 2, 3, 5, …, 从第三项起每一项等于前两项的和. 设计一个算法框图, 输出这个数列的前50项. 分析 设置50个变量: A1, A2, A3, …, A50, 表示斐波那契数列的 前50项. 如果设Ai-2, Ai-1, Ai分别表示数列中连续的三项, 则 Ai=Ai-1+Ai-2. 因为在上算法中, 反复计算和输出的步骤的步骤都是一样的, 所有可以用循环结构来描述这个算法, 循环体是: Ai=Ai-1+Ai-2 输出Ai 否 【解一】 例1.斐波那契数列: 0, 1, 1, 2, 3, 5, …, 从第三项起每一项等于前两项的和. 设计一个算法框图, 输出这个数列的前50项. 设A1, A2, ···, A50 为该数列的前50项, 且Ai-2 , Ai-1 , Ai , 为其连续三项. 由递推关系Ai = Ai-1+Ai-2知: 只要知道该数列的前两项,将它们代入递推关系即可计算出后面一项;若反复进行这样的“代入”计算和输出, 便可将该数列所有的项都输出来! 因此可用循环结构来描述这个算法. (1)确定循环变量和初始条件: 设下标 i 为循环变量,初始条件:i=3. (2)确定循环体: 算法中要反复执行的部分为:Ai = Ai-1+Ai-2 ,并输出Ai ; (3)确定循环终止的条件: 当 i >50 时,循环结束. 开始 A1=0 A2=1 Ai=Ai-1+Ai-2 i>50 结束 是 输出 A1,A2 i=3 i=i+1 输出Ai 例1.斐波那契数列: 0, 1, 1, 2, 3, 5, …, 从第三项起每一项等于前两项的和. 设计一个算法框图, 输出这个数列的前50项. 在【解一】中,除循环变量 i 外, 还设置了A1, A2, ···, A50 共50个变量! 这些变量在完成了输出操作后, 不再进行任何其他操作, 没有保留的必要, 却占据着计算机里较多的储存空间. 【解二】 为节省空间, 我们应尽可能地减少变量设置的个数! 其实在这个问题中, 除循环变量 i 外, 只要再设置A, B, C 个三变量, 来表示该数列的连续三项即可. 此时, 对变量A, B分别赋值0 ,1 输出后, 再将A+B的值赋给C, 得到该数列的前三项. 接下来将变量B的值赋给A, 变量C的值赋给B (即数列的第2、第3项,依次变为新的第1、第2项), 然后再将A+B的值赋给C, 便得到了该数列的第4项, 如此循环即可得到该数列的以后各项. 否 开始 A =0; B=1; C=A+B i >50 输出 A,B i=3 i=i+1 输出C A =B, B=C 结束 是 例2.设区间[0, 1]是方程 f(x)=0的有解区间, 画出用“二分法”求该方程在区间[0, 1]上近似解的框图, 精确度为0.01. 【分析】 算法如下: 1.确定的有解区间[a, b];( f(a) ·f(b)0 即可!) (1)若为0, 则 就是方程的解;( 问题已求解) 2.取[a, b]的中点 ; 3.计算函数 f(x)在中点处的函数值 f( ); 4.判断函数值 f( )是否为0 ? (2)若不为0, 则又分下列两种情形: ① 当 f(a)·f( ) 0 时,新有解区间为(a, ); ② 当 f(a)·f( ) 0 时,新有解区间为( , b). 5.判断新的有解区间的长度是否大于精度0.01? (1)若不是, 则此区间内的任意数, 均可作为方程的近似解. (2)若是, 则在新的有解区间的基础上, 重复上述步骤. 例2.设区间[0, 1]是方程 f(x)=0的有解区间, 画出用“二分法”求该方程在区间[0, 1]上近似解的框图, 精确度为0.01. 在上述算法中: (1)循环变量和初始条件 设两个变量a, b,分别表示有解区间的左端点和右端点, 初始值分别为0和1. (2)循环体 算法中反复执行的部分是
原创力文档


文档评论(0)