关系表达式和逻辑表达式.ppt

上传人:rrsccc 文档编号:9041969 上传时间:2021-01-31 格式:PPT 页数:18 大小:1,020KB
返回 下载 相关 举报
关系表达式和逻辑表达式.ppt_第1页
第1页 / 共18页
关系表达式和逻辑表达式.ppt_第2页
第2页 / 共18页
关系表达式和逻辑表达式.ppt_第3页
第3页 / 共18页
关系表达式和逻辑表达式.ppt_第4页
第4页 / 共18页
关系表达式和逻辑表达式.ppt_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《关系表达式和逻辑表达式.ppt》由会员分享,可在线阅读,更多相关《关系表达式和逻辑表达式.ppt(18页珍藏版)》请在三一文库上搜索。

1、C语言程序设计,关系表达式和逻辑表达式,术语“控制流”(Flow Of Control)是指程序语句执行的顺序。除非特别指定,否则所有程序的正常控制流都是顺序的(这意味着每个语句都是顺序执行的,一个接一个地按照它们在程序中的顺序执行)。 选择语句和重复(循环)语句都允许程序员改变控制流的正常顺序,正如它们的名称所暗示的,选择语句提供了从一组设计良好的语句组中选择接下来将要执行的语句的能力;而重复语句提供了转回来重复执行一组语句的能力。 所有的程序都由这这三种(顺序、选择、循环)控制结构构成,这就是结构化程序设计中的一个重要原则。, 控制流(程序流), 顺序结构,顺序流程意味着每个语句都是顺序执

2、行的,一个接一个地按照它们在程序中的顺序执行,且只执行一次。, 选择(分支)结构,选择(分支)结构提供了从一组设计良好的语句组中选择接下来将要执行的语句的能力, 循环结构,循环结构提供了转回来重复执行一组语句的能力。,在我们编写程序的时候,需要控制程序根据条件来选择执行相关的操作。很多时候,需要判断的条件往往不止一个,比如从键盘输入一个数,我们要判断它是否大于0,并且小于10,这里的“大于”,“小于”就是关系运算,“并且”就是逻辑运算。 C语言为我们提供了逻辑运算和关系运算,用它们构成复杂的控制条件,来实现程序的选择结构和循环结构。, 程序设计条件的表示,关系运算和我们数学中的比较运算基本一致

3、,它们用于两个操作数(整数、浮点数、字符数据)的比较。 C语言为我们提供了6种关系运算符:, 关系运算符和关系表达式,关系运算符都双目运算符,满足从左到右的结合律。它们的优先关系如下: 1、关系运算符的优先级要低于算术运算符。比如语句:c=b+2;则先计算 b+2 的值,再和c比较。 2、关系运算符的优先级高于赋值运算符。比如语句“a=bc;”,先进行关系运算“bc”,成立(真),则bc值为1,不成立(假),则bc值为0;然后再做赋值运算,把1或0赋值给a。 3、关系运算符、=、=的优先级要高于=、!=的优先级,同级之间优先级相同。比如语句“ca!=b;”,先计算“ca”,再算“!=”的值,等

4、价于“(ca)!=b”。4、除了数学运算对象之外,还可以使用关系运算符来比较字符数据,char 值将被强制转换成 int 值以进行比较。 5、不能直接使用关系运算符比较字符串。, 关系运算符的运算,关系表达式就是用关系运算符把两个表达式连接起来的式子,它的一般形式是: 表达式1关系运算符表达式2 例如,判断一个学生成绩是否及格。定义变量:score 表示学生成绩,判断“score=60”表达式是否为真,为真其就是1,为假就是0。 当 score = 86,“score=60”为“真”,表达式的值为1; 当 score = 54,“score=60”为“假”,表达式的值为0; 总结来讲,关系表达

5、式的值只有两种可能:关系成立,则关系表达的值为“真”(值为1);关系不成立,则关系表达式的值为“假”(值为0)。在C语言中用非 0 值表达“真”,用 0 表达“假”。, 关系表达式,想要判断整数 sum 的取值是否满足:0sum 100;千万不能写成“0=0 并且 sum=100 来表达。也就是说,除了使用关系表达式表示简单的条件以外,还可以使用逻辑运算与、或、非来创建更为复杂的条件。, 逻辑运算符和逻辑表达式,C语言的逻辑运算符有3种:, 逻辑运算符,逻辑与运算符&是用于两个关系表达式时,只有当每个表达式都为“真”时该条件才为“真”。 逻辑或运算符|也是用于两个表达式的,只要两个表达式至少有

6、一个是“真”,该条件就为“真”。 非运算符!将把表达式更改为它的相反状态,也就是就,如果表达式为“真”,那么它的非运算的值就为“假”;如果表达式开始为“假”,那么它的非运算的值就为“假”。,前面表格中的“ a13 & d20 ” 就是逻辑表达式,逻辑表达式的值取1(真),或者0(假)。 一个逻辑表达式可以包含多个逻辑运算符,它们的优先级顺序是:“!”的优先级最高,“&”次之,“|”的优先级最低。逻辑运算符“&”、“|”的优先级低于所有关系运算符,而“!”的优先级高于所有算术运算符。,逻辑表达式,使用C的关系运算表达式可能会遇到与浮点数(单精度或双精度)相关的微妙的数学精度问题。因为计算机存储这

7、些数据的方式不同,所以应该避免使用关系运算符“=”来衡量浮点数的等同关系,原因是,很多十进制小数(例如:0.1)不能使用有限的位数精确地以二进制表示,因此,要测试这些数字的完全等同关系将会失败。当需要测试非整数值的等同关系时,最好要求运算对象之差的绝对值小于一个非常小的值,因此,对于实际的运算对象,常规表达式 operandOne = operandTwo 应该被下面的条件所取代 fabs(operandOne-operandTwo) EPSILON 其中 EPSILON 是一个被设置为任意可接受的足够小的值(如0.0000001或其他用户选定的值)的命名常量。因此,如果两个运算对象之差小于E

8、PSILON的值,那么这两个运算对象被认为是最基本相等。,数学的精度问题,例: 如果x和y是浮点变量,那么条件 x/y = 0.35 应该以下面的方式来编程: abs(x/y-0.35) 0.0000001 其后面的条件可以确保以二进制非整数数字所带来的少量误差不会影响到测试条件的赋值结果。,数学的精度问题举例,编写用来表示下列条件的关系表达式或逻辑表达式(使用你自己选择的变量名): 一个人的年龄为30岁 age = 30 一个人的体温大于98.6华氏度 heat 98.6 一个人的身高小于6英尺 height 6.0 目前为12月 month = 12 输入的字母为m key = m,编写条

9、件的练习(一), 一个人的年龄为30岁且身高大于6尺 age=30 & height6 语文成绩80分以上或且数学成绩80分以上(含80分) chinese=80 | math=80 目前为1月15日 month=1 & day=15 0 x100 x=0 & x5 | x25 年份为闰年 (year%4=0 & year%100!=0) | year%400=0, 编写条件的练习(二), 整数x大于5 x5 或 x=6 e不等于0(不为空) e!=0 或 e e为0(e为空) e=0 或 !e, 编写条件的练习(三),确定下列表达式的值(假设 a=5,b=2,c=4,d=5) 1、a = 5 1 2、b*d = c*c 0 3、d % b * c 5 | c % b * d 7 1, 求解表达式的值,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1