Fortran逻辑运算和选择结构

合集下载

FORTRAN知识点总结

FORTRAN知识点总结

F O R T R A N第2章FORTRAN90基础知识:程序单元的概念:fortran90程序是一种分块形式的程序,整个程序由若干程序单元块组成。

每个程序只有一个主程序单元。

各单元体的程序体形式上相同。

程序单元可以是主程序、子程序(外部过程或内部过程)、模块MODULE (供其他程序单元引用即把该程序单元内的全部语句复制到程序单元中)或块数据程序单元BLOCK 。

语言元素:指在程序设计中用到的基本成分,如字符集、常量、变量、记号(标号、关键字、名字、常数、运算符和定界符)以及其他的基本结构等。

字符集:英文字母、阿拉伯数字、下划线、21个特殊字符($和?没有规定用法)。

数据结构:整型INTEGER (34-2下划线后面是种别参数),n 位字长的计算机的数据表示范围一般为12~211-+---n n ,种别参数由内在询问函数KIND 送回,种别值提供的最小范围由内在函数SELECTED-INT-KIND 送回,表示十进制幂的范围由内在函数RANGE 送回;实型REAL ,小数形式和指数形式;复型COMPLEX (种别类型参数值取实部与虚部中较大者);字符型CHARACTER,由一对单撇号或双撇号之间的字符序列组成;逻辑型LOGICAL。

派生数据类型TYPE;数组INTEGER,DIMENSION(1,50)::A,可直接对数组元素进行运算如3*A,SQRT(A);字符子串,在字符串CHARACTER(LEN=80)::ROW中,ROW(1:3)就表示字符串ROW中第1到第3个元素组成的子串。

变量名的命名规则:不能超过31个字符;组成成分是字母、数字、下划线;第一个字符必须是字母。

第3章基本语句:类型说明语句:类型说明(种别说明),属性说明::变量名表尽量避免把两个实数作相等或不相等的比较。

淘汰隐式说明IMPLICIT NONE种别说明:种别参数即对可移植数据精度和范围进行选择的机制KIND(X) 返回变元X的种别参数值SELECTED-REAL-KIND(n,m) 产生一个种别值,它表示某一精度和范围。

FORTRAN90第二章 选择结构程序设计PPT教学课件

FORTRAN90第二章 选择结构程序设计PPT教学课件
五种逻辑运算符中,逻辑非、逻辑与、逻辑或是 基本的。其它两种可以由它们组合得到,例如: 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
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
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块)
…… …… ELSE
一条或多条执行语句 ENDIFIFFra bibliotek假 真E
E
IF块

ELSEIF块
假 假
E
真 ELSE块
ELSEIF块

Fortran语言基本语法

Fortran语言基本语法

Fortran语⾔基本语法a、Fortran 之基本规定:在Fortran的规定中,程序的开始需先宣告变量形式,接着才能⽤这些变量来写程序内容,再整个程序中的第⼀⾏必须空⽩,除⾮键⼊英⽂字母c或*⽤以表⽰那⼀列为说明项⽽⾮实际之计算式⼦。

第⼆⾏⾄第五⾏为地址⾏,可⽤数字标⽰其地址,⽤以执⾏程序时控制之⽤。

第六⾏⽤以填⼊⼀个⾮零的数字或字母表⽰连结上⼀列的式⼦。

第7⾏⾄72⾏则为程序主体之所在,若不⼩⼼在72⾏之后键⼊程序Fortran将不于理会。

再程序的最后⼀列⽤ end命令告知程序终了。

b、变量(Variable)Fortran语法中的变量相当于函数上变量,但其种类则更多,举凡复数(complex)、整数(integer)、实数(real)、逻辑(logical)和字符串(character)等等。

对于变量的规定是变量的第⼀个字母为英⽂字母,其长度最长为6个字,除刚刚说的第⼀个字之外,其余的可为数字或字母,以下为⼏个简单范例: Integer count,pg1real time,po2pc、运算符号与内定函数:Fortran 基本的运算符号如下:+加法;-减法;*乘法;/ 除法**平⽅;**(n) n次⽅除了上列之基本运算符号之外,数值计算上常⽤之函数如三⾓等等亦以写成内定含式,常⽤的以下⼏项:log 对数函数;exp 指数函数;sin、cos、tan、cot、sec和csc等三⾓函数;abs 绝对值;asin、acos、atan、acot、asec和acsc等反三⾓函数。

