《循环程序设计》PPT课件.ppt_第1页
《循环程序设计》PPT课件.ppt_第2页
《循环程序设计》PPT课件.ppt_第3页
《循环程序设计》PPT课件.ppt_第4页
《循环程序设计》PPT课件.ppt_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

,正确认识循环程序的执行特点,运用3种循环语句进行循环程序设计,运用2个循环辅助语句更好地控制程序流程,能力目标:,任务一 认识while语句,1初识while语句,(1)思考:在程序设计中,用putchar()一次只能输出一个星号*,那么输出5个星号*、10个星号*,甚至更多的星号*,该如何处理呢?,(2)观察下面两个程序,完成问题。,程序一 main() putchar(*); putchar(*); putchar(*); putchar(*); putchar(*); ,任务一 认识while语句,程序二 main() int i=1; while(i=5) putchar(*); i+=1; ,上面两个程序分别实现什么功能?,(它们都实现输出5个星号*),两个程序中,哪一个简便?在程序中能否用循环语句来实现对重复操作的控制?,答:程序二简便,在程序中能用循环语句来实现对重复操作的控制。,任务一 认识while语句,2学习while语句的形式,(1)请观察下面while语句的形式,完成问题。,(2)试写出while语句的一般形式。,while(表达式) 语句,语句一 while(n+0 ,两条语句的关键字是什么?,关键字后的括号内是什么表达式?,关键字后的语句部分可以是哪些语句?,while,关系表达式、逻辑表达式,简单语句、复合语句,3学习while语句的执行过程,(1)请观察while语句的流程,完成问题。,真,假,请归纳执行过程: 计算 ,如果表达式为真,进入 ,开始一次 循环周期;否则进入,结束循环。 执行语句。语句执行完后就结束本次循环周期,重新返回 。 结束循环,执行循环后面的语句。,表达式,(2)请记录该程序的上机调试结果,画出以下程序的流程图,并指出循环条件、循环体及循环控制变量的三个工作。,请记录上机调试结果:,#include“stdio.h“ main() int I; char ch; ch=# ; I=1; while(I3) printf(“%cn“,ch); I+; ,流程图:,循环条件是 循环体是 循环控制变量是 ,3个工作分别 是 、 、 。,I3,printf(“%cn”,ch);,I,I=1,I3,I+,(3)请观察下面2个程序段,完成问题。,语句一 I=1; while(I+=10) printf(“hello!n”);,语句二 I=1; while(-I=10) printf(“world!n”);,判断下面哪一个程序段是正确的?,循环控制变量更新的趋势是什么?,程序在什么时候才能判断循环是否终止?,(语句一),(让循环条件为假),(判断循环条件时),讨论,用while语句编程求1+2+10之和。 (同时画出该程序的流程图),程序:,流程图:,循环条件 在循环结构中的表达式被称为循环条件。 循环体 在每次循环周期均要执行一次的语句,称为循环体。它可以是简单语句、复合语句,也可以是空语句。 循环控制变量 在循环条件中控制条件真假的变量,称为循环控制变量。它通常决定循环体的执行次数。 正确地写出一个while循环结构,对循环控制变量做3个工作:一是给控制变量赋初值;二是写出正确的循环条件;三是控制变量的更新。,知识盘点:,任务二 认识dowhile语句,1学习dowhile语句的形式,任务二 认识dowhile语句,(1)请观察下面程序中dowhile语句的形式,完成问题。 sum=0; i=1; do sum=sum+i; i=i+1; while(i=10);,该语句的关键字是什么? 语句部分即循环体部分在哪里? 表达式即循环条件部分在哪里?,(do while),(sum=sum+i;i=i+1;),i=10,(2)试写出dowhile语句的一般形式。,do While(表达式);,任务二 认识dowhile语句,2学习dowhile语句的执行过程,请观察dowhile语句的流程,完成问题。,真,假,请归纳执行过程: 执行do下面的 (循环体),开始一个循环周期。 计算while括号中的 (循环条件)。如果表达式为真, 结束本次循环,重新返回 ,开始下一个循环周期;否则,转。 结束dowhile循环,流程转到循环结构外第1条语句。,语句,表达式,(1)比较下面2个程序,写出运行结果。 #include“stdio.h“ #include“stdio.h“ main() main() char ch; char ch; ch=getchar(); ch=getchar(); do while(ch!= *) putchar(ch); putchar(ch); ch=getchar(); ch=getchar(); while(ch!= *); 运行结果 运行结果 若输入:ABC* 若输入:ABC* 则输出: 则输出: 若输入:*AB* 若输入:*AB* 则输出: 则输出:,3dowhile语句与while语句的区别,ABC,*AB,ABC,无结果,(2)由上述运行结果看出,dowhile语句与while语句的区别是什么?,答:当第次执行循环体时,因为表达式为“真”,两种循环得到的结果相同;否则,二者结果就不同。(前提:二者循环体中的语句相同),(1)观察下面的程序段,完成问题。 程序段一 程序段二 sum=0; sum=0; I=1; for(I=1;I=10;I+) while(I=10) scanf(“%f“, ,任务三 认识for语句,1学习for语句的形式,程序段一实现的功能是什么? 程序段一、二所实现的功能完全一样,但在形式上有所不 同,请将程序段一中循环控制变量I的3个工作在程序段二中找到。 (2)试写出for语句的一般形式。,答:输入10个数,并求这10个数的和。,for(表达式;表达式;表达式) 语句,任务三 认识for语句,真,假,2学习for语句的执行过程,请观察for语句的流程,完成问题。,请归纳执行过程: 计算表达式1。 计算表达式2,如果结果为真转 ;如果结果为假转。 执行for下面的语句,执行完后转 。 计算表达式3,结束本次循环周期,转回 ,开始下一次循环。 结束循环,执行for语句后的第1条语句。,运行结果:,运行结果:,运行结果:,3讨论for语句的灵活性,(1)写出以下程序段的运行结果。,for(I=5;I0;I-) printf(“%d“,I); for(n=2;n18;n=n+3) printf(“%d“,n); for(ch=a;ch=e;ch+) printf(“%3c“,ch);,(2)讨论:在for语句的表达式1、表达式2、表达式3中可能会出现哪几种情况?,for(I=1,j=5;Ij;I+,j-) printf(“I=%d j=%dn“,I,j); for(n=1;n*n20;n+) printf(“%dn“,n*n);,运行结果:,运行结果:,程序:,流程图:,4运用for语句编程,编程求1210之积。(同时画出该程序的流程图),()请观察下面两个图,完成问题。,(b)图,任务四 认识循环嵌套,1学习循环嵌套的形式,while() do while() do while(); while();,(2)阅读信息,完成问题。,信息:语言提供的3种循环结构:whiledowhilefor都可以相互嵌套, 自由组合。 问题:在已有几种循环嵌套形式后,补充3种合法的形式。, , for(;) while() ,()请阅读程序,完成问题。,2观察二重循环,#include #define R 5 #define C 5 main() int m,n; for(m=1;m=R;m+) /*7行*/ for(n=1;n=C;n+) /*9行*/ printf(“%3d“,m*n); /*10行*/ printf(“n“); /*12行*/ ,程序定义了哪些变量?,程序中采用几重循环嵌套?,程序中外层循环为哪几行?外层循环的循环体中有几条语句?,程序中内层循环为哪几行?内层循环的循环体中有几条语句?,答:两个变量,m和n,答:二重循环,答:外层循环从7行到12行,外层循环的循环体中有2条语句。,答:内层循环从9行到10行,内层循环的循环体中有1条语句。,(2)请观察循环嵌套部分的流程,完成问题。,真,假,真,假,for,1,5,6,2 4 6 8 10,3 6 9 12 15,4 8 12 16 20,5 10 15 20 25,完成下表。(该表给出了内外层循环控制变量的变化情况),请思考:为什么会出现这种结果?与上例程序有什么区别?,(3)请阅读程序,完成问题,并记录上机调试结果。,#include #define R 5 main() int m,n; for(m=1;m=R;m+) for(n=1;n=m;n+) printf(“%3d“,m*n); printf(“n“); ,1学习break语句 (1)请阅读程序,完成问题。,任务五 认识循环辅助语句,#include #define PI 3.14 main() int r; float V,h; printf(“请输入圆柱体的高:“); scanf(“%f“,r+) 接下页,该程序for语句部分的循环体内有几条语句?,任务五 认识循环辅助语句,3条语句。,除了当r10时,可退出for循环外,是否有其他的方式退出for循环?,答:可以通过当V100.0时,执行break语句退出循环。,V=PI*r*r*h; if(V100.0) break; printf(“体积等于.2fn“,V); printf(“此时r=%dn“,r); ,(2)请观察该程序for语句部分的流程,完成问题。,真,假,假,真,break,从流程上看,循环一定是执行了10次才退出吗?为什么?,请写出该程序的预期结果。 请输入圆柱体的高:6,答:不一定,因为当V100.0时,执行break语句退出循环。,体积等于18.840000 体积等于75.360001 此时r=3,请记录上机调试结果:,差异:,(3)请记录该程序的上机调试结果,并与预期结果比较,有差异吗?,2学习continue语句,()请阅读程序,完成问题,并记录上机调试结果。,记录上机调试结果:,该程序for语句部分的循环体内有几条语句?,答:有2条语句。,#include main() int num; for(num=50;num=100;num+) if(num%7=0) continue; printf(“%dn“,num); ,(2)请观察该程序for语句部分的流程,完成问题。,真,假,假,真,continue,(3)思考:如果该程序不使用continue语句,要实现同样的功能,该如何处理?,从流程上看出,什么情况下不输出数据?而输出的数据是具有什么性质的数据?,答:当数据能被7整除时,不输出。而输出的数据具有不能被7整除的性质。,break语句也可以用于循环结构中,使程序提前跳出循环体,结束循环,流程转移到循环体后面的第1条语句。break语句不适用于除循环结构和switch结构外的其他地方。,break语句在嵌套循环里,它只影响包含它的最内层循环。,知识盘点:,continue语句的作用是:使本次循环体的执行提前结束(即流程跳过循环体中continue后的所有语句),提前结束本次循环周期,然后再根据循环条件是否满足决定是否进入下一次循环周期。,continue语句结束本次循环周期,进入下一次周期。那么,下一次周期究竟在何处开始呢?对于while语句和dowhile语句,执行了coutinue语句后,它的下一步操作是计算测试表达式即循环控制条件;对于for语句,下一步操作是先进行表达式3的计算即控制变量的更新、调整,然后再进行表达式2的计算即循环控制条件。,知识盘点:,1累加的应用 题目:用while语句编程求1+2+3+100的和。,任务六 循环的应用,(1)分析: 首先定义了2个变量。sum用来保存和,将sum清成0,避免内存中产生随机数偶然存入sum,造成结果不准确。 变量i起到了控制循环次数的作用,当i为1、2、3直到100时,条件为真,加入变量sum中。一旦i为101,条件i=100不成立,结束循环。 由此可见,变量i起到了控制循环次数的作用,称为循环控制变量。,(2)根据分析,填写程序。 #include main() int sum,i; sum=0; i=1; while(i=100) sum=sum+i; i+; printf(“1+2+100=%d“,sum); ,任务六 循环的应用,(3)用for语句编程实现以上同样的功能。 程序:,main() int sum,I; sum=0; for(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论