• 747.50 KB
  • 2022-04-29 14:43:34 发布

最新第3章2-循环-c++程序设计课件PPT.ppt

  • 54页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'第3章2-循环-c++程序设计 学习目标掌握C++中各种控制和循环语句的使用;掌握C++中关于流程控制的相关方法。2 主要内容C++的输入与输出选择结构用if语句实现选择结构switch语句循环语句while语句dowhile语句for语句3循环与选择结构的嵌套break&continue语句goto语句 2、解决办法引入新的程序结构,循环控制。为了和循环结构相配合,同时还要引入break和continue语句。有三种形式可以进行循环结构程序设计A、while循环B、do…while循环C、for循环下面我们分别用三种形式的循环语句来实现1+2+3+…100 此题的算法比较简单,从1开始,依次将1到100加在一起,每加一次,就要判断是否到了100,如果超过100,程序结束。(1)设置变量i=1,sum=0为累加结果(2)sum=sum+i(3)变量i增加1,重复步骤(2)(4)变量i增到100时结束程序1、算法分析:例:编程计算1+2+3+…1002、程序伪代码 方法1:――while循环例3.10voidmain(){inti,sum;i=1;sum=0;while(i<=100){sum=sum+i;i=i+1;}cout<>i;对比下面两种写法在输入10和101的结果分别是多少?while(i<=100){sum=sum+i;i=i+1;}do循环体expr假(0)真(非0)while求1+2+3+…100P75 对比while循环和do…while循环1、当while后面的表示式的第一次值为“真”时,两种循环结果相同,否则,不同。2、while循环在条件为假时,不执行循环体3、do…while循环不管条件真假,至少执行一次循环体记录 方法3:――for循环语句形式:for(表达式1;表达式2;表达式3){循环体语句序列}voidmain(){inti,sum=0;for(i=1;i<=100;i++)sum=sum+i;}1、分析以上例子中表达式1、表达式2、表达式3分别是什么2、在for循环中,3个表达式都可以省,分析省略后的各种情况expr2循环体假(0)真(非0)forexpr1expr3求1+2+3+…100P76 for语句的一般形式和执行过程表达式2?执行语句成立不成立执行for循环之后的语句执行表达式3执行表达式1循环初始条件循环控制条件循环体循环变量控制for语句等价于下列语句:表达式1;while(表达式2){语句;表达式3;} 3.11.4几种循环的比较(1)3种循环都可以用来处理同一问题,一般情况下它们可以互相代替。 3.11.4几种循环的比较(2)while和do-while循环,是在while后面指定循环条件的,在循环体中应包含使循环趋于结束的语句(如i++,或i=i+1等)。for循环可以在表达式3中包含使循环趋于结束的操作,甚至可以将循环体中的操作全部放到表达式3中。因此for语句的功能更强,凡用while循环能完成的,用for循环都能实现。 3.11.4几种循环的比较(3)用while和do-while循环时,循环变量初始化的操作应在while和do-while语句之前完成。而for语句可以在表达式1中实现循环变量的初始化。 循环程序举例例3.12用π/4≈1-1/3+1/5-1/7+…p80公式求π的近似值,直到某一项的绝对值小于为止。e.g.10-6N-S图表示算法 3.14编写循环结构的程序根据给定的算法很容易编写程序如下:#include#include#includeusingnamespacestd;intmain(){ints=1;doublen=1,t=1,pi=0;while((fabs(t))>1e-7){pi=pi+t;n=n+2;s=-s;t=s/n;}pi=pi*4;cout<<″pi=″<#includeusingnamespacestd;intmain(){longf1,f2;inti;f1=f2=1;for(i=1;i<=20;i++){cout<100)break;cout<<"r="<100时,执行break语句,提前结束循环,即不再继续执行其余的几次循环。 用continue语句提前结束本次循环continue语句作用为结束本次循环,即跳过循环体中下面尚未执行的语句,接着进行下一次是否执行循环的判定.一般形式:continue; 用continue语句提前结束本次循环continue语句和break语句的区别:continue语句只结束本次循环,而不是终止整个循环的执行。while(表达式1){┆if(表达式2)continue;┆} continue语句和break语句的区别break语句则是结束整个循环过程,不再判断执行循环的条件是否成立。while(表达式1){┆if(表达式2)break┆} 例:把100~200之间的不能被3整除的数输出。#include voidmain() {intn; for(n=100;n<=200;n++) {if(n%3==0) continue; cout<#include#includeusingnamespacestd;intmain(){intm,k,i,n=0;boolprime;for(m=101;m<=200;m=m+2){prime=true;k=int(sqrt(m));for(i=2;i<=k;i++)if(m%i==0){prime=false;break;}if(prime){cout<usingnamespacestd;intmain(){charc;while((c=getchar())!=′\n′){if((c>=′a′&&c<=′z′)||(c>=′A′&&c<=′Z′)){c=c+4;if(c>′Z′&&c<=′Z′+4||c>′z′)c=c-26;}cout<′Z′||c>′z′)c=c-26;因为所有小写字母都满足“c>′Z′”条件,从而也执行“c=c-26;”语句,这就会出错。因此必须限制其范围为“c>′Z′&&c<=′Z′+4”,即原字母为′W′到′Z′,在此范围以外的不是原大写字母W~Z,不应按此规律转换。请考虑:为什么对小写字母不按此处理,即写成c>′z′&&c<=′z′+4而只须写成“c>′z′”即可。 请思考:为什么对小写字母不按此处理,即写成c>′z′&&c<=′z′+4而只须写成“c>′z′”即可。 本节主要内容while循环语句do~while循环语句for循环语句循环嵌套及注意的问题三种循环的对比 易出错内容(1)如何设置循环变量(2)循环条件的设置(3)循环次数的判断(4)编写多重循环结构时的语句匹配(5)在多重循环结构中,break或continue语句的跳转位置(6)如果循环体语句多于一条一定要用大括号括起来(7)当省略for语句表达式值时,不能省略分号 作业1、编写程序,从键盘输入正整数n,计算n!并输出n和n!。(要求:分别用while、do…while和for三种循环语句实现,写成三个独立的C源程序)。2、习题4、6、73、习题8 看看这道爱因斯坦出的测试题,他说世界上有98%的人回答不出, >看看你是否属于另外的2%: 1.有5栋5种颜色的房子>2.每一位房子的主人国籍都不同>3.这5个人每人只喝一个牌子的饮料,只抽一个牌子的香烟,只养一种宠物>4.没有人有相同的宠物,抽相同牌子的香烟,喝相同的饮料 >已知条件:>1.英国人住在红房子里>2.瑞典人养了一条狗>3.丹麦人喝茶>4.绿房子在白房子左边>5.绿房子主人喝咖啡> >已知条件:>6.抽PALLMALL烟的人养了一只鸟>7.黄房子主人抽DUNHILL烟>8.住在中间那间房子的人喝牛奶>9.挪威人住在第一间房子>10.抽混合烟的人住在养猫人的旁边 >已知条件:11.养马人住在DUNHILL烟的人旁边>12.抽BLUEMASTER烟的人喝啤酒>13.德国人抽PRINCE烟>14.挪威人住在蓝房子旁边>15.抽混合烟的人的邻居喝矿泉水 >问题是:>谁养鱼?'