D、控制结构:结构化Fortran有⼀些控制的结构,关系控制即是其中之⼀种,⽤以⽐较两变量之间关系,包含有:.lt. 表⽰⼩于.gt. 表⽰⼤于.eq. 表⽰等于.le. 表⽰⼩于或等于.ge. 表⽰⼤于或等于.ne. 表⽰不等于另⼀种重要的控制为逻辑控制,包含有:.not. .not. p => 若p为⾮真则为真.and. p .and. q => p和q为真则为真.or. p .or. q => p或q其⼀为真则为真.eqv. p .eqv. q => p和q同为真或同为⾮真则为真.neqv. p .neqv. q => p或q之中⼀为真⼀为⾮真则为真e、输⼊与输出结构:> Fortran 经常会有⼀些数值需要输⼊或计算的值需要输出,这时 Fortran 便提供了⼀些格式码好让使⽤者将欲输⼊或输出的数值针对其变量的特性作较佳的安排设计,兹举例如下,其中输出之资料格式完全相同:a、write(*,10) i,j,k10 format (1x,2I5,I3)b、assign 10 to ifmt10 format (1x,2I5,I3)write (*,ifmt) i,j,kc、write (*,'(1x,2I5,I3)') i,j,kd、character*11 fmtchfmtch='(1x,2I5,I3)'write (*,fmtch) i,j,k其中X表⽰空格之意,1x即是空⼀格, write为输出的指令,若改为 read 则为输⼊指令,I为整数的格式码, 2I5 表⽰输出的总位数为五,⽽这样的格式重复两次,其余尚有不同之各种格式码,常⽤的有:1. F 格式码,⽤于实数变量,其⼀般型态为 rFw.d ,其中F表实数,r为重复次数,w为总位数,⽽d为⼩数字数。

FORTRAN_90_复习

FORTRAN_90_复习

FORTRAN 90 基础知识第三章基本知识,如:字符集、名称、关键字、程序单元、书写格式、数据类型。

名称:①名称只能由英文字母、数字、下划线符“_”和美元符号“$”组成。

②名称第一个字符必须是英文字母。

③名称不能超过31个字符。

合法名称: Number,Max, PrOgRaM, FIND_IT, read, x, a3b7, china, total, x$y$z 。

非法名称:X-Y-Z, 8q, a.5, _wrong,U.S.A., DR.WANG,$abcd,r a t e 。

书写格式:自由格式,固定格式3个通用标志符:注释标志符“!”、语句分隔标志符“;”和续行标志符“&”。

数据类型第四章 内部数据类型常量和变量:语法描述; 精度(kind 值)和取值范围 整型常量:整数(10进制)。

实型常量:实数。

复型常量:复数。

字符型常量:字符串。

逻辑型常量:逻辑值,布尔值。

.true. .false.变量的申明。

表达式算术表达式:算术运算符的优先级和结合规则;操作数的类型转换FORTRAN 90 数据类型内部数据类型派生类型(记录类型)数组类型指针类型 公用区类型类型整数类型 实数类型 复数类型字符类型 逻辑类型运算符 含义 结合顺序 优先级 运算速度 说明 ( ) 最高 ** 乘方 左←右 高 慢 两个**之间不能出现空格 * / 乘 除 左→右 ↑ ↑ 数学符号× ÷为非法字符,用*和/代替 + - 加(二元加) 减(二元减) 左→右 ↓ ↓ + - 正(一元加) 负(一元减) 低 快不同优先级运算符,“先高后低”结合先乘方、后乘除、再加减,括号最优先相同优先级运算符,“从左向右”结合,如9-4+12/3*2**3 = ?乘方算符,“从右向左”结合,如2**3**2 = ?尽量多地使用( ),以使意义明确,避免出现歧义和产生错误转换规则“由低级向高级转换”①数据类型和KIND相同的两个算术操作数,计算时不转换,运算结果的类型和KIND与原数据相同。

fortran选择结构及基本语句

fortran选择结构及基本语句

