《预处理与语句》PPT课件.ppt

上传人:牧羊曲112 文档编号:5620291 上传时间:2023-08-03 格式:PPT 页数:62 大小:352KB
返回 下载 相关 举报
《预处理与语句》PPT课件.ppt_第1页
第1页 / 共62页
《预处理与语句》PPT课件.ppt_第2页
第2页 / 共62页
《预处理与语句》PPT课件.ppt_第3页
第3页 / 共62页
《预处理与语句》PPT课件.ppt_第4页
第4页 / 共62页
《预处理与语句》PPT课件.ppt_第5页
第5页 / 共62页
点击查看更多>>
资源描述

《《预处理与语句》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《预处理与语句》PPT课件.ppt(62页珍藏版)》请在三一办公上搜索。

1、1,3.4 分支结构及语句实现,3.4.1单分支结构及其语句实现,【格式】if(),【说明】可以是关系表达式、逻辑表达式和其他表达式,常用的是关系表达式和逻辑表达式;语句1可以是一条语句,也可以是复合语句。,2,单分支结构及其语句实现,【功能】首先计算的值,如果的值为真(非0即为真),执行,否则(的值为0)执行if语句的下一个语句。,3,简单if语句 示例,【例3-4-1】任意给定一个实数,输出其绝对值。,【实例3-4-2】已知某学生“高等数学”课程的成绩,如果及格了,输出“Passed!”。,4,【格式】if()else,3.4.2 双分支结构及其语句实现,【说明】和可以是一条语句,也可以是

2、复合语句。,5,ifelse语句,【功能】先计算的值。如果的值为真,执行,否则执行。只有一条通路,6,【例3-4-3】已知,乘客乘火车时允许随身携带的行李重量为20公斤,若超出此总量,超出的部分按每公斤0.5元收费。若某乘客随身携带的行李重量为32公斤,求所需费用。,ifelse语句示例,7,【例3-4-4】已知三角形的三边长,求三角形的面积。,算 法,ifelse语句示例,8,【例3-4-5】输入任意一个整数,说明该数是奇数还是偶数。,ifelse语句示例,【例3-4-6】已知某学生“高等数学”课程的成绩,如果及格了,输出“Passed!”,否则输出“no passed!”。,9,【格式】i

3、f()else if()else if()else if(),多分支结构及其语句实现,1.if语句的嵌套形式,10,【功能】先计算的值。如果的值为真,执行,否则计算的值。如果的值为真,执行,否则计算的值只有一条通路,if语句的嵌套形式,11,【例3-4-7】已知x的值,求y的值。,if语句的嵌套形式示例,【实例3-4-8】猜数字游戏。输入任意一个整数,判断其是否为8,若猜对了,给出“right!”;若猜错了且比8大,给出“big!”,否则给出“small!”。,12,if语句的嵌套形式,所谓if语句的嵌套是指在条件语句内部(或中)又使用了条件语句。例如:,if(x1)if(y1).else.,

4、if(x1).else if(y1).,13,if语句的嵌套示例,#include void main()int score,grade;cinscore;if(score=90)grade=5;cout=80)grade=4;cout=70)grade=3;cout=60)grade=2;cout=0)grade=1;coutgeade;else cout“data error!n”;,【例3-4-9】输入一个学生的成绩(百分制),转换成5分制。,14,2.多分支选择结构和switch语句,【格式】switch()case:case:case:case:default:,15,开关语句,16

5、,开关语句,【说明】(1)case后边的可以是整型常量表达式或字符型常量表达式。(2)也称为开关常量。(3)可以是一条简单的语句或复合语句,即使语句i是复合语句,也可以不用大括号括起来。(4)default:语句n+1可以缺省。当执行完后,不是马上跳出switch语句,而是接着执行、,直至。,17,开关语句示例,switch(k)case 1:coutk=kendl;case 2:coutk=kendl;default:coutk=kendl;,当k=1时,输出3次k=1;当k=2时,输出2次k=2。一般情况下,并不希望这样“穿过”整个switch语句,而是通过break语句控制跳出switc

6、h语句。,18,修正后的开关语句示例,switch(k)case 1:coutk=kendl;break;case 2:coutk=kendl;break;default:coutk=kendl;,当k=1时,输出1次k=1;当k=2时,输出1次k=2。,19,开关语句,【说明】(1)任意两个case后的不能相同。(2)多个case可以共用一个。例如:switch(x)case 1:case 3:case 5:y=x;,20,开关语句示例,【例3-4-10】任意给定一个月份数,输出是哪个季节(12,1,2月是冬季;3,4,5月是春季;6,7,8月是夏季;9,10,11月是秋季)。,#inclu

7、de void main()int month;coutmonth;switch(month)case 12:case 1:case 2:coutwinterendl;break;case 3:case 4:case 5:,cout“spring”endl;break;case 6:case 7:case 8:coutsummerendl;break;case 9:case 10:case 11:coutautumnendl;break;default:coutinput month error!endl;,21,开关语句示例,22,开关语句示例,【例3-4-11】任意给定一个学生的成绩(百分

8、制),转换成5分制后输出。,#include void main()int score,grade;coutscore;score=score10;switch(score)case 10:case 9:grade=5;break;case 8:grade=4;break;,case 7:grade=3;break;case 6:grade=2;break;case 5:case 4:case 3:case 2:case 1:case 0:grade=1;break;default:grade=-1;cout“grade=gradeendl;,23,开关语句示例,【例3-4-12】阅读下列程序

