f 第五章 逻辑运算和判断选取控制

上传人:小*** 文档编号:243140663 上传时间:2024-09-16 格式:PPT 页数:45 大小:399.50KB
返回 下载 相关 举报
f 第五章 逻辑运算和判断选取控制_第1页
第1页 / 共45页
f 第五章 逻辑运算和判断选取控制_第2页
第2页 / 共45页
f 第五章 逻辑运算和判断选取控制_第3页
第3页 / 共45页
点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第五章 选择结构程序设计,一、关系运算符和关系表达式,1,、关系运算符,=,=,!=,优先级相同(,高,),优先级相同(,低,),2,、,优先次序,算术运算符,关系运算符,赋值运算符,二、关系表达式,用关系运算符将两个表达式连接起来的式子,。,例如:,ab,ca+b,ab!=c,a=bc,关系表达式的值,值:真(,1,)、假(,0,),例如:,a=3,b=2,c=1,则:,ab,ab=c,b+cb,f=abc,1,1,0,d=1,f=0,二、逻辑运算符和逻辑表达式,逻辑表达式:,如,(ab) AND,(,xy),(,pascal,),1,、,C,语言逻辑运算符及其优先次序,&:,逻辑与,|,:逻辑或,!,:逻辑非,逻辑运算的真值表,a,b,!a,!b,a&b,a|b,1,1,0,0,1,1,1,0,0,1,0,1,0,1,1,0,0,1,0,0,1,1,0,0,多个逻辑运算符混合时的优先级,!a&b|xy&c,优先级,!(,非) 高,算术运算符,关系运算符,&,和,|,赋值运算符 低,2,逻辑表达式,逻辑表达式,逻辑表达式的值,非零的值为真(,1,),值为,0,为假。,a=4 :,非零的值为真,!,a:,值为,0,a=4,b=5,则,a&b,为,1,,!,a=0,例:求逻辑表达式的值,1,、,4|0|2:,2,、,0&2&6:,运行结果:,1,、值为,1,2,、值为,0,3,逻辑表达式求解,1、a&b&c,a,b,c,0,(假),0,(假),0,(假),0,(假),非,0,(真),非,0,(真),非,0,(真),1,(真),图,5.3,图,5.4,a,b,c,非,0,(真),0,(假),1,(真),0,(假),非,0,(真),非,0,(真),0,(假),2、a|b|c,判断某一年,year,是否闰年,课堂练习:,闰年,(year%4=0&year%100!=0)|(year%400=0),非闰年,(year%4!=0)|(year%100=0&year%400!=0),注意:不同运算符的优先次序,5.3 if,语句,if,语句功能:,用来判断所给定的条件是否满足,根据判定的结果(,1 or 0),决定执行给出的两种操作。,5.3.1 if,语句的三种形式,1 if (,表达式,),语句,if(xy),printf(“%d”,x,);,表达式,语句,假(,0,),真(非,0,),(a),图,5.,。,5,2,if(,表达式,),语句,1,else,语句,2,if(xy),printf(“%d”,x,);,else,printf(“%d”,y,);,表达式,语句,1,语句,2,(b),真,假,3,if(,表达式,1,)语句,1,else,if(,表达式,2,),语句,2,else,if(,表达式,2,),语句,3,else,if(,表达式,m,),语句,m,else,语句,n,例:,if(n500,),cost=0.15;,else if(n300,),cost=0.10; else if(n100,),cost=0.075;,else if(n50,),cost=0.05;,else cost=0.05;,假,表达式,1,假,表达式,2,假,表达式,3,假,表达式,4,语句,1,语句,2,语句,3,语句,4,语句,5,图,5.6,真,真,真,真,说明:,(1),表达式,值为,0,:假,值非,0,:真;,如:,if(3),printf(“ok,”),;,(2) if,、,else,后面无分号,语句后有“;”;,(3) if,、,else,后面可以是复合语句;,例:,if(x%3=0),y=2*x;,printf(“%d”,y,);,else, y=x+1;,printf(“%d”,y,);,例,5.1,输入两个实数,按代数值由大到小的次序输出这两个数,main(),float a,b,t;,scanf(“%f,%f”,&a,&b,);,if(ab: a,和,b,互换,if ac: a,和,c,互换,if bc: c,和,b,互换,互换结果:,abb),t=a;a=b;b=t,;,if (ac),t=a;a=c;c=t;,if(bc),t=b; b=c; c=t;,printf(“%5.2f,%5.2f,%5.2f”,a,b,c);,运行结果:,3,,,7,,,1,1.00,,,3.00,,,7.00,两个,变量,值交,换,5.3.2 if,语句的嵌套,一般形式:,if( ),if( ),语句,1,else,语句,2,else,if( ),语句,1,else,语句,2,内嵌,if,内嵌,if,if( ),if( ),语句,1,else,if( ),语句,1,else,语句,2,内嵌,if,内嵌,if,注意:,if,、,else,的匹配关系,if( ),if( ),语句,1,else,语句,2,例,5.3,有一个函数如下,编程输入,x,输出,y.,开 始,输入,x,x0,Y,N,y=,-,1,N,Y,x=,0,y =,0,y =,1,输入,y,结 束,图,5.7,-1 (x0),y=,程序清单,main(),int,x,y;,scanf(“%d”,&x,);,if(x=0),if(x0) y=1;,else y=0;,else y=-1;,y=1,y=1,y=0,Y,Y,x0,N,x0,N,图,5.8,判断是否正确?,main(),int,x,y;,scanf(“%d”,&x,);,if(x0) y=1;,else y=0;,N,Y,x,0,y =,1,y =,0,x,0,Y,N,y = ,1,框图如何画?,判断是否正确?,main(),int,x,y;,scanf(“%d”,&x,);,if(x=0),if(x0) y=1;,else y=-1;,框图如何画?,y=0,x0,Y,Y,x0,N,y=1,y=1,N,5. 3.3,条件运算符,例:,if(ab),max=a;,else,max=b;,max= (ab)? a:b;,? :,条件运算符,条件表达式一般形式:,表达式,1,?表达式,2,:表达式,3,说明:,执行顺序,优先级,:,高于,=;,结合方向,:,右,-,左,;,使用的条件,:,赋给同一个变量,;,表达式的类型,表达式,1,真(非,0,),假(,0,),条件表达式,取表达式,2,的值,条件表达式,取表达式,3,的值,条件表达式一般形式:,表达式,1,?表达式,2,:表达式,3,表达式的类型,表达式,1,与,2,、,3,可以是不同的类型,x?: a:b,如果,x=0,y=x?: a:b,表达式,2,、,3,可以是不同的类型,xy? 1:1.5,5.4 switch,语句,一般形式,switch,(,表达式), case,常量表达式,1,:语句,1,case,常量表达式,2,:语句,2, ,case,常量表达式,n,:,语句,n,default:,语句,n+1,switch,(,grade,), case A,:,printf(“85100n”);,case B,:,printf(“7084n”);,case C,:,printf(“6069n”);,case D,:,printf,(“60n”);,default:printf(“errorn,”);,说明:,switch,后面的表达式可以为任意类型;,表达式的值与,case,后面的常量表达式的值相匹配;,case,后面的常量表达式的值互不相同;,case,、,default,的顺序无关;,“,case,常量表达式”只起到语句标号的作用,并不判断;,break,语句的作用;,多个,case,可以共享一个语句。,switch,(,grade,), case A,:,printf(“85100n);,break;,case B,:,printf(“7084n);,break;,case C,:,printf(“6069n);,break;,case D,:,printf,(“60n);,break;,default:printf(“errorn,”);,5.5,程序举例,例,5.5,写一个程序,判断某一年是否闰年,Year,被,4,整除,真,假,Year,被,100,整除,真,假,Year,被,400,整除,真,假,leap=1,leap=1,leap=0,leap=0,leap,真,假,输出“闰年”,输出“非闰年”,图,5.13,程序清单,例,5.5,main(),int,year,leap,;,scanf(“%d”,&year,);,if(year%4= =0), if(year%100= =0), if(year%400= =0),leap=1;,else leap=0;,else,leap=1;,else,leap=0;,if(leap,),printf(“%d,is”,year,);,Else,printf(“%d,is,not”,year,);,printf(“a,leap year. n”);,513,if(year%4! =0),leap=0;,else,If (year%100! =0),leap=1;,else if(year%400! =0),leap=0;,else,leap=1;,还可以写成,:,if(year%4= =0 &year%100! =0) |(year%400= =0),leap=1;,else,leap=0;,例,5.6,求,ax,2,+bx+c=0,方程的解。,图,5.14,真,真,真,假,假,假,输出,“,非二次方程,”,输出两个相等实根:,输出两个实根:,x,1,,,x,2,输出两个复根:,p,qi, p,qi,a=0,b,2,4ac=0,b,2,4ac0,计算复根的实部和虚部:实部,虚部,程序清单,# include ,main(),float a,b,c,d,dis,x1,x2,realpart,imagpart;,scanf(“%f,%f,%f”,&a,&b,&c,);,printf(“The,equation”);,if (,fabs(a,)=1e-6),printf,(“is not a quadratic”);,else,disc=b*b-4*a*c;,if (,fabs(disc,)1e-6),x1=(-b+sqrt(disc)/(2*a);,x2=(-b-sqrt(disc)/(2*a);,printf(“has,distinct real roots:%8.4f and 8.4fn”,x1,x2);,else,realpart,=-b/(2*a);,imagpart,=sqrt(-disc)/(2*a);,printf(“has,complex roots:n”);,printf,(“%8.4f+%8.4fin,”,realpart,imagpart);,printf,(“%8.4f-8.4fin”,realpart,imagpart);, ,例,5.7,运输公司对用户计算运费标准如下,:,S250km,没有折扣,250,s, 500 2%,折扣,500,s, 1000 5%,折扣,1000,s, 2000 8%,折扣,2000,s,=,s,15%,折扣,F=p*w*s*(1-d),折扣变化的规律,16,14,12,10,8,6,4,2,0,0 250 500 750 1000 1250 1500 1750 2000 2250 2500 2750 300 0,s,0 1 2 3 4 5 6 7 8 9 10 11 12 c,折扣,d,(,%,),图,5.15,main(),int,c,s;,float p,w,d,f ;,scanf(“%f,%f,%d”,&p,&w,&s,);,if(s,=3000) c=12;,else c=s/250;,程序清单,switch(,c,),case 0 : d=0;break;,case 1 : d=2;break;,case 2 :,case 3 : d=5;break;,case 4 :,case 5 :,case 6 :,case 7 : d=8;break;,case 8 :,case 9 :,case 10 :,case 11 : d=10;break;,case 12 : d=15;break;,f=p*w*s*(1,d/100.0);,printf(“freight,=%15.4f”,f);,课堂练习,main(),int,a,i,;,a=0;,for(i,=1;i5;i+),switch(i,), case 0:,case 3:a+=2;,case 1:,case 2: a+=3;,default:a,+=5;,printf(“a,=%,dn”,a,);,运行结果,:a=31,课堂练习,从键盘出入一个字符,如果是字母进行大小写互换,如果是其它字符原样输出。,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 小学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!