CASE(80:89)
WRITE(*,*)‘该学生成绩为:良。’
CASE(70:79)
WRITE(*,*)‘该学生成绩为:中。’
CASE(60:69)
WRITE(*,*)‘该学生成绩为:及格。’
CASE(0:59)
WRITE(*,*)‘该学生成绩为:不及格。’
END SELECT
CASE DEFAULT
基本块IF语句功能:先求e值,为真,执行<THEN语句体>, 为假,执行<ELSE语句体>。
<THEN语句体>和<ELSE语句体>为一程序段(语句序列)。
长安大学地学信息技术研究所
09/10学年第一学期 6
选择结构有三种类型:双边结构、单边结构1、单边结构2。
双边选择结构
IF (e) THEN
真 THEN语句体
IF (S<70) THEN
write(*,*)‘该学生成绩为: 优。’
WRITE(*,*)‘该学生成绩为:及格。’ END IF
ELSE
END IF
IF (S<80) THEN
END IF
WRITE(*,*)‘该学生成绩为:中。E’ND IF
END
长安大学地学信息技术研究所
09/10学年第一学期 12
READ (*,*)i,j IF(i<j) WRITE(*,*)I WRITE(*,*)‘逻辑IF语句执行结束。’ END
输入:125,200 输出:125
逻辑IF语句执行结束。
输入:200,125 输出:逻辑IF语句结束。
长安大学地学信息技术研究所
09/10学年第一学期 3
逻辑IF语句中的可执行语句S只允许是一条语句。

循环结构和选择结构的FORTRAN语言和C语言实现

循环结构和选择结构的FORTRAN语言和C语言实现

循环结构和选择结构的FORTRAN语言和C语言实现
作者:马思沅
来源:《电脑知识与技术》2017年第23期
摘要:FORTB AN语言是第一个面向过程的高级程序设计语言,主要用于科学计算的仿真实现,也可应用于数据处理。

c语言是一种使用比较广泛的计算机程序设计语言,它既具有高级程序语言的易读性特点,又具有汇编语言执行效率较高的特点。

该文针对循环结构和选择结构这两种计算机程序中最基本的流程结构,分别采用FORTRAN语言和c语言实现,并给出了两个实例的源代码。

关键词:FORTRAN;C;循环结构;选择结构。

FORTRAN语言第3章(共8章)

FORTRAN语言第3章(共8章)

会再去执行。这一点同后面的SELECT CASE完
全不同。也就是说IF结构中的选择条件是允许重 叠的,但SELECT CASE语句不允许选择条件有 重叠。
第二节 块IF选择结构


1.ELSEIF语句其作用相当于将ELSE语句与其 后的ELSE块中的块IF语句连接在一起。 2.同块IF语句不同, ELSEIF语句与ENDIF语 句间不存在一一对应关系。 3.在这种IF结构中,允许使用多个ELSEIF语 句。在最后一个ELSEIF语句之后,可以有与 之对应的ELSE语句,也可以没有。当有 ELSE语句在最后时,表示如果前面所有的条 件都不成立,执行其后的ELSE块;如果没有 ELSE块,则表示如果前面所有的条件都不成 立时,流程转到ENDIF语句。
条 件 1 假 条 件 2 真 条 件 ...... 1 块 2 块 ...... 块 n 块 n +1 真 假 条 件 n 真 假 假
EN D IF 的 后 继 语 句
第二节 块IF选择结构
多重判断的IF结构中,判断条件的成立具有
唯一性。即一旦有判断条件成立,就去执行相应
的模块,如果其后仍有判断条件是成立的,也不
一个嵌套分支结构可使用若干个块 IF语句,相应就有若干个ENDIF语句,
每个块IF语句还可能使用一些ELSE
IF语句、ELSE语句,这就可能构成一 个复杂的IF-ELSEIF-THEN-ELSE结构。
当嵌套层次过多时,往往一时难以找
到同一层的块IF中的各语句,一般可 按以下方法确定: (1)从最内层的块IF语句开始,向下找到离它最近的ENDIF 语句,将它们用线括起来,这就是同一层次的块IF。 (2)由内向外重复这一个过程,直到遇见最外层块IF语句和 ENDIF语句为止。 (3)在书写嵌套分支结构时采取缩进方式进行程序书写,程 序的嵌套层次就容易确定。

Fortran77教程-4逻辑运算和选择结构

Fortran77教程-4逻辑运算和选择结构

2
例:计算职工工资。正常工资rate (yuan/h),一周超过 40 hours时,超过部分按1.5 rate (yuan/h) 。
3
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
成绩分级 A : ≥80 B : ≥70且<80 C : ≥60且<70 D : <60
15
给a, b, c三个数排序,要求从小到大输出
16
read(*,*) a,b,c if(a.le.b) then else t=a a=b b=t end if if(b.le.c) then else t=b b=c c=t if(a.le.b) then else t=a a=b b=t end if end if write(*,*) a,b,c end
第一章 算法 第二章 计算机和计算机程序 第三章 Fortran语言程序设计初步 第四章 逻辑运算和选择结构 第五章 循环结构的实现 第六章 Fortran的数据结构 第七章 数据的输入、输出 第八章 常用算法的程序设计举例

fortran知识点总结