9、,给出运行结果。#include void main()int x=1,y=0,a=0,b=0;switch(x)case 1:switch(y)case 0:a+;break;case 1:b+;break;case 2:a+;b+;break;case 3:a+;b+;couta=a b=bendl;,24,条件运算符与条件表达式,条件运算符?:条件运算符是C+中唯一的三目运算符。,【条件表达式格式】?:,【功能】它要求有三个操作对象。当非0时,返回的值,否则返回的值。,25,条件运算符和条件表达式,例如:x=3;y=5;xy?x:y;,【说明】(1)条件运算符的结合性为从右向左;(2)条

10、件表达式可以作为左值。,26,条件运算符示例,#include int main()char ch;cinch;/判别ch是否大写字母,是则转换 ch=(ch=A,【例3-4-13】输入一个字符,判别它是否为大写字母,如果是,将它转换成小写字母;如果不是,不转换。然后输出最后得到的字符。,27,条件运算符示例,【例3-4-14】任意给定3个数,找出其中最大的一个数并输出。,28,3.4.5 选择结构程序设计,【例3-4-15】编写程序,判断某一年是否为闰年。,我们居住的地球总是绕着太阳旋转的。地球绕太阳转一圈需要365天5时48分46秒,也就是365.2422天。为了方便,一年定为365天,叫

11、做平年;这样每过四年差不多就要多出一天来,把这一天加在2月里,这一年就有366天,叫做闰年。,29,3.4.5 选择结构程序设计,通常,每四年里有三个平年一个闰年。公历年份是4的倍数的,一般都是闰年。按照每四年一个闰年计算,平均每年就要多算出0.0078天,这样经过四百年就会多算出大约3天来,因此,每四百年中要减少三个闰年。所以规定,公历年份是整百数的,必须是400的倍数的才是闰年,不是400的倍数的就是平年。也就是我们通常所说的:四年一闰,百年不闰,四百年再闰。,30,3.4.5 选择结构程序设计,【例3-4-15】编写程序,判断某一年是否为闰年。,#include int main()in

12、t year;bool leap;coutyear;if(year%4=0)if(year%100=0)if(year%400=0)leap=true;,else leap=false;else leap=true;else leap=false;if(leap)coutyear is;else coutyear is not;cout a leap year.endl;return 0;,31,选择结构程序设计,【例3-4-16】运输公司对用户计算运费。路程(s)越远,每公里运费越低。标准如下:,s250km 没有折扣 250s500 2折扣 500s1000 5折扣 1000s2000 8

13、折扣 2000s3000 10折扣 3000s 15折扣 设每公里每吨货物的基本运费为p,货物重为w,距离为,折扣为d,则总运费f的计算公式为:f=p*w*s*(1-d),32,3.5 循环结构语句,C+提供了3种循环语句:while语句、dowhile语句和for语句。循环有三要素。初值;循环的终止条件;循环变量的改变。初值用于设置循环的入口点,终止条件用于设置循环的出口点,循环变量的改变保证循环的结束。循环三要素在编写循环语句时非常重要。,33,循环三要素,统计圈数:i=i+1,例:绕400米跑道跑3000米,34,3.5.1 for语句,【格式】for(;),【说明】(1)、和可以是任意

14、表达式。(2)用于设置循环变量的初值;设置循环终止的条件;完成循环变量的修改。(3)、和均可以省略,但分号(;)不能省略。,35,for语句,【功能】(1)对括号中的求值。(2)对求值。(3)若的值为真执行,然后计算的值。(4)重复(2)、(3)步骤,直至的值为假退出循环。,36,for语句示例,【例3-5-1】计算1+2+3+100的和。,算法:累加和 ss+x注意:和s首先要清零,37,38,for语句示例,【例3-5-2】计算10个学生的数学平均成绩。,【例3-5-3】计算10!。,算法:累乘 tt*x注意:乘积t首先要归1。,39,3.5.2 while语句,【格式】while(),【

15、说明】可以是任意表达式。但一般常用关系表达式或逻辑表达式。,40,while语句,【功能】首先计算的值,如果的值为真(非0)执行,然后重复计算的值,如果的值仍然为真,重复执行,直至的值为假退出循环,执行while语句的下一条语句。,41,while语句示例,【例3-5-4】计算下式刚好大于等于3时的n。,用while语句计算1100之间的和。,42,3.5.3 dowhile语句,【格式】do while();,43,dowhile语句,图4-7 dowhile语句执行过程,表达式,循环体语句,T,F,【功能】(1)执行;(2)计算值。(3)若的值为真(非0)重复(1)、(2)步骤,直至的值为

