Fortran逻辑运算和选择结.pptVIP

  • 183
  • 0
  • 约2.97千字
  • 约 25页
  • 2017-02-01 发布于北京
  • 举报
* * * 第八章 常用算法的程序设计举例 第一章 算法 第二章 计算机和计算机程序 第四章 逻辑运算和选择结构 第五章 循环结构的实现 第六章 Fortran的数据结构 第七章 数据的输入、输出 第三章 Fortran语言程序设计初步 一、引言 在FORTRAN77中,用块IF结构来实现选择结构, 其形式为: IF(条件)THEN then 块 ELSE else 块 END IF 例:计算职工工资。正常工资rate (yuan/h),一周超过40 hours时,超过部分按1.5 rate (yuan/h) 。 c Payroll with overtime program payroll read(*,*) rate, hours if(hours.gt.40.0) then regpay=rate*40.0 ovtpay=1.5*rate*(hours-40.0) else regpay=rate*hours ovtpay=0.0 end if pay=regpay+ovtpay write(*,*) rate=, rate, hours=, hours write(*,*) regular pay=, regpay, overtime pay=, ovtpay write(*,*) total pay=, pay end 二、关系表达式 关系表达式是最简单的一种逻辑表达式。 其一般形式为: 算术量 关系运算符 算术量 算术量:数值常数、数值型变量、数值函数、算术表达式。 关系运算符:关系比较符。 FORTRAN中有六种关系运算符 几点注意: 1. 关系运算符字母两侧各有一个句点,不要漏写。 2. 在一个关系表达式中可能包括算术运算符和关系运算符,先进行算术运算,然后进行关系运算。(建议加括号) i+j.ne.m+n 相当于 (i+j).ne.(m+n) 3. 不同类型常变量比较时,遵循低级向高级转化规律。 X.GT.3 4.关系表达式的值不是一个数值,而是逻辑量“真”或“假”。 5.判断实数相等和不等,用.EQ.和.NE.时要特别注意。 (1.0/3.0+1.0/3.0+1.0/3.0).EQ. 1.0 (10.0*0.1).NE. 1.0 A.EQ.B 可改为 ABS(A-B).LT.1E-6 C.NE.D 可改为 ABS(C-D).GT.1E-6 三、逻辑表达式 1. 逻辑常量 FORTRAN只有两个逻辑常量 .TRUE. 表示“真”,即满足逻辑条件 .FALSE. 表示“假”,即不满足逻辑条件 2. 逻辑型变量 Fortran 用LOGICAL语句说明逻辑变量。 logical a, b a=.true. b=(x+y).gt.z 3. 逻辑运算符 4. 逻辑表达式 逻辑量 逻辑运算符 逻辑量 FORTRAN77逻辑量包括: 逻辑常量 逻辑型变量 关系表达式 (a.lt.b).and.(a.gt.c) (x.lt.0.).or.(a.gt.100.) .not.(x.le.0.) (a.gt.b).eqv.(c.gt.d) (l1.lt.0.).neqv..true. 注意:.AND.和.EQV.的区别。 例如,A=3.5, B=5.0, C=2.5, D=1.0 算术运算符的运算对象是数值量,运算结果为数值。 关系运算符的运算对象是数值量,运算结果为逻辑量。 逻辑运算符的运算对象是逻辑量,运算结果仍为逻辑量。 逻辑运算符和算术运算符可以连续用运算符连接运算量,但关系运算符不可以。 逻辑运算符可以写成:(设L1,L2,L3,L4为逻辑变量) L1 .AND. L2 .AND. L3 .AND. L4 算术运算符可以写成:A+B+C+D 但关系运算符不能写成:A .LT. B .LT. C .LT. D 四、用块IF实现选择结构 IF(逻辑表达式)THEN 块1 ELSE 块2 END IF 几点说明: 1. 一个块IF是有若干个语句组成的,其中三条语句均不能单独是使用。 2. 一个块IF必须以块IF语句开始,以END IF语句结束。一个块IF语句必须和一个END IF语句对应。 3. 一个块IF可以不包含ELSE语句和else块,也可以不包含then块。 if(grade.lt.60.) then print *, ’No.’, num print *, ’grade’, grade end if 4. 块IF的嵌套 一个块IF

文档评论(0)

1亿VIP精品文档

相关文档