fortran知识点总结

fortran知识点总结一、语法结构Fortran语言的语法结构遵循一套严格的规则。

下面是一些常见的语法结构:1. 程序单元:Fortran程序由一个或多个程序单元组成。

每个程序单元由一个或多个声明和执行语句组成。

2. 注释:在Fortran中,注释可以用来提高代码的可读性。

注释以感叹号(!)开头,直到行末为止。

3. 标识符:Fortran中的标识符由字母、数字和下划线组成,且区分大小写。

标识符用于表示变量、函数、子程序等。

4. 变量声明:在Fortran中,变量声明使用关键字“REAL”、“INTEGER”、“LOGICAL”等来指定变量的数据类型。

例如,REAL :: x 表示声明了一个实数类型的变量x。

5. 程序控制结构:Fortran提供了多种控制结构,包括顺序结构、条件结构和循环结构。

这些结构提供了程序的流程控制和逻辑控制。

6. 函数和子程序:Fortran支持函数和子程序的定义和调用。

函数和子程序可以帮助程序员组织和重用代码。

7. 模块和接口:Fortran中的模块和接口提供了一种组织代码的方式。

模块可以包含多个子程序和全局变量,接口可以用来定义子程序的接口。

二、数据类型在Fortran中,数据类型用于表示数据的类型和大小。

Fortran提供了多种数据类型,包括整数、实数、逻辑值、字符、复数等。

下面是一些常见的数据类型:1. 整数:整数类型用于表示整数值。

在Fortran中,整数类型包括“INTEGER”、“LOGICAL” 和“CHARACTER”类型。

2. 实数:实数类型用于表示实数值。

在Fortran中,实数类型包括“REAL”和“COMPLEX”类型。

REAL类型用于表示实数,COMPLEX类型用于表示复数。

3. 字符:字符类型用于表示字符值。

在Fortran中,字符类型使用CHARACTER关键字进行声明。

字符类型可以表示单个字符或者字符数组。

4. 数组:数组类型用于表示多个相同类型的数据。

Fortran教程第三章 选择结构程序设计

Fortran教程第三章 选择结构程序设计

所作的处理在其后的块语句中完成。
(3)case default与其后的默认块,是缺省情况,可有可无。
如果加入它,则代表前面所有选择表达式的值皆非的情况下 执行该块。 (4)end select为case结构结束的标志。

例3.3、设计程序,完成小学加、减、乘、除四则运算, 即输入两个数,再输入一个运算符号,做对应的运算,
program exam
implicit none integer n
read *, n
if ( mod(n,3)==0.and.mod(n,5)==0 ) then print *,’该数能同时被3和5整除。’
else
print *,’该数不能同时被3和5整除。’ endif end
块IF结构的组成
program exam3 real g read *,g if (g>=90) then print *,“优秀”
else if( g>=80) then
print *,"良好" else if( g>=60) then
print *, "通过"
else print *,"不及格" endif end
FORTRAN所用的基本逻辑运算有:
.AND.
.EQV.
.OR.
.NEQV.
.NOT.
.XOR.

(1)逻辑与,运算符.AND. 当连接的两个逻辑操作数为真时, 逻辑表达式取值为真,只要一个为假则取假。例如数学表达式 1<X<2,在FORTRAN中应写成逻辑表达式:X>1.AND.X<2。

(2)逻辑或,运算符为.OR. 连接的两个逻辑操作数只要有一个 为真时,逻辑表达式取值为真,全部为假时才为假。例如|X|>5,

(完整)Fortran经典编程语言笔记(你值得拥有)

(完整)Fortran经典编程语言笔记(你值得拥有)

FORTRAN笔记2014.10.07目录第七讲_FORTRAN的基本知识.ppt (2)FORTRAN语言程序设计初步 (2)FORTRAN源程序的书写格式(以77为例) (2)变量 (2)变量类型 (2)算术运算符和运算优先级 (3)赋值语句 (3)参数语句(PARAMETER语句) (3)END语句 (3)PAUSE语句 (3)逻辑运算和选择结构 (4)关系表达式 (4)FORTRAN中数组的定义及使用 (4)其他 (5)1. fortran语言定义CHARACTER*6 TTL(14,3),CNAM(400)是什么意思? (5)2. fortran里character*10 是什么意思 (5)3. Fortran中kind是什么函数? (5)第七讲_FORTRAN的基本知识.pptFORTRAN语言程序设计初步FORTRAN是Formula Translation的缩写,意为“公式翻译”,它是为科学、工程问题或企事业管理中的那些能够用数学公式表达的问题而设计的,其数值计算的功能较强。

