《小学生C++创意编程》第5单元课件 while循环_第1页
《小学生C++创意编程》第5单元课件 while循环_第2页
《小学生C++创意编程》第5单元课件 while循环_第3页
《小学生C++创意编程》第5单元课件 while循环_第4页
《小学生C++创意编程》第5单元课件 while循环_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

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

文档简介

英第5单元C++快乐编程——小学C++创意编程实例(课件)堂课Hi,Pythonlist,tuple,dictionary语先立后破,不立不破

——while循环目录目录第17课舒克贝塔献爱心――while语句第18课我帮老师剪长绳——递归调用语句第19课羊羊智斗灰太狼——continue语句第20课小蜗牛与葡萄树——break语句舒克贝塔献爱心――while语句第17课

小老鼠舒克和小老鼠贝塔,在皮皮鲁的帮助下,创立了舒克贝塔航空公司,它们经常开着飞机和坦克帮助他人,但航空公司的运行也不是一帆风顺,强盗总是三番五次来捣乱,机智勇敢的舒克和贝塔最终战胜了海盗,让小动物们都过上了快乐平静的生活。但舒克和贝塔发现,还有不少老弱病残小动物需要帮助,于是它们打算从今年1月份开始存款,以帮助这些老弱病残小动物,假如,1月份存入1元钱,2月份存入2元,3月份存入3元钱,……依次类推,编程计算需要经过多少个月,才能让存入的钱刚好多于300元呢?读故事理思路通过题目可知,1月份存入1元钱,2月份存入2元,……,如果本题要求两年共存多少钱,就很易求出。因为,我们知道一年是12个月,两年就是24个月,即求1+2+3+……+24的和,而本题不知道是多少个月,是要求经过多少个月,才能让存入的钱刚好多于300元,即求n的值。因此,建议使用while循环,当s<=300时,执行循环体语句。1.理解题意2.问题思考理思路3.思路分析本题的存款数s,月数n都要初始为0,即s=0,n=0,先判断s是否小于等于300,如果条件成立,执行循环体。理思路查秘籍1.英汉字典while[waɪl]当……时候true[tru:]代表“真,正确的false[fɔ:ls]代表“假”,错误的2.while语句while循环结构有两种格式,一种是循环体只有一个语句,另一种是循环体由多个语句构成。当循环体有多个语句构成时,应由一对花括号括起来,构成一个语句块的形式,语法形式如下:查秘籍while语句的执行过程如下所示。如果条件表达式的值为真,即条件成立,就不断执循环体的语句。否则,将跳出循环,执行循环体后面的语句。求解决1.编写代码2.测试程序运行结果:求解决3.程序解读4.易犯错误本程序中,n=0,条件满足时先执行n++,使n=1,再进行累加s=s+n,结果是正确的。

如果将第5行中的n=0改为n=1,按下列whlie语句执行,输出n的值是26而不是25,结果是错误的,想想为什么?求解决5.拓展应用while语句可以用于循环次数不确定,而只给出循环结束条件的循环。如对于给定的自然数n,求使1+2+3+4+5+……+i>=n成立的最小i值。程序代码如下:#include<iostream> usingnamespacestd; intmain() { inti=1,n,s=0; cin>>n; while(s<n)//当s小于n时,才执行循环 { s=s+i; i++; } cout<<i-1<<endl;//i多加了1次,还要减去1}阅览室while语句用来实现“当型”循环结构,其一般形式如下:while(表达式)语句;当表达式的值为真(非0)时,就不断执行循环体内的语句。2.while语句特点1.while语句结构先判断表达式,后执行语句。如果条件判断开始就不成立,则一次循环体也不执行。练武功1.修改程序错误1:

错误2:

下面这段代码用于输出1到100之间的偶数,其中有2处错误,快来改正吧!练武功2.阅读程序写结果输出:

练武功3.完善程序编程求5+10+15+……+100的和是多少。练武功4.编写程序对于任意输入不大于30000的整数,编程计算各个数位上的数字之和。输入数据1:3412输出数据1:10输入数据2:10输出数据2:1我帮老师剪长绳――递归调用语句第18课

