C语言课件循环结构解析.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * * * * * * * * * * * * * * * * 程序设计举例 源代码分析 图1 循环结构 #include stdio.h void main() { int m, n; for (n=1;n=5;n++) { for (m=1;m=5-n;m++) printf( ); for (m=1;m=2*n-1;m++) printf(*); printf(\n); } } * 程序设计举例 源代码分析 图2 循环结构 #include stdio.h void main() { int m, n; for (n=1;n=5;n++) { for (m=1;m=5-n;m++) printf( ); for (m=1;m=2*n-1;m++) printf(*); printf(\n); } for (n=4;n=1;n--) { for (m=1;m=5-n;m++) printf( ); for (m=1;m=2*n-1;m++) printf(*); printf(\n); } } * 程序设计举例 问题 用二分法求下面方程在区间[-10,10]上的根: 2x3-4x2+3x-6=0 二分法 循环结构 f(x)=2x3-4x2+3x-6 x1 x2 f(x1) f(x2) x 0 x0 f(x0) x0=(x1+x2)/2 近似计算 * 程序设计举例 二分法 确定有根的区间 指定一个区间[x1,x2],如果函数f(x)在此区间是单调变化的,则可以根据f(x1)和f(x2)是否同号来确定方程f(x)=0在区间[x1,x2]内是否有一个实根。 若f(x1)和f(x2)不同号,则f(x)=0在区间[x1,x2]内有一个(且只有一个)实根。 如果f(x1)和f(x2)同号,则f(x)=0在区间[x1,x2]内没有实根,要重新改变x1和x2的值。 把区间一分为二 当确定f(x)=0在区间[x1,x2]内有实根后,可采用二分法将[x1,x2]区间一分为二,再判断在哪一个小区间中有实根。 循环 如此不断进行下去,直到小区间足够小为止,即该区间的中点是f(x)=0的近似根。 循环结构 * 程序设计举例 算法设计 输入并确定有根的初始区间 输入两个数放入 x1 和 x2 ,表示区间[x1 x2] 判断区间内是否有根 若无根,则重复上面两步,直到得到合法的区间 二分法求近似根 计算当前近似根 x0 = (x1+x2)/2 把当前区间一分为二 [x1 x0]和[x0 x2] 判断根在哪一个小区间 更新当前区间[x1 x2] 判断当前近似根是否达到精度要求 否则,重复上述步骤,直到满足要求 输出近似根 循环结构 * 程序设计举例 算法设计(细化) 输入并确定有根的初始区间 输入两个数放入 x1 和 x2 ,表示区间[x1 x2] 计算 fx1 和 fx2 判断区间内是否有根,即 fx1 和 fx2 是否异号 若同号,则重复上面步骤,直到得到合法的区间 二分法求近似根 计算当前近似根 x0 = (x1+x2)/2 计算 fx0 把当前区间一分为二 [x1 x0]和[x0 x2] 判断根在哪一个小区间 更新当前区间[x1 x2],和相应的 fx# 判断当前近似根是否达到精度要求 否则,重复上述步骤,直到满足要求 输出近似根 循环结构 do-while do-while if-else process output input * 程序设计举例 源代码分析 循环结构 #include math.h void main() { float x0,x1,x2,fx0,fx1,fx2; do { printf(Input x1 , x2:); scanf(%f,%f, x1, x2); fx1 = x1*(x1*(2*x1-4)+3)-6; fx2 = x2*(x2*(2*x2-4)+3)-6; } while (fx1*fx20); do-while do-while if-else process output input * 程序设计举例 源代码分析 循环结构 do { x0=(x1+x2)/2; fx0=x0*(x0*(2*x0-4)+3)-6; if (fx0*fx10) { x2=x0; fx2=fx0; } else { x1=x0; fx1=fx0; } } while (fabs(fx0)=1e-5); printf

文档评论(0)

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

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

1亿VIP精品文档

相关文档