常用的是FORTRAN77和FORTRAN90两种标准。

1、一个程序由若干个程序单位组成。

主程序和每一个子程序分别是一个独立的程序单位。

2、每一个程序单位都是以“END”结束的。

3、一个程序单位包括若干行。

1)语句行。

由一个FORTRAN语句组成。

2)非语句行,即注释行。

4、FORTRAN程序中的语句可以没有标号,也可以有标号,根据需要而定。

标号的作用是标志一个语句以便被其他语句引用。

5、一个程序单位中各类语句的位置是有一定规定的。

6、FORTRAN源程序必须按一定的格式书写。

FORTRAN源程序的书写格式(以77为例)每一行有80列,分别如下:1、第1-5列为标号区。

一行中第一列为“C”或“*”,该行即被认为是注释行。

2、第6列为“续行标志区”,如果在一行的第6列上写一个非空格和非零的字符,则该行作为其上一行的续行。

Fortran的数据结构

Fortran的数据结构

比较时使用“.EQ.”、“.NE.”、“ .GT.”、“.GE.”、 “.LT.”、 “.LE.”关系符。 logical a,b,c,d a='shanghai'.ge.'shandong' b='this'.lt.'that' c='the'.eq.'the ' d='agent'.gt.'ago' write(*,*) a,b,c,d end 5. 字符处理内部函数
职工记录 职工名 职工号 性别 年龄 家庭住址
2
在计算机语言中,用数据类型来表示不同的数据结构。 高级语言一般有以下三类数据结构:基本类型、构造类型 和指针类型。 基本类型(简单类型,不可再分):整型、实型、双精度 型、复型、逻辑型、字符型等。 构造类型:数组、记录、文件、集合等。 指针类型:链表、队、栈、树、图等。 FORTRAN77提供基本类型、构造类型。
第一章 算法 第二章 计算机和计算机程序 第三章 Fortran语言程序设计初步 第四章 逻辑运算和选择结构 第五章 循环结构的实现 第六章 Fortran的数据结构 第七章 数据的输入、输出 第八章 常用算法的程序设计举例
1
一、程序中的数据结构
程序处理的对象是数据 某班学生
学生1
学生2

学生30
18
4. 字符表达式和字符关系表达式
Fortran77的字符表达式只有“//”(字符连接符)运算。 character*25 name,name1 name='Fortran Powerstation4.0' name1=name(9:20)//' '//name(1:7) & //name(21:23) write(*,*) '-',name,'-' write(*,*) '-',name1,'-' end Powerstation Fortran4.0name1 字符间可以比较大小,具体规律为: 一般按其ASCII码的值进行比较。例如:字母a小z大, A小Z大;数字0小9大;两个字串比较时,从左至右依此 比较字符,第一个小者即为小;不同长度字串比较时, 短的右端补齐空格;空格字符最小。 19

Fortran77中文帮助教程

Fortran77中文帮助教程
tran77 结构化程序设计
第一章 FORTRAN语言程序设计初步...................................................................................................1 1.1 FORTRAN语言发展概况..........................................................................................................1 1.2 简单的FORTRAN程序分析......................................................................................................1 1.3 FORTRAN 源程序的书写格式................................................................................................1 1.4 Fortran程序的编辑与运行 ........................................................................................................1 1.5 常 量 ..........................................................................................................................................1 1.5.1 整型常量 .........................................................................................................................1 1.5.2 实型常量 .........................................................................................................................1 1.6 变 量 ..........................................................................................................................................2 1.6.1 变量的概念 .....................................................................................................................2 1.6.2 变量名 .............................................................................................................................2 1.6.3 变量类型 .........................................................................................................................2 1.7 Fortran内部函数 ........................................................................................................................2 1.8 Fortran算术表达式 ....................................................................................................................3 1.8.1 算术运算符和运算优先级 .............................................................................................3 1.8.2 表达式运算中的类型问题 .............................................................................................3 1.8.3 运算的误差问题 .............................................................................................................3 1.9 赋值语句 ....................................................................................................................................3 1.10 简单输出语句 ..........................................................................................................................3 1.11 简单输入语句 ..........................................................................................................................4 1.12 PARAMETER语句 ..................................................................................................................5 1.13 END,STOP,PAUSE语句 ....................................................................................................5 总结 ...................................................................................................................................................5

Fortran77 程序基础

Fortran77 程序基础



