《关系与逻辑运算特殊运算.ppt》由会员分享,可在线阅读,更多相关《关系与逻辑运算特殊运算.ppt(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、关系与逻辑运算关系与逻辑运算 特殊运算特殊运算 把把y=y%(4+x)y=y%(4+x)转变为复合赋值表达式;转变为复合赋值表达式;把表达式把表达式a/=b-3a/=b-3转换为一般赋值形式;转换为一般赋值形式;程序段:程序段:intint a;float s=9;a=s%4;a;float s=9;a=s%4;是否是否合法,若有错,将如何将其改正?合法,若有错,将如何将其改正?程序:程序:#define PI 3 define PI 3 main()main()intint a;PI+;a=a;PI+;a=PI;printf(“aPI;printf(“a=%d”,a);=%d”,a);是否有
2、错,若有错,错在哪里?是否有错,若有错,错在哪里?考查上次内容考查上次内容关系运算与逻辑运算关系运算与逻辑运算关系运算关系运算v关系运算是指数据之间的关系(比如数间关系运算是指数据之间的关系(比如数间的大小等)的大小等)v关关系系运运算算的的结结果果要要么么为为真真,要要么么为为假假,若若为真,就用为真,就用1 1表示,为假,就用表示,为假,就用0 0表示。表示。逻辑运算逻辑运算v逻辑是指事物之间的内在联系,它常用来逻辑是指事物之间的内在联系,它常用来组合若干个关系运算,来描述一定的条件。组合若干个关系运算,来描述一定的条件。关系运算关系运算关系运算符关系运算符 、=、=、=、!=!=相同优先
3、级相同优先级相同优先级相同优先级高高低低关系表达式关系表达式 若若a=3,b=2,c=1,a=3,b=2,c=1,则下列表达式的值则下列表达式的值 分别为多少?分别为多少?(a b a b)=c=c b+c a b+c a f=a c f=a c (ab)=c=11 b+c a3 30 f=a c0 101逻辑表达式逻辑表达式逻辑运算符逻辑运算符&(逻辑与)(逻辑与)|(逻辑或)(逻辑或)!(逻辑非)!(逻辑非)见书P29表2.6逻辑运算符的优先级逻辑运算符的优先级逻辑运算的优先级逻辑运算的优先级|&!优先级优先级低低高高说明说明&和和|的优先级低于关系运算符,但的优先级低于关系运算符,但!高
4、于高于算术运算符;算术运算符;逻辑表达式中的逻辑量,若不逻辑表达式中的逻辑量,若不是是0 0,则认为该量为真;,则认为该量为真;见书见书29说明部分说明部分逻辑表达式逻辑表达式逻辑表达式逻辑表达式说明:说明:逻辑表达式的值是一个具有真假属性逻辑表达式的值是一个具有真假属性的逻辑量,若一个量为非的逻辑量,若一个量为非0值,则认为是真,值,则认为是真,用用1表示。表示。应用示例应用示例判断某年判断某年yearyear是否为闰年;(提示:某年若是闰是否为闰年;(提示:某年若是闰年,则必须符合下列条件之一:年,则必须符合下列条件之一:.该年可以被该年可以被4 4整除,但不能被整除,但不能被100100
5、整除;整除;.该年可以被该年可以被400400整除)整除)y%4=0y%100!=0&()y%400=0()|活活 动动用用C语言描述下列逻辑关系语言描述下列逻辑关系1.x1.x和和y y中有一个大于中有一个大于z z;2.x不能被不能被y整除;整除;xz|yz xz|yz 或或(xz)|(yz)xz)|(yz)x%y!=0 x%y!=0 关于逻辑运算的特殊说明关于逻辑运算的特殊说明说明说明在逻辑表达式的求解过程中,并不是所有的逻辑在逻辑表达式的求解过程中,并不是所有的逻辑量、运算符都被执行,只是必须执行该逻辑量才量、运算符都被执行,只是必须执行该逻辑量才能求出整个表达式的解时,才执行该运算量
6、或运能求出整个表达式的解时,才执行该运算量或运算符。算符。见书见书P30示例示例表达式表达式1&1&表达式表达式2 2中,若表达式中,若表达式1 1为为0 0,则计算,则计算机不再考虑表达式机不再考虑表达式2 2的值的情况,也就是说表达的值的情况,也就是说表达式不再执行式不再执行。活活 动动1.1.若若a=9,b=10,c=1,d=7,x=8,y=15 a=9,b=10,c=1,d=7,x=8,y=15,则则计计算算机机执执行行了了语语句句:m=(x=ab)m=(x=ab)&(y=cd);(y=cb?a:b 条件运算符的应用条件运算符的应用说明说明条件运算符的结合方向为从右往左条件运算符的结合
7、方向为从右往左。如:如:a b?a:b c?b:c a b?a:b c?b:c 等价于等价于ab?a:(b c?b:c)ab?a:(b c?b:c)示例示例用条件运算符求三个数中的大者,编程实现用条件运算符求三个数中的大者,编程实现 main()main()int a,b,c,max;int a,b,c,max;scanf(%d,%d,%d,&a,&b,&c);scanf(%d,%d,%d,&a,&b,&c);max=a(bc?b:c)?a:(bc?b:c);max=a(bc?b:c)?a:(bc?b:c);printf(a=%d,b=%d,c=%d,max=%dn,a,b,c,max);pr
8、intf(a=%d,b=%d,c=%d,max=%dn,a,b,c,max);作作 业业书本作业书本作业P35-P37:一、二题剩余部分一、二题剩余部分编程作业编程作业P37P37:三、编程题三、编程题 3 3分别求两个数和三个分别求两个数和三个数的最大值。数的最大值。实训(实训(1)分析程序,强制类型转换)分析程序,强制类型转换改变变量的类型了吗?改变变量的类型了吗?main()int a=2,b=7,c;float x=15.5,y,z;y=a/b;z=(float)a/b;c=(int)x%a;printf(y=%f z=%f c=%d x=%f,y,z,c,x);(3)分析程序)分析程
9、序 main()int a,b,c,d,e,f;a=b=c=d=10;a+;+b;c-;-d;printf(a=%d b=%d c=%d d=%dn,a,b,c,d);e=a+;f=+b;printf(a=%d b=%d e=%d f=%d,a,b,e,f);(4)综合应用示例)综合应用示例P37 三、编程题三、编程题 3.输入华氏温度,输出输入华氏温度,输出相应的摄氏温度。二者的换算公式是:相应的摄氏温度。二者的换算公式是:c=5/9(F-32),其中,其中F表示华氏温度,表示华氏温度,c表示摄氏温度。表示摄氏温度。main()float F,c;printf(shu ru hua shi wen du:);scanf(%f,&F);c=5.0/9*(F-32);printf(she shi wen du=%f,c);分别求两个数和三个数的最大值。分别求两个数和三个数的最大值。main()int a,b,max;scanf(%d%d,&a,&b);max=ab?a:b;printf(max=%d,max);main()int a,b,c,max;scanf(%d%d%d,&a,&b,&c);max=a(bc?b:c)?a:(bc?b:c);printf(max=%d,max);