16、假退出循环。,44,dowhile语句示例,【例3-5-5】编写程序,求的近似值,要求误差小于或等于10-6为止。已知/41-1/3+1/5-1/7+。,#include#include void main()int i=1,t=1;float pi=0,eps=1e-6f;/eps用于设置误差,do pi+=1.0f*t/i;i+=2;t=-t;/处理正负号 while(fabs(1.0/i)eps);coutpi=4*piendl;,45,三种循环语句的比较,while循环:循环变量=初值while();循环变量的改变语句;,dowhile循环:循环变量=初值;循环变量的改变语句;whil

17、e();,for循环:for(循环变量=初值;条件;循环变量的改变语句;);,46,三种循环语句的比较示例,#include void main()int i,n;long fact=1,sum=0;coutn;i=1;while(i=n)fact*=i+;sum+=fact;coutsum=sumendl;,#include void main()int i,n;long fact=1,sum=0;coutn;i=1;do fact*=i+;sum+=fact;while(i=n);coutsum=sumendl;,#include void main()int i,n;long fact=

18、1,sum=0;coutn;for(i=1;i=n;i+)fact*=i;sum+=fact;coutsum=sumendl;,【例3-5-6】试分别用while、dowhile或for语句计算1!+2!+3!+10!,47,3.5.4 循环嵌套及其语句实现,1 2 3 4 5 6 7 8 91 12 2 43 3 6 94 4 8 12 165 5 10 15 20 256 6 12 18 24 30 367 7 14 21 28 35 42 498 8 16 24 32 40 48 56 649 9 18 27 36 45 54 63 72 81,【例3-5-6】按下列格式打印九九表。,4

19、8,循环嵌套及其应用,#include#include void main()int i,j;coutsetiosflags(ios:left);coutsetw(5);for(i=1;i=9;i+)coutsetw(5)i;coutendl;for(i=1;i=9;i+)coutisetw(4);for(j=1;j=i;j+)coutsetw(5);couti*j;coutendl;,49,3.6 辅助控制语句,3.6.1 break语句,【格式】break;,【说明】break语句只能用于switch或循环语句中。当程序执行到该语句时,将控制流程终止switch或循环语句。,50,Brea

20、k语句示例,【例3-6-1】任给一个正整数,判断其是否是素数。,#include#include void main()int x,j,flag;flag=1;for(j=2;j=sqrt(x);j+)if(x%j=0)flag=0;break;if(flag=1)coutx“is a prime!”endl;,51,3.6.2 continue语句,【格式】continue;,【功能】continue语句只能用于循环语句中。当程序执行到该语句时,将控制流程终止本次循环,返回到本层循环的条件测试部分继续执行。,52,continue语句示例,【例3-6-2】阅读下列程序,给出运行结果。#inc

21、lude void main()int i;for(i=1;i=50;i+)if(i%5)continue;couti;,结果:5 10 15 20 25 30 35 40 45 50,53,break语句与continue语句的区别,(1)break语句是终止本层循环,continue语句是终止本次循环。(2)break语句可以用在循环和switch语句中,continue语句只能用在循环语句中。,54,break语句与continue语句的区别,程序段1:for(int sum=0,i=1;i=100;i+)if(i%2=0)continue;sum+=i;coutsum=sumendl;

22、,程序段2:for(int sum=0,i=1;i=100;i+)if(i%2=0)break;sum+=i;coutsum=sumendl;,55,3.7 程序设计实例,【例3-7-1】输入任意3个数,按由大到小的顺序排列输出。,【例3-7-2】根据输入的运算符(+、-、*、/),进行相应的四则运算。,【例3-7-3】已知Fibonacci数列的前6项为:1,1,2,3,5,8。按此规律输出该数列的前40项。,【例3-7-4】输出3100之间的所有素数。,56,程序设计实例,【例3-7-5】打印如下图形。,57,程序设计实例,【例3-7-6】输入一个正整数,按逆序输出。,#include v

23、oid main()int m,n;coutm;while(m)n=m%10;coutn;m/=10;,58,程序设计实例,【例3-7-7】百钱买百鸡。用100元钱买100只鸡,公鸡每只5元,母鸡每只3元,小鸡每3只1元,要求每种鸡至少买1只,且必须是整数只,问公鸡、母鸡和小鸡各年买几只?,59,程序设计实例,#include void main()int cock,hen,chicken;for(cock=1;cock16;cock+)for(hen=1;hen29;hen+)chicken=100-cock-hen;if(5*cock+3*hen+chicken/3=100,60,程序设计实例,【例3-7-8】译密码。为使电文保密,往往按一定规律将电文转换成密码,收报人再按约定的规律将其译回原文。例如,可以按以下规律将电文变成密码:将字母A变成字母E,a变成e,即变成其后的第4个字母,W变成A,X变成B,Y变成C,Z变成D。见下图。字母按上述规律转换,非字母字符不变。如Wonderful!转换为Asrhivjyp!。输入一行字符,要求输出其相应的密码,61,程序设计实例,【例3-7-8】程序代码如下。#include#include void main()char c;doc=getchar();if(c=a,62,小结,1.程序构成2.程序的3个基本结构:顺序分支循环,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号