关系表达式是最简单的一种逻辑表达式,它的一般形式为: <关系运算量> <关系运算符> <关系运算量> 关系运算量可以是算术量,也可以是字符量。算术量可以是数值型常 量、数值型变量、数值函数,还可以是算术表达式。如:
A+B>3.5 40>=40 40<C COS(B)<=0.5 (M+N)*X==0.0 X-Z.NE.(Y+X) 等价于 等价于 等价于 等价于 等价于 等价于 A+B.GT.3.5 40.GE.40 40.LT.C COS(B).LE.0.5 (M+N)*X.EQ.0.0 X-Z.NE.(Y+X)


表控格式输入、输出 格式输入、输出


格式输入输出控制符
常用控制符 i,f,a 写法: nIw;nfw.d; naw 如: integer year, month, day write(*, "(3i8)") year, month, day 又如: real runoff write (*, "(f9.2)") runoff
(A.GT.B).AND.(A.NE.C) (X.LT.-1.0).OR.(X.GT.1.0) .NOT.((A+C)*D.LE.0.0) (A.GT.B).EQV.(C.LE.D) 等价于(A>B).AND.(A/=C) 等价于(X<-1.0).OR.(X>1.0) 等价于.NOT.((A+C)*D<=0.0) 等价于(A>B).EQV.(C<=D)


逻辑表达式的一般形式为: <逻辑运算量><逻辑运算符><逻辑运算量>[<逻辑运算符><逻辑运算量>„] 同关系表达式不同,一个逻辑表达式中可以包括多个逻辑运算符,例如逻辑 表达式“A.GE.10.0.AND.A+C.GT.B+D.OR..NOT..TRUE.”中包含 了.AND.、.OR.、.NOT.三个逻辑运算符。在逻辑表达式中除了有逻辑运算符 外,还可以有关系运算符和算术运算符。 下面是一些逻辑表达式的例子:

Fortran77_90_95

Fortran77_90_95
常量与变量
Fortran 的常量类型有整型、实型、复型、逻辑型和字符型:
[plain] view plaincopyprint?
1. PROGRAM VARIABLES 2. INTEGER I !整型声明语句 3. REAL F !实型声明语句 4. DOUBLE PRECISION D !双精度声明语句
从上面的打孔卡片可以看到,一行 Fortran 程序(即一张卡片)代表了一条 Fortran 语句。 有时会出现一张卡打不下一行语句,这时再第二张卡片的第 6 列打一个非 0 的孔,可以表 示该程序行是上一个程序行的续行。前 5 列是标号区,可以输入 5 位整数,通常情况下标 号区是不允许输入非数字的,但注释除外,第一列为 C 的语句不会被编译器处理。第 7~ 72 列是语句区。而最后 8 列是在卡片时代方便程序员查找的注释区,不会被编译器处理。 之后的 Fortran90 格式更加自由。它一行有 132 列,可以有多条语句,语句之间用分号隔开, 语句也没有固定位置的限制。在程序行中字符“!”后的内容都被视为注释(字符串中的“!”除外)。 空格也变得有意义了(Fortran77 会忽略行中的空格,关键字和变量中可以有空格)。此外 如果 132 列还写不完一行语句的话,可以在末尾加“&”字符表示有续行,续行的开始则用“&” 字符来承接上一行。F77 里前面 5 列的 10 进制整型数由来表示编号,可用于之后的跳转; F90 里还可以用英文名加冒号来表示标签,用于跳转。 文件名后缀.f 或.for 表示固定格式,而.f90 表示自由格式。
在 1992 年的超级计算国际会议作出的,正式文本在 1993 年公布的。1997 年发布了 HPF-2.0 语言定义。Fortran95 包含了许多 HPF 的新功能。 在 Fortran90 出现之前,在并行机上运行程序需要结合专门的矢量化子程序,或者信赖 Fortran 编译系统进行自动矢量化。而 Fortran90 之后,程序员可在程序中有目的地控制并 行化。Fortran90 具有 C++的所有重要功能,然而 C 语言主要用于微机上的廉价开发,而 Fortran 的目的是产生高效最优化运行的可执行程序。用 Fortran 编写的大型科学软件较 C 语言编写的通常要快一个量级。当今不仅大型机,微机和工作站也有了多处理器。高性能并 行计算已成必然,串行机上的线性内存模式已不再适用。Fortran 作为具有处理相应问题的 标准并行化语言,其独特的数组操作充分体现了它的先进性。

FORTRAN95 语法基础

FORTRAN95 语法基础