体育课上,王老师拿出一根长度为15米和6米的绳子,王老师想让你帮他把这2根绳子剪成同样长的小段用来做跳绳。为了节省绳子,剪的时候不允许有剩余。王老师想到学习编程的你,请你编程计算所剪的每段绳子,最长为几米。读故事理思路要把每根绳子剪成同样长的小段,且在不允许有剩余的情况下,所剪绳子最长。可以转化为数学中求2个整数的最大公约数问题。1.理解题意2.问题思考理思路3.算法分析假如两根绳子的长度分别用m和n表示,则采用辗转相除法求最大公约数,思路如下:第一步:求m除以n的余数r;第二步:当余数r等于0时,则n为最大公约数,输出n,结束循环;第三步:当余数r不等于0时,将n的值赋给m,r的值赋给n,再求m除以n的余数r。再转到第2步进行判断,形成循环判断。其流程图如下图所示。理思路求解决1.编写代码2.测试程序求解决3.程序解决最大公约数也称最大公因数或最大公因子。2个整数中公有的约数,叫做这2个数的公约数;其中最大的一个,叫做这2个数的最大公约数。例如:12、16的公约数有1、2、4,其中最大的一个是4,4就是12与16的最大公约数。求解决4.易犯错误在采用辗转相除法求最大公约数时,当余数r不等于0时,将n的值赋给m,r的值赋给n,再求m除以n的余数r。这时赋值语句不能写错,如写成n=m;r=n;程序结果就完全不一样了。阅览室while语句的执行过程如下:(1)首先计算作为循环控制条件表达式的值;(2)若循环控制条件表达式的值为真,则执行一遍循环体,否则离开循环,结束整个while语句的执行。(3)循环体的所有语句执行结束后,则自动转向第(1)步执行。1.while语句执行过程阅览室当while语句的循环体由多个语句组成时,则必须将多个语句使用“{}”括起来,组成一个复合语句,如{sum=sum+i;i++;}循环体中应有使循环趋于结束的语句如i++,否则构成死循环。2.while语句中的复合语句练武功1.计算下列各组整数的最大公约数,并上机验证。练武功2.阅读程序写结果(1)输入:0输出:

(2)输入:123输出:

(3)输入:1234567890输出:

练武功3.修改程序

一起来找茬:下面代码用来计算2个数的最小公倍数。错误原因:

练武功4.编写程序1.五年级一班有35个小朋友,二班有42个小朋友。按班分组,2个班各组的人数一样多,编程计算每组最多有多少个小朋友。2.将一根长为369cm的钢管截成长为69cm和39cm两种规格的短料。在这两种规格的短料至少各截一根的前提下,如何截才能余料最少?

羊羊智斗灰太狼――

continue语句第19

这一天,灰太狼又抢走了羊村的粮食,喜羊羊想夺回粮食,于是混进了灰太狼的城堡里,但不小心被灰太狼给发现了,喜羊羊心想,怎么办才能既夺回粮食又安全逃脱灰太狼的追赶呢?于是聪明的羊羊准备智斗灰太狼,它准备和灰太狼玩一个报数游戏,通过游戏的胜负决定粮食的归属。游戏规则是:羊羊和灰太狼一起从1开始报数,如逢3的倍数或者尾数是3,则不报数,要喊“过”,如果谁报错了,则谁就输了,粮食就要归还给对方。试编一程序,模拟1——20报数游戏。读故事理思路本题是用循环语句输出所规定的数,在输出数前,要判断每个数是不是3的倍数或者尾数是3,若是,输出“过”,若不是,就输出这个数。1.理解题意2.问题思考理思路3.算法分析本例中要判断一个数是不是3的倍数或者尾数是3,可以使用条件表达式n%3==0或n%10==3即可,流程图如下。理思路查秘籍1.英汉字典

continue[kənˈtɪnjuː]继续;结束本次循环2.continue语句求解决1.编写代码2.测试程序

求解决3.程序解读

本程序中,continuer语句的作用提前结束本次循环,跳过循环体中下面尚未执行的cout<<i语句,进行下一次是否执行循环的判定。作为对比,现将第12行中的continuer语句直接改写成break语句,查看新程序的运行结果。

