FORTRAN90第二章 选择结构程序设计PPT教学课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2020/12/10
14
§2.2.2.1 块IF的几种形式
因各个块都可省略,块IF常以较简单的形式出现
形式一:只有IF块 IF(E) THEN
真
E假
IF块
一条或多条执行语句
END IF
形式二:只有ELSE块 IF(E) THEN ELSE
一条或多条执行语句 ENDIF
2020/12/10
真E假
ELSE块
FORTRAN用五种逻辑运算符表示布尔运算:
.NOT.逻辑非 .AND.逻辑与 .OR.逻辑或
.EQV.逻辑等 .NEQV.逻辑不等
.NEQV.也可用 .XOR.表示。
布尔运算按照数学上的规定进行。要在理解的基
2020础/12/上10 掌握逻辑运算的“真值表”
5Βιβλιοθήκη Baidu
逻辑表达式的格式: E1逻辑运算符 E2 E1与E2为逻辑型的量,可以是: 逻辑变量、逻辑常量、关系表达式、逻辑表达式、 整型量 逻辑表达式的值也是逻辑量:真或假
…… …… ELSE
一条或多条执行语句 ENDIF
IF
假 真E
E
IF块
真
ELSEIF块
假 假
E
真 ELSE块
ELSEIF块
2020/12/10
EndIf
13
块if语句和end if 语句分别标志块IF的开始和结束。 每个块IF都有且仅有一条块if语句、end if 语句
块IF中每个块都可以省略,表示那种情况下什么也 不做。
7
关系表达式不可连写:A<B≤C 不能写成 A.LT.B.LE.C 须用逻辑表达式A.LT.B.AND.B.LE.C
2020/12/10
8
§2.2块IF结构与IF语句
FORTRAN 90有三种方法实现选择结构:IF语 句、块IF结构和CASE结构。
§4.2.1逻辑IF语句
§4.2.2 块IF结构
每个块IF至多有一条ELSE语句和一个ELSE块。 没有ELSE块的时候,ELSE语句可有可无。
一个块IF中可以没有也可以有一条或多条Else if语 句,省略ELSEIF块时,Else if语句可有可无。
被省略的块也可以理解为空块。
块IF中最多只有一个块被执行,在省略ELSE语句 的情况下,有可能什么也不做。
ELSE(ELSE语句) 一条或多条执行语句(ELSE块)
ENDIF(ENDIF语句)
N-S 图为:
真
E
假
IF块 ELSE块
E
真
假
THEN 块
ELSE 块
2020/12/10
12
§2.2.2 块IF
IF(E) THEN 一条或多条执行语句
ELSEIF(E)THEN 一条或多条执行语句
ELSEIF(E)THEN 一条或多条执行语句
五种逻辑运算符中,逻辑非、逻辑与、逻辑或是 基本的。其它两种可以由它们组合得到,例如: A.EQV.B 等价于(注意逻辑运算符两边小圆点)
A.AND.B .OR. .NOT.A.AND..NOT.B A.NEQV.B 等价于 A.AND..NOT.B .OR. .NOT.A.AND.B
2020/12/10
2020/12/10
10
例如求函数
X
X<0
Y=
X+5
X≥0
IF(X<0)Y=X
Y=X
也可写为
IF(X>=0)Y=X+5
IF(X>=0)Y=X+5
而
IF(X>=0)Y=X+5 是错误的.
Y=X
2020/12/10
11
§2.2.2 块IF
IF(E) THEN(块IF语句) 一条或多条执行语句(THEN块)
2020/12/10
9
§2.2.1 逻辑IF语句
逻辑IF语句也称为行IF语句。 格式: IF (E) 可执行语句
例:IF(X>0) PRINT *, X IF(X>0.and.Y>0) PRINT *,‘第一象限’
逻辑IF语句本身仅仅是一条语句,当条件为真时,也 只执行一条语句,而不可能执行多条语句,与下面要 介绍的块IF有明显的区别。
E1与E2为算术量或字符型的量
关系表达式的值是逻辑量:真或假
2020/12/10
3
算术运算符的优先级别高于关系运算符: 3+5.GT.SQRT(49.0)-3 =8.GT.4,真
实数的运算与存储都有误差,对实数进行==或/= 运算时要特别当心。一般用两者之差的绝对值作 为判断的依据。
用ABS(A-B)<1E-6来代替A==B 用ABS(A-B)>1E-6来代替A/=B 对于整型数,可直接用==,/=来判断.
2020/12/10
2
§2.1.1 关系表达式
算术量A与B之间存在六种关系: A>B A≥B A≠B A=B A≤B A<B FORTRAN用六种关系运算符表示它们:
>(.GT.)表示> >=(.GE.)表示≥ /=(.NE.)表示≠ ==(.EQ.)表示= <=(.LE.)表示≤ <(.LT.)表示< ()中是早期版本的写法,不提倡使用。 格式: E1关系运算符 E2
逻辑运算符优先级别: .NOT.高于.AND.高于.OR.高于.EQV.和 .NEQV.
逻辑表达式运算次序: 括号>函数>算术表达式>关系表达式>逻辑运算 同一级别的运算,从左至右进行
2020/12/10
6
当逻辑运算符作用于整型量时,执行整数的按位 操作,结果是一个整数而不是逻辑型数据。
3.XOR.5=6 3.and.5 = 5 3.or.5=7
2020/12/10
4
§2.1.2 逻辑表达式
逻辑型变量:可以将关系表达式的结果赋值给一 个变量,该变量的值只能是真或假,类型是逻辑型
LOGICAL A,B,L1
A=3+5.GT.SQRT(49.0)-3 逻辑赋值语句
判断几个条件是否同时满足,数学上可以用布尔 运算,FORTRAN用逻辑表达式表示。
§2 选择结构程序设计
§2.1 关系表达式与逻辑表达式 §2.2 块IF结构与IF语句 §2.3 CASE结构 §2.4 选择结构程序设计举例 §2.5 小结
2020/12/10
1
§2.1关系表达式与逻辑表达式
算法中经常要根据某种逻辑判断的结果 来决定下一个步骤应该做什么。这就是带分 支选择的算法。选择结构是结构化算法中一 种基本结构。 实现选择结构的前提是进行关系运算和逻辑 判断。
15
形式二实际是形式一的变种
IF(.NOT.E) THEN
.NOT.E
一条或多条执行语句 ENDIF
THEN块真
假
2020/12/10
16
§2.2.2.2 块IF编程例题
2020/12/10
17
例:输入三条边的长度,计算三角形面积。