ok-第二章基本控制结构程序设计.ppt

  1. 1、本文档共118页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
循环的举例 嵌套的循环 break语句的语法 break;语句的使用练习 continue和break的区别 * break练习 * break和continue练习 【例2.22】 输入一个小于1的数x,求sinx的近似值,要求误差小于0.0001。近似计算公式如下: 分析:这个近似计算可以看作一个累加过程,关键在于累加项数的确定。该求近似值的奇次多项式各项顺序改变符号,若取前n项累加和作为sin(x)的近似值,则第n+1项的绝对值就是误差限。因此可以这样考虑,若公式中第一项作为累加和的初值,则第二项就是误差,如果误差不满足要求,则将该项累加到累加和上,进而用该项推出第三项,第三项又是新的累加和的误差。经过这样累加、递推,直至满足要求为止。如果用item保存第n项,则推出第n+1项的方法为: item?item*x*x/((2*n)*(2*n+1)) 2.6 常用算法的应用实例【例2.22】 程序: int main(){ const double epsilon=0.0001; //用epsilon保存误差 double x,sinx,item; int n=3,sign=-1; //sign保存符号 coutinput x:; cinx; sinx=x;item=x*x*x/6; //第一项作为初值,第二项为误差项 while(itemepsilon){ sinx=sinx+item*sign; //将当前项累加进结果,注意符号作为因子 item=item*x*x/((2*n)*(2*n+1)); //推算新的误差项 sign=-sign; //注意符号的变换 n++; } coutsin(x)=sinxendl; return 0; } 2.6 常用算法的应用实例【例2.23】 【例2.23】 输入一个8位二进制数,将其转换为十进制数输出。 分析:二进制转换为十进制只要将每位二进制数乘以该位的权然后相加。实际上属于多项式求和问题: 直接法 *【例2.24】 口袋中有红、黄、蓝、白、黑五种颜色的球若干个,每次从口袋中取三个不同颜色的球,统计并输出所有的取法。 分析: 每个球的颜色都是这五种颜色之一,因此可以使用枚举类型来定义球的颜色。 假设所取三个球的颜色分别为i, j, k, 每个量都有5种取值,其中i≠j≠k就是满足要求的取法,因此用枚举算法(穷举法)可以解决。 2.7.2 枚举类型的变量的使用*【例2.24】 算法: 1、定义枚举类型及相应变量; enum color {red,yellow,blue,white,black}; color i,j,k,col; 2、 for(i=red;i=black;i++) for(j=red;j=black;j++) if(i!=j) //前两个球颜色不同 for(k=red;k=black;k++) if(k!=ik!=j) //第三个球不同于前两个,满足要求;找到一种取法 3、输出该取法:注意枚举量的输出方法。 2.7.2 枚举类型的变量的使用*【例2.24】 程序: int main(){ enum color_set {red,yellow,blue,white,black}; color_set color; int i,j,k,counter=0,loop; for(i=red;i=black;i++) for(j=red;j=black;j++) if(i!=j){ //前两个球颜色不同 for(k=red;k=black;k++) if(k!=ik!=j){ //第三个球不同于前两个,满足要求 counter++; if((counter)%22==0){ cout请按回车键继续;//每屏22行 cin.get(); } coutsetw(15)counter; //下面输出每种取法,一行为一种取法的三个颜色 for(loop=1;loop=3;loop++){ switch(loop){ case 1: color=(color_set) i; break;//第一个是i case 2:

文档评论(0)

189****0315 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档