3.2逻辑表达式和条件表达式第八格科技中心逻辑运算和逻辑表达式逻辑变量条件表达式010203Content目录04作业01逻辑运算和逻辑表达式PartOne逻辑运算符逻辑运算又称布尔运算。用数学方法研究逻辑问题,建立逻辑演算。逻辑运算通常用来测试真假值。在形式逻辑中,逻辑运算符是把表达式连接成更复杂的复杂表达式,有与(&&)、或(||)、非(!)三种基本逻辑运算。书例3.8班级评选先进个人,其中一个条件是语文成绩不低于75分且数学成绩不低于85分,输入语文和数学成绩,输出该生是否有资格参选。#includeiostreamusingnamespacestd;intmain(){intyw,sx;cout“输入语文成绩:;cinyw;cout“输入数学成绩:;cinsx;if(yw=75&&sx=85)cout“有资格\n”;elsecout“没有资格endl;return0;}书例3.9根据问题写出条件表达式1)判断一个数n是否可以同时被2与3整除2)判断一个数x是否在区间[1,5]之内3)判断一个数x是否等于0练习1)编程,从键盘输入一个数,输出其是否可以同时被2与3整除。2)编程,从键盘输入一个数,输出其是否在区间[1,5]之内。3)编程,从键盘输入一个数,输出其是否为正数。练习:以下不正确的语句是()。A.if(xy);B.if(x=y)&&(x!=0)x+=y;C.if(x!=y)cinx;elseciny;D.if(xy){x++;y++;}练习:下面的程序段实现输出x,y,z三个数中的最大值,请填入正确的内容。intx=5,y=8,z=9,u,v;if((1))u=x;elseu=y;if((2))v=u;elsev=z;cout”v=”vendl;书例3.10输入一个年份,判断是否为闰年。能被4整除且不能被100整除,或能被400整除是闰年。如2004,2000年是闰年,1900,1901年不是闰年。一般规律为:四年一闰,百年不闰,四百年再闰。#includeiostreamusingnamespacestd;intmain(){intyear;cout“输入年份:”endl;cinyear;if((year%4==0&&year%100!=0)||year%400==0)coutyear是闰年endl;elsecoutyear年不是闰年endl;return0;}02逻辑变量PartTwo逻辑变量(布尔变量)逻辑变量用bool来定义,只有两个值,true(真1)和false(假0)。逻辑变量与普通代数一样,也可以用字母、符号、数字及其组合来表示,但它们之间有着本质区别,因为逻辑常量的取值只有两个,即0和1,而没有中间值。阅读书p.72例3.12练习:输入一个字母,如果是大写字母,就转化为小写,如果是小写字母,结果不变。03条件表达式PartThree条件表达式一般形式为:表达式1?表达式2:表达式3执行顺序是,先求解表达式1,若为真则求解表达式2,此时表达式2的值作为整个条件表达式的值。若表达式1的值为假,则求解表达式3,表达式3的值为整个条件表达式的值。例:max=(ab)?a:b如a比b大时,关系表达式为真,条件表达式的值为a;b比a大时,关系表达式为假,条件表达式的值为b。注意,条件运算符的优先级大于赋值运算符,所以并不是关系表达式的结果赋值给bool型的max变量后执行条件表达式。而是先执行条件表达式,最后把表达式的值赋值给max变量。书p73例3.13:解释下列条件表达式的作用。intmax=(ab)?a:b;cout((num%2==0)?“numiseven”:“numisodd”)endl;y=(x0)?1:-1;书p73例3.14:输入一个字母,如果是大写字母,就转化为小写,如果是小写字母,结果不变。#includeiostreamusingnamespacestd;intmain(){charch;cinch;ch=(ch='A'&&ch='Z')?(ch+32):ch;coutchendl;return0;}练习:编写一个程序根据输入的三角形的三条边判断是否能组成三角形,如果可以则输出三角形类型。floata,b,c,;cinabc;if(a+bc&&b+ca&&a+cb){if(a==b&&b==c)cout”等边三角形”;elseif(a==b||a==b||b==c)cout”等腰三角形”;elseif((a*a+b*b==c*c)||(a*a+c*c==b*b)||(b*b+c*c==a*a))cout”直角三角形”;elsecout”一般三角形”;}elsecout”不能组成三角形”;04作业PartFour作业1.复习书3.22.完成书第74页练习1~43.分析、写出下列程序运行结果#includeiostreamusingnamespacestd;intmain(){intx=6,y=8;if(x++6)cout++yendl;if(x6)cout--yendl;elsecouty++endl;return0;}作业书p75练习4参考答案:#includeiostreamusingnamespacestd;intmain(){intx,y;charz;cinx;y=x%123;if(y=97&&y=122)z=y;else{y=x%91;if(y=65&&y=90)z=y;elsez='*';}coutz;return0;}