FORTRAN 95 语法基础目录:一、应用程序的创建与运行/FORTRAN 95所用的字符/ 变量类型及其声明,常量声明/表达式与运算符二、输入与输出:表控、有格式三、选择语句与结构:IF语句、CASE结构四、DO循环结构五、数组:数组的声明,数组的引用,数组的算术运算,数组的输入、输出,给数组赋初值,动态数组,WHERE、FORALL语句六、子程序:语句函数,内部子程序,调用子程序时的虚实结合:形参为数组、非定界数组、子程序名、星号,递归子程序,外部子程序,纯子程序,逐元子程序七、派生数据类型与结构体八、指针与动态链表九、文件:存取方式,基本操作语句,各类文件的读写操作十、接口、模块十一、公用区、存储关联、数据块子程序十二、绘图:坐标系、设置图形颜色、创建图形程序/ 常用过程:设置线型、绘一像素点、设置当前位置、绘直线、绘弧线、绘矩形、绘多边形、绘制扇形(圆、椭圆)/ 文字信息的显示附/录:标准函数与标准子例行程序一、基础部份1-1 FORTRAN 95 应用程序的创建与运行创建或运行FORTRAN 95程序必须在Microsoft Developer Studio平台上进行。

尽管程序文本及相关文件的编辑可以在任一文本编辑器上进行,然后再拷到Studio的文档窗口中。

但最好还是一开始就进入Studio环境。

创建FORTRAN 95 程序的步骤大致如下:1)启动Microsoft Developer Studio可以通过不同方式运行dfdev.exe程序以启动Microsoft Developer Studio[开始] \ Compaq Visual Fortran 6 \ Developer Studio \ dfdev.exe:或……\CVF66 \\MSDEV98\dfdev.exeMicrosoft Developer Studio的界面如下图所示:文档窗口工作空间窗口输出窗口2)建立工作空间(WorkSpace)工作空间(WorkSpace)对应着windows资源管理器的一个文件夹。

fortran逻辑运算和选择结构