break语句直接结束循环,输出的结果不仅跳过了3,还跳过3之后的所有数字。运行结果:求解决5.程序改进4.易犯错误想一想,如果使用for参考代码循环,则程序结构更清楚,程序代码如图所示。要判断一个数是不是3的倍数或者尾数是3,可以使用条件表达式n%3==0或n%10==3判断,不能只用n%3==0判断。另外,n++语句是在cout<<n之前,所以n<=19,而不是n<=20。#include<iostream> usingnamespacestd;intmain() {intn;for(n=1;n<=20;n++){if(n%10==3||n%3==0)//判断一个数是不是3的倍数或者尾数是3{cout<<"过"<<"";continue; }cout<<n<<"";}return0;}求解决6.拓展应用在使用循环解决很多问题时,有时需要提前结束本次循环,即跳过循环体中尚未执行的语句,接着判定是否执行下一次循环。如输出1到10之间的奇数,相邻的2个数用逗号隔开,当遇到偶数时,提前结束本次循环,跳过输出语句。程序代码如下:#include<iostream> usingnamespacestd;intmain() {intm,i,k;for(i=10;i>=1;i--){if(i%2==0)continue;//提前结束本次循环,跳过输出语句cout<<i;if(i==1)continue;cout<<",";}return0;}阅览室continue语句的作用是结束本次循环,即跳过循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判定。2.continue语句用法1.continue语句功能continue语句只能用在for、while、do-while等循环体中,与if条件语句一起使用,用来加速循环,提高循环的执行效率。练武功1.阅读程序写结果输出:

练武功2.修改程序一起来找茬:下面程序代码,用来输出100~200之间的不能被3整除的数。错误原因:

练武功3.完善程序使用continue语句,编程输出100以内所有偶数。练武功4.编写程序模拟“逢7必过”游戏:循环列出1~20之间的数,判断每个数是不是“7”的倍数,若是,输出“过”;若不是,就输出这个数。小蜗牛与葡萄树――

break语句第20课

小蜗牛家门前有一棵葡萄树。春天,葡萄树发芽了,长出了嫩绿的小叶子。看着这些小叶子,小蜗牛在心里暗暗下了一个决定:今年,葡萄刚发芽我就开始爬。哼!就不信,我还吃不到葡萄!这天,小蜗特意起了个大早,准备开始它的“两万五千里长征”。黄鹂见了,赶忙说:“葡萄成熟还早地很哪?你现在爬上来干什么?”小蜗牛没有理会,继续往上爬,终于在葡萄成熟时,爬了上去,并吃到了又甜又大的葡萄。已知葡萄树高为2.4m,假设蜗牛每小时爬0.3米后,要休息一小时,在休息时又要下滑0.1米,编程计算小蜗牛需要多少小时才能爬上去。读故事理思路蜗牛所用的时间t和向上爬的米数i初始值都为0,每小时向上爬0.3米,可以用i=i+0.3表示,滑下0.1米,可用i=i-0.1表示。1.理解题意2.问题思考理思路3.算法分析用变量t表示蜗牛爬葡萄树所用的时间,i表示向上爬的米数。理思路查秘籍1.英汉字典

break[breɪk]中断;停止2.break语句求解决1.编写代码2.测试程序

求解决3.程序解读

当i>=2.4时,表示蜗牛已经爬到葡萄树枝头,不需要再滑回了,所以需要使用break语句终止整个循环过程。

4.易犯错误在本程序中使用了while(1),条件是1,表示它的值永远为真,若在循环体中没有break语句来终止循环,则会形成死循环。一般情况下,编程中尽量避免出现死循环,而且编译系统不做死循环的检查。求解决5.拓展应用在循环结构中,可以使用break语句,提前结束循环。如判断一个整数m是否素数。素数,指在一个大于1的自然数中,除了1和它本身以外,没法被其他自然数整除的数。算法思想:让m被2到m-1中的数整除,如果m能被2~m-1之中任何一个整数整除,则提前结束循环,此时i必然小于或等于k;如果m不能被2~k之间的任一整数整除,则在完成最后一次循环后,i还要加1,因此i=k+1,才终止循环。在循环之后判别i的值是否大于或等于k+1,若是,则表明未曾被2~k之间任一整数整除过,因此输出“是素数”。程序代码如下:#include<iostream>#include<math.h> usingnamespacestd;intmain() {intm,i,k;cin>>m;k=sqrt(m);for(i=2;i<=k;i++)if(m%i==0)break;//提前结束循环if(i>k+1)cout<<("yes");elsecout<<("no");}阅览室

while语句执行循环体之前,先判断循环条件,条件表达式的值必须为真,否则while循环不执行循环体,即循环体可能一次也不执行。而do-while语句,不管循环条件是否成立,循环体都要执行一次,因为循环体是在条件表达式之前执行的。2.break语句1.while与dowhile的区别

break语句通常用在循环语句和开关语句中。当break用于开关语句switch中时,可使程序跳出switch语句,而执行switch以后的语句;如果没有bre

温馨提示

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

评论

0/150

提交评论