控制结构(循环结构).ppt

上传人:za****8 文档编号:14245853 上传时间:2020-07-14 格式:PPT 页数:31 大小:312.51KB
返回 下载 相关 举报
控制结构(循环结构).ppt_第1页
第1页 / 共31页
控制结构(循环结构).ppt_第2页
第2页 / 共31页
控制结构(循环结构).ppt_第3页
第3页 / 共31页
点击查看更多>>
资源描述
第4章 控制结构(循环结构),教学内容 掌握三条语句两种循环的实现形式 理解循环三要素 熟悉循环结构程序设计思路 教学重点 两种循环的实现形式 教学难点 循环嵌套 循环结构程序设计,循环概述,用途 解决一些需要重复多次才能完成的问题 每一次在做相同操作或与上一次有联系的相似操作 分类,入口,出口,入口,出口,while语句,功能:实现当型循环 形式:while(表达式)循环体语句 执行:先判断,后执行,例4-11 求n! P101,源程序,main() int n,i; float t; printf(“please input n(n=0):”); scanf(“%d”, ,循环条件,i为循环变量,循环变量初始化,改变循环变量的值,while语句应用举例,例4-12:求的近似值P101 程序流程 输入数据:无 处理数据:/41-1/3+1/5-1/7+ 输出结果: 算法分析 问题实质:累加求和 解决方案:循环 循环条件 循环变量初始化 改变循环变量的值,累加项t的绝对值大于等于10-6,循环变量t=第1项的值,循环变量t=下一项的值,流程图,找规律,项:1、-1/3、1/5、-1/7,找递推公式,找本项与下一项之间的关系,每一项都是一个分式,分子都是1,分母是n+2,n代表前一项分母,下一项与本项符号相反,n=n+2 sign=-sign t=sign/n,n=1 sign=1,源程序,#include main() float pi,t,n; int sign=1; pi=0.0;n=1.0;t=1.0; while(fabs(t)=1e-6) pi=pi+t; n=n+2; sign=-sign; t=sign/n; pi=pi*4; printf(“pi=%fn”,pi); ,循环条件,t为循环变量,循环变量初始化,改变循环变量的值,do-while语句,功能:实现直到型循环 形式 do 循环体语句 while(表达式); 执行:先执行,后判断,当型循环可能一次也不执行,直到型循环至少执行一次,do-while语句应用举例,例4-13:计算sin(x)P102 定义变量 输入数据 处理数据 输出结果,x,sin(x)=x-x3/3!+x5/5!-x7/7!+,sin(x),累加问题,循环实现,当型循环,直到型循环,直到最后一项的绝对值小于1e-7,循环条件,循环变量初始化,循环体 (改变循环变量),fabs(t)=1e-7,s=s+t,t=x,t=-t*x*x/ (n-1)/n,找规律,通项公式:an与n之间的关系,递推公式:an与an-1之间的关系,源程序,#include main() double s,t,x;int n; printf(“please input x:”); scanf(“%lf”,如果将s=x;改为s=0;程序应如何修改?,for语句,功能 最灵活,既可实现当型循环,也可实现直到型循环 多用于循环次数已知的循环,也可用于循环次数未知的循环 形式 for(表达式1;表达式2;表达式3) 语句 执行 流程图,for语句执行流程图,如何转换成等价的while循环? 表达式1; while(表达式2) 语句 表达式3; ,表达式1只在进入循环前求解一次,for语句的典型应用,for (循环变量赋初值;循环条件;循环变量增值) 语句 main() int i,sum; sum=0; for(i=1;i=100;i+)sum=sum+i; printf(“%d”,sum); ,for语句的灵活性,for(sum=0,i=1;i=100;i+)sum=sum+i; sum=0,i=1; for(;i=100;i+)sum=sum+i; for(sum=0,i=1;i=100;)sum=sum+i; i+; sum=0,i=1; for(;i=100;) sum=sum+i; i+; for(sum=0,i=1;i+) if(i=100)break; sum=sum+i; sum=0,i=1; for(;) if(i=100)break; sum=sum+i; i+;,循环嵌套,一个循环体内又包含另一个完整的循环结构 三种循环语句可以相互嵌套P107 一般情况下各层循环变量互不相同 例4-16:打印金字塔图案P107,1 222 33333 4444444 555555555 66666666666 7777777777777 888888888888888 99999999999999999,编程思想:抽象的学问 抽象方法:找规律 用变量来描述变化的规律 用流程图来描述算法 编程实现算法,流程图,一行一行输出,重复操作,循环,循环变量除用来控制循环的开始与结束外,往往还参与循环体内的操作。,一个字符一个字符输出,每行输出若干个空格和若干个数字,源程序,main() int i,j; for(i=1;i=4;i+) for(k=1;k=10-i;k+) printf(%c, ); for(j=1;j=2*i-1;j+) printf(%c,48+i); printf(n); ,是否可改为0+i?,是否可将k改为j?,是否可去掉?,几种循环的比较,循环三要素 循环条件、循环变量初始化、改变循环变量的值,循环中应避免的问题,不循环 发生场合:当型循环 原因:循环变量初值不合适,循环初始条件为假 死循环 发生场合:当型循环、直到型循环 原因:循环变量改变量不合适,循环条件始终为假,反面案例,n=10; while (n10) n=n+1; printf(“n=%d”,n); for(n=10;n10;n+); printf(“n=%d”,n);,n=10; do n=n+1; while(n10); printf(“n=%d”,n); for(n=10;n10;n-); printf(“n=%d”,n);,循环的入口与出口,循环入口 满足循环条件即可进入循环 循环出口 正常出口:不满足循环条件,正常退出 紧急出口:当出现某种情况时,不管当前是否满足循环条件,立即退出,循环的紧急出口,break语句:结束整个循环 continue语句:结束本次循环 一般出现在一条if语句中 if(n%3=0) break; 例4-20:判断素数P111 算法描述:如果m不能够被2sqrt(m)之间任一整数整除,则m为素数。 流程图 源程序,流程图,正常出口,紧急出口,如何判断退出方式?,正常退出,紧急退出,源程序,#include main() int m,i,k; printf(“Enter m=n”); scanf(%d, ,循环结构程序设计应用举例,例4-22:换零钱问题P113 穷举法(枚举法):一一列举各种可能情况,并判断哪一种可能是符合要求的解 一种笨方法,源程序,void main() int x,y,z; printf(“5yun 1yun 0.5yunn”); n=0; for(x=1;x=100;x+) for(y=1;y=100;y+) for(z=1;z=100;z+) if(x+y+z=100 ,void main() int x,y,z; printf(“5yun 1yun 0.5yunn”); n=0; for(x=1;x=100;x+) for(y=1;y=100;y+) z=100-x-y; if(5*x+y+0.5*z=100) printf(“ %d %d %dn”, x,y,z); n+; printf(“Total %d”,n); ,循环结构程序设计应用举例-2,例4-23:求平方根P115 程序流程 输入数据:欲求平方根的数据 处理数据:求平方根 输出结果:平方根 算法分析 迭代法P115 要求解X,可由给定的一个初值X0,通过迭代公式求得一个新值X1,这个新值X1比初值X0更接近要求的X,再以新值X1作为初值,即X1X0,重新按原来方法求X1,重复此过程直到|X1-X0|= 循环变量初始化:X0、X1 改变循环变量的值:迭代公式、 X1X0,流程图,源程序,#include void main() float a,x0,x1,t; scanf(“%f”, ,试与P115程序进行比较,实验四,实验指导书实验五:4,7,作业,教材P119:三 教材P120:四,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!