fortran逻辑运算和选择结构
write(*,*) 'C' else
write(*,*) 'D' end if end
18
几点说明:
1. ELSE IF语句相当于把ELSE语句和其下一行的块IF 语句连结成一个语句。
2. ELSE IF语句不需END IF语句与之对应。
3.一个块IF可以有多个ELSE IF语句,除非有块IF嵌套 否则只能有一个ELSE语句。
4.当处理多分支选择时,用ELSE IF语句往往比较方便。
5. ELSE IF是在“条件为假”的分支中再继续进行分支 处理的。故在处理多分支的选择时,要把出现几率高的 条件写在前面,以提高效率。
19
read(*,*) grade if(grade.ge.80.) then
write(*,*) 'A ' else if(grade.ge.70.) then
为了避免过多的块IF嵌套,FORTRAN 还提供了
ELSE IF语句来处理“否则,如果…”的情况。
17
read(*,*) grade if(grade.ge.60.) then if(grade.ge.70.) then
if(grade.ge.80.) then write(*,*) 'A'
else write(*,*) 'B'
if(grade.ge.80.) then write(*,*) 'A'
else write(*,*) 'B'
end if else
write(*,*) 'C' end if else write(*,*) 'D' end if end
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
20
read(*,*) grade if(grade.ge.80.) then write(*,*) 'A ' else if(grade.ge.70.) then write(*,*) 'B' else if(grade.ge.60.) then write(*,*) 'C' else write(*,*) 'D' end if end
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
2
例:计算职工工资。正常工资rate (yuan/h),一周超过 40 hours时,超过部分按1.5 rate (yuan/h) 。
3
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
19
几点说明: 1. ELSE IF语句相当于把ELSE语句和其下一行的块IF 语句连结成一个语句。 2. ELSE IF语句不需END IF语句与之对应。 3.一个块IF可以有多个ELSE IF语句,除非有块IF嵌套 否则只能有一个ELSE语句。 4.当处理多分支选择时,用ELSE IF语句往往比较方便。 5. ELSE IF是在“条件为假”的分支中再继续进行分支 处理的。故在处理多分支的选择时,要把出现几率高的 条件写在前面,以提高效率。
25
21
read(*,*) x if(x.lt.-10.0) then y=0.0 else if(x.lt.0.0) then y=2.0*x+20.0 else if(x.lt.20.0) then y=20.0 else if(x.lt.40.0) then y=30.0-0.5*x else if(x.lt.50.0) then y=50.0-x else y=0.0 end if write(*,*) 'y=',y end
17
五、ELSE IF 语句
read(*,*) grade if(grade.ge.60.) then if(grade.ge.70.) then if(grade.ge.80.) then write(*,*) 'A' else write(*,*) 'B' end if else write(*,*) 'C' end if else write(*,*) 'D' end if end 为了避免过多的块IF嵌套,FORTRAN 还提供了 ELSE IF语句来处理“否则,如果…”的情况。
read(*,*) grade if(grade.ge.80.) write(*,*) 'A' if(grade.ge.70.) write(*,*) 'B' if(grade.ge.60.) write(*,*) 'C' write(*,*) 'D' end
24
C
单价850,100以上95折优惠,求货款。 price=850 read(*,*) n if(n.ge.100) price=price*0.95 amount=n*price write(*,*) 'n=',n,' amount=',amount end
12
四、用块IF实现选择结构
IF(逻辑表达式)THEN 块1 ELSE 块2 END IF 几点说明:
1. 一个块IF是有若干个语句组成的,其中三条语句均 不能单独是使用。
2. 一个块IF必须以块IF语句开始,以END IF语句结束。 一个块IF语句必须和一个END IF语句对应。
13
3. 一个块IF可以不包含ELSE语句和else块,也可以不 包含then块。 if(grade.lt.60.) then print *, ’No.’, num print *, ’grade’, grade end if
10
例如,A=3.5, B=5.0, C=2.5, D=1.0
11
算术运算符的运算对象是数值量,运算结果为数值。 关系运算符的运算对象是数值量,运算结果为逻辑量。 逻辑运算符的运算对象是逻辑量,运算结果仍为逻辑量。
逻辑运算符和算术运算符可以连续用运算符连接运算量, 但关系运算符不可以。
逻辑运算符可以写成:(设L1,L2,L3,L4为逻辑变量) L1 .AND. L2 .AND. L3 .AND. L4 算术运算符可以写成:A+B+C+D 但关系运算符不能写成:A .LT. B .LT. C .LT. D
成绩分级 A : ≥80 B : ≥70且<80 C : ≥60且<70 D : <60
15
给a, b, c三个数排序,要求从小到大输出
16
read(*,*) a,b,c if(a.le.b) then else t=a a=b b=t end if if(b.le.c) then else t=b b=c c=t if(a.le.b) then else t=a a=b b=t end if end if write(*,*) a,b,c end
9
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.的区别。
read(*,*) grade if(grade.le.60.) then write(*,*) ‘D ' else if(grade.le.70.) then write(*,*) ‘C' else if(grade.le.80.) then write(*,*) ‘B' else write(*,*) ‘A' end if end
求函数值
22
六、逻辑IF语句
逻辑IF语句只有“条件为真”时才有操作,为“假” 时不进行任何操作,且条件为“真”时只能执行一条执行 语句,而后不论“真”或“假”,都接着执行逻辑IF语句 的下一条语句。逻辑IF语句又称行IF语句。 如果在块IF结构中else块空块,而then块只有一条语句, 则用逻辑IF语句比较方便。 if(x.lt.60.0) then write(*,*) grade end if end if(x.lt.60.0) write(*,*) grade
4
二、关系表达式
关系表达式是最简单的一种逻辑表达式。
其一般形式为:
<算术量>
<关系运算符>
<算术量>
算术量:数值常数、数值型变量、数值函数、算术表达式。 关系运算符:关系比较符。 FORTRAN中有六种关系运算符
5
6
几点注意:
1. 关系运算符字母两侧各有一个句点,不要漏写。
2. 在一个关系表达式中可能包括算术运算符和关系运算符, 先进行算术运算,然后进行关系运算。(建议加括号) i+j.ne.m+n 相当于 (i+j).ne.(m+n)
if(grade.ge.60.) then else print *, ’No.’, num print *, ’grade’, grade end if
4. 块IF的嵌套 一个块IF可以嵌套另一个块IF,但另一个块if必须 完整地出现在then块或else块的位置。
14
read(*,*) grade if(grade.ge.60.) then if(grade.ge.70.) then if(grade.ge.80.) then write(*,*) 'A' else write(*,*) 'B' end if else write(*,*) 'C' end if else write(*,*) 'D' end if end
18
read(*,*) grade if(grade.ge.60.) then if(grade.ge.70.) then if(grade.ge.80.) then write(*,*) 'A' else write(*,*) 'B' end if else write(*,*) 'C' end if else write(*,*) 'D' end if end
read(*,*) grade if(grade.ge.80.) then write(*,*) 'A ' else if(grade.ge.70.) then write(*,*) 'B' else if(grade.ge.60.) then write(*,*) 'C' else write(,*) 'D' end if end
相关文档
最新文档