1 / 26

C 语言程序设计

C 语言程序设计. 目 录. 3. 3. 关系运算与关系表达式. 1. 4. 逻辑运算与逻辑表达式. 条件运算符和条件表达式. 2. 3. 归纳与提高. 关系运算与关系表达式. 问题 通过前一章的学习,我们对于一般的计算问题可以用 C 程序解决了,但这里有个问题不能用前一章的语句解决。 问题描述 一堆苹果需要分等级,其原则为:单个苹果超过 100 克的为特级,单个苹果在 80--99 克的为一级,其余为普通级。. 关系运算与关系表达式. 判断特级苹果的问题是:对单个苹果的重量进行判断,不是计算, 其结果为:达到特级标准

Download Presentation

C 语言程序设计

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. C语言程序设计

  2. 目 录 3 3 关系运算与关系表达式 1 4 逻辑运算与逻辑表达式 条件运算符和条件表达式 2 3 归纳与提高

  3. 关系运算与关系表达式 • 问题 通过前一章的学习,我们对于一般的计算问题可以用C程序解决了,但这里有个问题不能用前一章的语句解决。 • 问题描述 一堆苹果需要分等级,其原则为:单个苹果超过100克的为特级,单个苹果在80--99克的为一级,其余为普通级。

  4. 关系运算与关系表达式 • 判断特级苹果的问题是:对单个苹果的重量进行判断,不是计算, 其结果为:达到特级标准 未达到特级标准 解决此类问题,引入关系运算

  5. 关系运算与关系表达式 在实际问题中,经常会对两个对象进行比较,比如说小张比小王高,人的体温如果高于39度就是高热等。为了描述两个对象的关系,C语言提供了关系运算符。关系运算符与参加关系运算的数据构成了关系表达式。例如:小张身高用变量zsl表示,小王身高用变量wsl表示,小张比小王高则可用表达式:zsl>wsl 表示。 C语言关系表达式的格式如下: 运算对象 关系运算符 运算对象

  6. 关系运算与关系表达式

  7. 练习 计算以下表达式的值。设int a=1,b=2,c=3; (a<0 ) b<=0 (a+b!=c)   a<=0 c (a+b)+c-1    b-c • 1/2 *(a+b+c) •  b%2 • c>b • b>a • (x=a) • (y=b) • 1+a==b f t f f t f t t f t t t t t

  8. 逻辑运算与逻辑表达式 • 判断特级苹果的问题用关系表达式能表示,但判断一级苹果的问题呢? • 99>=x>80? 当x为98,则99>x为T,值为1 • 1>80为F,值为0 • 判断结果:此苹果非一级苹果 • 结果明显出错,分析原因99>=x>80表达式错

  9. 逻辑运算与逻辑表达式 • 如果需要表示变量x的取值范围为:10—100,你一定会写成:10<x<100,这是错误的,因为,计算机对关系表达式10<x<100的执行顺序为:先判断10<x,如果x=5,则10<x的运算结果为:0(关系不成立); • 如果x=15,则10<x的运算结果为:1(关系成立);再将10<x的运算结果与100比较,即:可以认为:10<x的结果存入中间虚拟变量vx中,执行vx<100的运算,从上述分析可见, • vx的取值有2种可能即:0或1,0<100的运算结果为:1(关系成立);1<100的运算结果为:1(关系成立);也就是说,无论x的取值是否大于10,表达式10<x<100的运算结果为:1。选用何种表达式解决上述问题呢?

  10. 逻辑运算与逻辑表达式 • 10<x&& x <100表示变量x的取值范围为:10—100。该表达式中引入了逻辑运算符“与(&&)”运算。 • 99>=x>80应写成: 80<x&& x <=99

  11. 逻辑运算与逻辑表达式 1、逻辑与(&&) 逻辑与的运算意义

  12. 逻辑运算与逻辑表达式 图中:A——表示开关A合上;B——表示开关B合上;A&&B——表示灯亮; • A B A&&B1 1 11 0 00 1 00 0 0 其中:1表示真,0表示假。

  13. 逻辑运算与逻辑表达式 2、逻辑或(||) • 逻辑或的运算意义

  14. 逻辑运算与逻辑表达式 图中:A——表示开关A合上;B——表示开关B合上;A||B——表示灯亮; • A B A||B1 1 11 0 10 1 10 0 0 其中:1表示真,0表示假。

  15. 逻辑运算与逻辑表达式 3、逻辑非(!) 两队比赛足球,变量A表示A队到场,!A表示A队不到场,变量B表示B队到场,!B表示B队不到场。这场球赛能够正常举行的条件是:两队都到场。假定“能赛成”用逻辑变量C表示,则 C = A&&B 赛不成,则用!C表示,让D = !C,D表示赛不成,则 D=!A||!B。 理解为A不到场或B不到场,球赛无法进行。

  16. 逻辑运算与逻辑表达式

  17. 逻辑运算与逻辑表达式 • 由逻辑运算符连接而成的表达式即为逻辑表达式。逻辑表达式的结果为:0或1。应注意逻辑运算符&&、||的短路效应,即:对于||逻辑或运算,形如a||b,如果a成立的话,就不会再判断b是否成立,逻辑或的运算含义表明两者有一个成立,表达式就成立。如果a不成立才会去执行b; • 对于&&逻辑与运算,形如a&&b,如果a不成立,就不会再执行b,逻辑与的运算含义表明a不成立,表达式就不成立。如果a成立才会判断b的。

  18. 逻辑运算与逻辑表达式 例如: int x=-1,y=-1,z=-1,w; w=++x&&++y||++z; printf(“%d, %d, %d\n”,x,y,z); 运行后结果为“0, -1, 0”,即变量y的值没有发生变化。

  19. 练习 计算以下表达式的值。设int a=1,b=2,c=3; (1)    !(a<0 || b<=0) && !(a+b!=c) (2)    !a<=0 || c && !(a+b)+c-1 (3)    b-c && 1/2 *(a+b+c) (4)    b%2 && c>b && b>a (5)    !(x=a) && (y=b) && 1+a==b 1 1 1 0 0

  20. 练习 • 将一个文字命题写成关系、逻辑表达式是编写程序的首要问题,例如:判断字符变量ch的值是否为英文的大写字母’A’~’Z’中的某一个,应该写成: • (‘A’<=ch)&&(ch<=’Z’)

  21. 练习 • A说B说谎,B说C说谎问题用逻辑表达式表示则为: • 用逻辑表达式表示:A说的是真话,A=1,A说谎,A=0; • A说B说谎,表示:aspeake=!B • B说C说谎,表示:bspeake=!C • C说A和B都说谎,表示:cspeake=!A&&!B • 分析:假设A说的是真话,则!B为1,!C为0,C为1,而 !A为0(因为A为1,所以!A为0)!A&&!B为0,则!A&&!B与C的值不相同,得出假设错误; • 假设A说的是谎话,!B为0,B为1,!C为1,C为0,!A&&!B为0,则!A&&!B与C的值相同,得出假设成立。

  22. 条件运算符和条件表达式 如果是一个简单的分段函数,如: 当x>10,y的值为600; 当x<=10,y的值为900; 解决同类问题,则不需要使用新的语句,可以通过新的运算完成,即:条件运算。 条件运算符:? : 条件表达式的一般形式:表达式1?表达式2:表达式3 如: y= (x>10)?600:900;

  23. 条件运算符和条件表达式 苹果问题 y= (x>=100)?0: (( x>=80)&& ( x<=99))? 1:2;

  24. 条件运算符和条件表达式 • 一般而言,表达式1为条件表达式,当其成立时,将表达式2的值作为整个表达式的值,不再计算表达式3的值;否则取表达式3的值作为整个表达式的结果,而不计算表达式2的值。 • 条件运算符的优先级比关系运算符、算术运算符、逻辑运算符都低,但它优先于赋值运算符。 • 如果有以下条件表达式:a>b?a:c>d?c:d,则相当于执行a>b?a:(c>d?c:d)

  25. 归纳与提高 知识点: 关系运算用于比较 逻辑运算用于多个比较的组合 条件运算判断后进行相应处理

  26. 谢谢

More Related