第4章逻辑运算和选择结构 §1关系表达式 §2逻辑表达式 §3逻辑语句 §4用块实现选择结构 2021/2/24
1 2021/2/24 第4章 逻辑运算和选择结构 §1 关系表达式 §2 逻辑表达式 §3 逻辑if语句 §4 用块if实现选择结构
§1关糸表达式(p80-81 2 关系表达式是由关系运算符连接算术量构成的 式子。用来比较两个量的大小,一般形式为: 算术量可以是算术型常量、变量、数组元素、 或算术表达式。 关系运算符有六个: 运算符含义运算符含义 gt.>(大于)ge.≥(大于等于) It.<(小于)e.s(小于等于 eq,=(等于).ne.判(不等于) 2021/2/24
2 2021/2/24 §1 关系表达式(p80-81) 关系表达式是由关系运算符连接算术量构成的 式子。用来比较两个量的大小,一般形式为: 算术量可以是算术型常量、变量、数组元素、 或算术表达式。 关系运算符有六个: 运算符 含义 运算符 含义 .gt. >(大于) .ge. ≥(大于等于) .lt. <(小于) .le. ≤(小于等于) .eq. =(等于) .ne. ≠(不等于)
关系表达式就是对两个算术量进行比较运算,3 结果为逻辑常量true或fase.。当给定的关系成 立时,取值为true.,否则取值为 false.。 a ge. b a2b X+yIt.z-w X+V106 注意:由关系运算符连接算术量构成的表达式 实际上是算术关系表达式。另外,对荫个字符量也 可以进行关系运算,称为字符关系表达式。 51关系表达式 2021/2/24
3 2021/2/24 关系表达式就是对两个算术量进行比较运算, 结果为逻辑常量.true.或.false. 。当给定的关系成 立时,取值为.true. ,否则取值为.false. 。 注意:由关系运算符连接算术量构成的表达式 实际上是算术关系表达式。另外,对两个字符量也 可以进行关系运算,称为字符关系表达式。 §1 关系表达式 a≥b x+y10-6 a.ge.b x+y.lt.z-w mod(m,2).eq.1 abs(f).gt.1e-6
要注意的问题 ◆关系运算符的两侧各有一个英文句号,不要 漏写。 ◆关系表达式的运算顺序:让篁篁术量→将两 边算术量的计算结果转换为同一类型→对算术量 进行比较。 例:x+ygt.mn 令在对实数进行eq、ne运算时,考虑计算机 中实数的近似表示,在实际编程中,建议不要采用 aeqb形式,尽量采用abs(a-b,t1e-6形式。 51关系表达式 2021/2/24
4 2021/2/24 需要注意的问题: ❖ 关系运算符的两侧各有一个英文句号,不要 漏写。 ❖ 关系表达式的运算顺序:计算算术量 将两 边算术量的计算结果转换为同一类型 对算术量 进行比较。 ❖ 在对实数进行.eq.、.ne.运算时,考虑计算机 中实数的近似表示,在实际编程中,建议不要采用 a.eq.b形式,尽量采用abs(a-b).lt.1e-6形式。 §1 关系表达式 例:x+y .gt. m-n
将下面条件写成关系表达式(p96习题一) 5 ①x2y xge.y ② a+b<c+f (a+b).It. (c+f) ③t3≠v-4 (t+3)ne(y-4) ④(3+a)(b+8)+sin45°≤ex4lnx (3+a)*(b+8)+sin(31416/4)le.(exp(x)*4og(x) ⑤X+6y=5X+3y+6 (x+6*y).eq1(5*x+3xy+6) 51关系表达式 2021/2/24
5 2021/2/24 将下面条件写成关系表达式(p96习题一) §1 关系表达式 ① x≥y x.ge.y ② a+b<c+f (a+b).lt.(c+f) ③ t+3≠v-4 (t+3).ne.(v-4) ④ (3+a)(b+8)+sin45o≤ex·4lnx ((3+a)*(b+8)+sin(3.1416/4)).le.(exp(x)*4*log(x)) ⑤ x+6y=5x+3y+6 (x+6*y).eq.(5*x+3*y+6)
§2逻辑表达式(p81-85) 6 由逻辑运算符连接逻辑量构成的式子。其一般 形式为: 1.逻辑量:包括逻辑常量、逻辑变量、关系表 达式 令逻辑常量:true.逻辑真)和 false.(逻辑假)。 令关系表达式:(见上节) ◆逻辑变量:存放逻辑常量的变量。可用逻辑 赋值语句将逻辑常量赋给逻辑变量。 §2逻辑表达式 2021/2/24
6 2021/2/24 由逻辑运算符连接逻辑量构成的式子。其一般 形式为: 1. 逻辑量:包括逻辑常量、逻辑变量、关系表 达式 ❖ 逻辑常量:.true. (逻辑真)和.false.(逻辑假)。 ❖ 关系表达式:(见上节) ❖ 逻辑变量:存放逻辑常量的变量。可用逻辑 赋值语句将逻辑常量赋给逻辑变量。 §2 逻辑表达式(p81-85) §2 逻辑表达式
例如: logical a,b a=, true b=. false 2.逻辑运算符 共有五个逻辑运算符: 运算符含义运算符含义 and.逻辑与qv.逻辑等 or.逻辑或eqv.逻辑不等 not.逻辑非 §2逻辑表达式 2021/2/24
7 2021/2/24 例如: logical a, b a = .true. b = .false. 2. 逻辑运算符 共有五个逻辑运算符: 运算符 含义 运算符 含义 .and. 逻辑与 .eqv. 逻辑等 .or. 逻辑或 .neqv. 逻辑不等 .not. 逻辑非 §2 逻辑表达式
a b nota a and b/ aorb aegv. b a.neqvb d true.true.. false. true..true..true.. false. true. false.. false false.. true. false..true false.true.true..false..true..false..true false.. false. true.. false. .false..true.. false not.:原值取反。 and.:同时为“真”则为“真”,否则为 假 or.:两者之一为“真”则为“真”。 eqv.:两者相同则为“真”,否则为“假 neqv:两者不同则为裹式,否则为“假 2021/2/24
8 2021/2/24 a b .not.a a.and.b a.or.b a.eqv.b a.neqv.b .true. .true. .false .true. .true. .true. .false. .true. .false. .false .false. .true. .false. .true. .false. .true. .true. .false. .true. .false. .true. .false. .false. .true. .false. .false. .true. .false. .not. :原值取反。 .and. :同时为“真”则为“真”,否则为 “假”。 .or. :两者之一为“真”则为“真”。 .eqv. :两者相同则为“真”,否则为“假”。 .neqv. :两者不同则为“真”,否则为“假”。 §2 逻辑表达式
3.逻辑表达式的运算顺序 9 运算类别 运算符 优先级 括号 算术运算*,/ 关系运算 gt, ge.,,t le.,eq,ne not 逻辑运算 and 123456789 or egv.,.negv §2逻辑表达式 2021/2/24
9 2021/2/24 3. 逻辑表达式的运算顺序 §2 逻辑表达式 运算类别 运 算 符 优 先 级 括 号 ( ) 1 算术运算 ** * ,/ +,- 2 3 4 关系运算 .gt. ,.ge. ,.lt. .le. ,.eq. ,.ne. 5 逻辑运算 .not. .and. .or. .eqv. ,.neqv. 6 7 8 9
例:设a=35,b=5.0,c=2.5,d=1.0,求下列 10 逻辑表达式的值: age 0.0. and a+c, gt. b+d. or.. not. true 6.0 6.0 true false false false false §2逻辑表达式 2021/2/24
10 2021/2/24 例:设a=3.5,b=5.0,c=2.5,d=1.0,求下列 逻辑表达式的值: a .ge. 0.0 .and. a+c. gt. b+d .or. .not. .true. 6.0 §2 逻辑表达式 6.0 .true. .false. .false. .false. .false