欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    逻辑运算和判断选取结构.ppt

    • 资源ID:6611782       资源大小:260.50KB        全文页数:41页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    逻辑运算和判断选取结构.ppt

    第4章 逻辑运算和判断选取结构,C 程 序 设 计,谢 军,2,本章教学内容、要求,内容 1.关系运算符和关系表达式;2.逻辑运算符和逻辑表达式;3.if 语句4.switch 语句5.程序举例要求 1.掌握关系表达式与逻辑表达式书写与运用;2.掌握if语句与switch语句的使用;3.能够设计包含顺序结构与选择结构的C程序。,3,重点与难点,重点1.掌握程序的选择结构;2.顺序结构与选择结构的C程序的设计。难点运算符的优先级;程序设计,4,关系运算符和关系表达式,关系运算实际是对两个操作数进行大小等同的比较运算。一关系运算符(六种)及其优先次序(大于)、=(大于或等于)高=(等于)、!=(不等于)低前4种关系运算的优先级相同,后2种也相同;前4种高于后2种优先次序:单目 算术 关系 逻辑 赋值结合性:左结合(双目运算符)例:a a+b 等价于c(a+b)a=b=c 等价于 a=(b=c)ab!=c 等价于(ab)!=c a=bc 等价于 a=(bc),5,关系运算符和关系表达式,一关系表达式什么是关系表达式?用关系运算符将两个表达式(可以是算术表达式或关系表达式,逻辑表达式,赋值表达式,字符表达式)连接起来的式子,为关系表达式。例:a+b b+c;a 3 值为(真)ab 值为(假)a=3;b=2;c=1;d=a b;f=a b c;执行结果 d=1,f=0;因 abc 等价于(ab)c所以:判别式:abc,在C语言中不能简单地用abc表示;需要借助逻辑运算来实现,即:a b&b c,ab即32 为真1,ab为1,c为1,则11为假,6,逻辑运算符和逻辑表达式,一逻辑运算符及优先级!逻辑非(含义NOT)高 高 逻辑与(含义AND)算术运算符|逻辑或(含义OR)低 关系运算符 例:ab&xy&a=b|x=y|!a|ab 赋值运算符 低 真值表:,7,逻辑运算符和逻辑表达式,二逻辑表达式 用逻辑运算符将关系表达式或逻辑量连接起来就是逻辑表达式 逻辑表达式的值是一个逻辑量,即“真”和“假”例:int a=1,b=5;则:!a 的值为0;a&b的 值为1;a|b的值为1。应注意:1.若在一个表达式中的不同位置上出现数值,应区分哪些是作为数值运算或关系运算,哪些是作为逻辑运算的对象2.逻辑运算符两侧的运算对象可为任意类型的数据.例:c&d值为3逻辑表达式求解时,并不是所有的逻辑运算符都被执行,只有在必须执行下一个逻辑运算符才能求出表达式解时,才执行该运符 例:1)a&b&c 2)a|b|c4.&和|的结合性是从左往右,而!是单目运算符,结合性是从右往左5.逻辑表达式一般用来表示并判定一种复杂条件,8,例题,例1:5 3&2|8=a&key=A&key=Z),9,if 语句,一if语句的两种形式1.if(表达式)语句例4-1输入三个数,找出并打印其最小数。分析:设三个数为A、B、C,由键盘读入,我们用一个变量MIN来标识最小数,A、B、C与MIN皆定义为int型变量。每次比较两个数,首先将A赋给MIN,然后比较MIN和B,将小的一个赋给MIN,再把第三个数C与MIN比较,再将小的一个赋给MIN,则最后MIN即为A、B、C中最小数。其流程图见下一页:,10,if 语句,流程图,N-S结构化流程图,11,if 语句,main()/*输入三个数,找出并打印其最小数*/int a,b,c,min;printf(input a,b,c:);scanf(%d%d%d,执行情况如下:RUNinput a,b,c:3 5 2The result is 2,12,if 语句,一if语句的两种形式2.if(表达式)语句1 else 语句2例4-2输入两个整数,输出其中的大数。分析:判别a,b的大小,若a大,则输出a,否则输出b。算法:1)输入a,b 2)若a=b,则输出a 否则输出b,13,if 语句,源程序如下:main()int a,b;printf(input two numbers:);scanf(%d%d,N-S结构化流程图,14,if 语句,二.复合语句if 语句中,有时需要执行的语句不止一条,这就要用到复合语句。复合语句,就是用一对花括号括起来的一条或多条语句,形式如下:语句1;语句2;语句n;无论包括多少条语句,复合语句从逻辑上讲,被看成是一条语句。复合语句在分支结构、循环结构中,使用十分广泛。,15,if 语句,二.复合语句例4-3 读入两个数x、y,将大数存入x,小数存入y。分析:x、y从键盘读入,若x=y,只需顺序打出,否则,应将x,y中的数进行交换,然后输出。两数交换必须使用一个中间变量t,定义三个浮点数x、y、t。算法:1)读入x、y;2)大数存入x,小数存入y;3)输出x、y。第2)步求精:若xy,则交换x与y;再求精,x与y交换:t=xx=yy=t,16,if 语句,N-S结构化流程图,流程图,17,if 语句,#include main()float x,y,t;printf(input x,y:);scanf(%f%f,执行结果:input x,y:43.2 56.7result:56.700 43.200,18,if 语句,二.复合语句例4-4 货物征税问题,价格在万元以上的征5%,5000元以上1万元以下的征3%,1000元以上5000以下的征2%,1000元以下的免税,读入货物价格,计算并输出税金。分析:读入price,计算tax,这是一个较复杂的分支结构程序设计(应注意避免重复征税)。假定货物的价格在1万元以上,征税应分段累计,各段采用不同税率进行征收。算法:若price=10000则 tax=0.05*(price-10000);price=10000;若price=5000则 tax=0.03*(price-5000)+tax;price=5000;若price=1000则 tax=0.02*(price-1000)+tax;price=1000;,19,if 语句,二.复合语句#include main()float price,tax=0;printf(input price:);scanf(%f,运行程序:RUNinput price:15000the tax=480.000,20,if 语句,三、if.else if 语句实际应用中常常面对更多的选择,这时,将if.else 扩展一下,就得到if.else if 结构,其一般形式为:if 语句else if 语句2 else if 语句3 else 语句4,21,if 语句,三、if.else if 语句例4-5判别键盘输入字符的类别。分析:可以根据输入字符的ASCII码来判别类型。由ASCII码表可知ASCII值小于32的为控制字符。在“0”和“9”之间的为数字,在“A”和“Z”之间为大写字母,在“a”和“z”之间为小写字母,其余则为其它字符。算法如下:1)输入字符C。2)若c32,则c为控制字符 否则,若c 在“0”和“9”之间,则c为数字字符 否则,若c 在“A”和“Z”之间,则c为大写英文字母字符 否则,若c 在“a”和“z”之间,则c为小写英文字母字符 否则c为其它字符,22,if 语句,三、if.else if 语句#include main()/*判别键盘输入字符的类别*/char c;printf(input a character:);c=getchar();if(c=0,23,if 语句,四、if 语句的嵌套在一个if 语句中可以又出现另一个i f 语句,这称为i f 语句的嵌套或多重if 语句:if if else 语句2;例4-6计算函数 1 x0 y=0 x=0-1 x 0流程图见右图,源程序见下一页。,24,if 语句,四、if 语句的嵌套源程序如下:main()float x,y;printf(input x:);scanf(%f,N-S结构化流程图,25,if 语句,四、if 语句的嵌套注意:对多重if,最容易犯的错误是if与else 配对错误,例如,写成如下形式:y=0;if(x=0)if(x0)y=1;else y=-1;从缩排上可以看出,作者希望else是与if x=0 配对,但是C语言规定else总是与离它最近的上一个if 配对,结果,上述算法的流程图变成右图,完全违背了设计者的初衷。,26,if 语句,四、if 语句的嵌套改进的办法是使用复合语句,将上述程序段改写如下:y=0;if(x=0)if(x 0)y=1;else y=-1;,27,if 语句,五、在使用if 语句中注意事项:1、注意关系运算符“=”与赋值运算符“=”的区别:例如:if(a=b)语句;/*若a与b相等,则执行后面的语句*/if(a=b)语句;/*将b的值赋给a,若b非0,则执行后面的语句*/2、关键字if后面的表达式可以是变量,例如:if(b)语句;/*若b非0,则执行后面的语句*/3、注意复合语句的使用:在if语句的三种形式中,所有的语句应为单个语句,如果要想在满足条件时执行一组(多个)语句,则必须把这一组语句用 括起来组成一个复合语句。例如:if(xy)t=x;x=y;y=t;,28,if 语句,五、在使用if 语句中注意事项:4、注意if和else的配对问题:else 总是与它前面最近的if配对。main()int a,b;printf(please input A,B:);scanf(%d%d,29,if 语句,六、条件运算符和条件表达式1.条件运算符:?:是 C语言唯一的一个三目运算符。2、条件表达式:e1?e2:e3,其中,e1:条件或称逻辑表达式,当e1为真取e2的值,否则取e3的值作为表达式的值。,30,3、说明:1)条件运算符的优先级高于赋值运算符和逗号(按序求值)运算符 max=(ab)?a:b;与 max=ab?a:b;等价 y=ab?a:(b+1);与 y=ab?a:b+1;等价2)条件运算符的结合性:自右向左例如,a=1,b=2,c=3,d=4,则条件表达式 a b?a:c d?c:d 的值为4即等价于:a b?a:(c d?c:d),if 语句,31,if 语句,4、说明:3)条件表达式不能取代一般的 if 语句,只能取代if 语句中特殊的一种.例:if(a b)printf(%d,a);else printf(%d,b);可用 printf(“%d”,a b?a:b);取代.)条件表达式中,表达式的类型可与表达式及不同,表达式和 表达式的类型也可不同,而条件表达式值的类型取表达式和中的较高者例:int x,y;x?a:b 值为字符型 而 x y?1:1.5 值为实型,32,switch语句,Switch语句是多分支选择语句。一般形式为:switch(表达式)case 常量表达式1:语句1或空;case 常量表达式2:语句2或空;.case 常量表达式n:语句n或空;default:语句n+1或空;,33,switch语句,控制流程图,34,switch语句,说明:1.执行switch语句时,将表达式的值逐个与case后的常量进行比较,若与其中一个相等,则执行该常量下的语句,若不与任何一个常量相等,则执行default 后面的语句。2.switch中表达式与case后的常量可为任何类型3.每一个case后常量表达式的值必须互不相同,否则出现矛盾。4.每个case或default后的语句可以是复合语句,但不需要使用和括起来。.执行完一个case后面语句后,流程控制转移到下一个case 继续执行因此,若想在不同情况下执行不同的语句,必须使用break语句。break语句的功能:将程序流程控制跳出整个switch语句,执行switch语句的下一条语句,35,switch语句,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);6.多个 case 可共用一组执行语句例:switch(i)case 1:case 2:case 3:语句1;break;case 4:case 5:语句2;break;default:语句3;例4-8 输入年份和月份,打印该年、该月有几天。,36,main()/*输入年份和月份,打印该年、该月有几天*/int year,month,day;printf(please input the year number and month number:);scanf(”%d%d,switch语句,37,例4-9 解一元二次方程a x2+b x+c=0,a、b、c 由键盘输入。分析:对系数a、b、c 考虑以下情形1)若a=0:b 0,则 x=-c/b;b=0,则:c=0,则x 无定根;c 0,则x 无解。2)若a 0:b2-4ac 0,有两个不等的实根;b2-4ac=0,有两个相等的实根;b2-4ac 0,有两个共轭复根。,程序举例,38,例4-9 解一元二次方程a x2+b x+c=0,a、b、c 由键盘输入。#include#include main()float a,b,c,delt,x1,x2;double t;printf(please input a,b,c:);scanf(%f%f%f,if(delt=0.0),程序举例,if(delt 0.0)t=sqrt(delt);x1=-0.5*(b+t)/a;x2=-0.5*(b-t)/a;printf(There are two different roots:%f and%fn,x1,x2);else/*delt=0*/printf(There are two equal roots:%fn,-0.5*b/a);else/*delt0*/*end of main*/,39,运行结果如下:RUN please input a,b,c:1 2 3There are two virtual roots:-1.000000+i 1.000000-1.000000-i 1.000000RUN please input a,b,c:2 5 3There are two different roots:-1.500000 and-1.000000RUN please input a,b,c:0 0 3No root!,程序举例,40,小 结,1、关系运算符和关系表达式;2、逻辑运算符和逻辑表达式;3、if 语句;4、switch 语句。重点:掌握选择结构及其程序设计。,41,作 业,书面作业P111.5.1,5,2,5,3 和5.5课外上机作业本章的所有例题,

    注意事项

    本文(逻辑运算和判断选取结构.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开