- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数组的基本操作
数组的定义 数组的引用 数组的赋值 数组的计算 数组的输入输出
数组的定义
类型说明 [::] 数组名([下标下界:]下标上界[,…])[,…] 如 real runoff(365) real runoff(12,31) real runoff(1:12,1:31) 数组下标下界缺省时,值为1
(3)引用数组片段 数组名(下标范围)
PROGRAM TEST IMPLICIT NONE ! 变量定义 REAL :: A1, A2,A3,A4,A5,B(5,5) READ(*, *)A1,A2,A3,A4,A5 ! 数组片断的引用 B(1,1:5) = A1 B(2,1:5) = A2 B(3,1:5) = A3 B(4,1:5) = A4 B(5,1:5) = A5
格式说明语句 format
写法:FORMAT (format-list)
如:
integer year, month, day
write(*, 15)year, month, day
15 format(3i8)
Fortran 三种常用运算
算数运算:算数运算符及算数表达式 关系运算:关系运算符及关系表达式 逻辑运算:逻辑运算符及逻辑表达式
1954:IBM 在 IBM 704 上发展 1957:IBM发表,Fortran → Formula Translator 1966:American Standards Association制定 Fortran 66
◦ 鉴于各家编译器无法相容,故统一标准 ◦ American Standards Association:美国国家标准局(ANSI)的前身 1978:ANSI 公布 Fortran 77 标准 ◦ 删去部分内容,新增逻辑与输入输出方面的功能 1992:国际标准组织 ISO 公布 Fortran 90 标准 ◦ 与 77 版本差异较大 ◦ 加入物件导向、提供指针与加強阵列功能、自由格式写作 1997:国际标准组织 ISO 公布 Fortran 95 标准 ◦ 加强并行运算 Fortran 200x
数组的运算包括数组之间的运算及数组元素之间的运算
数组的运算,如数组间的数学运算(+,-,*,/,**), 数组的合并、转置运算等,直接以数组为操作对象。
数组元素之间的运算多通过循环语句进行
数组的输入输出
数组的输入输出多通过do循环语句或隐式do循环语句进行
如 do i=1,12
do j=1,days(i)
下面是一些逻辑表达式的例子:
(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)
运算符定义 .GT. .GE. .LT. .LE. .EQ. .NE.
所代表的数学符号
> ≥ < ≤ = ≠
意义描述
大于 大于等于 小于 小于等于 等于 不等于
关系表达式是最简单的一种逻辑表达式,它的一般形式为: <关系运算量> <关系运算符> <关系运算量> 关系运算量可以是算术量,也可以是字符量。算术量可以是数值型常
Compaq Visual Fortran 6.5
固定格式(Fortran77,后缀.f;.for) 自由格式(Fortran90,后缀.f90)
在Fortran语言中,有五种基本的数据类型可供使用。他 们分别是整型(INTEGER)、实型(REAL)、复型 (COMPLEX)、字符型(CHARACTER)和逻辑型(LOGICAL)
END PROGRAM TEST
数组赋值
(1)赋值语句
数组对象 = value
(2)data语句(赋初始值)
data days/31,28,31,30,31,30,31,31,30,31,30,31/
(3)do循环
do i=1,12 do j=1,31 runoff(i,j)=0 enddo enddo
金鑫 2010.8.6
1
Fortran语言基础知识
2
数据类型及I/0格式
3 Fortran 基本语法结构及程序控制
4
数组操作
5
子程序及模块化
6
文件操作及批处理
7
Fortran 编程实例及分析
Fortran语言简介
作为一门诞生于上个世纪50年代后半期的高级计算机 语言,Fortran在这个C/C++、Java等新兴语言大行其道的 时代仍然活跃在人们的视野之中。Fortran语言的长项在 于数值计算,在科学研究和工程设计领域有着广泛的用途。 在描述数学语言的自然性方面,Fortran同现存的其他高 级语言相比有着明显的优势。对于科研工作者和工程技术 人员而言,Fortran语言的易学性和易用性是公认的。
最后进行逻辑运算,各个逻辑运算符的先后顺序是:.NOT.>.AND. >.OR.>.EQV.=.NEQV.。
如果逻辑表达式中有括号,则先进行括号内的运算。
程序流程控制的常用语句结构
判断If语句 goto语句 块if结构 do循环结构
常用结构
选择结构 循环结构
If语句
IF(逻辑表达式) 执行语句
块If结构
IF(逻辑表达式1) THEN THEN 块 ELSE IF(逻辑表达式2) THEN ELSE IF块 …… ELSE ELSE块 END IF
goto 语句
goto 语句标号
do循环语句
DO 循环变量 = 循环初值,循环终值[,循环增量] 循环体 ENDDO
当循环增量为1时,可省略
选择结构设计
块IF语句 多层嵌套块IF语句
循环结构设计
“当”型循环 “直到”型循环
其他程序控制语句 End Pause stop
实例分析
(1)1~100求和 (2)输入5个数,按大小排序
数组是Fortran语言中功能最为强大、运用最为灵活的一 种数据结构。在存储结构上,数组占用一片连续的存储单 元。程序中通过数组索引来对数组元素、片断进行操作。
表控格式输入、输出 格式输入、输出
格式输入输出控制符
常用控制符 i,f,a 写法: nIw;nfw.d; naw 如: integer year, month, day write(*, "(3i8)") year, month, day 又如: real runoff write (*, "(f9.2)") runoff
函数子程序( FUNCTION ) 子例行子程序(SUBRIOUTINE) 各子程序间的数据传递
函数子程序和子例行子程序是子程序的两种常用基本形式。 它们的共同特征就是作为数据处理过程的集合。但是这两 种子程序也不完全相同,函数子程序会返回一个函数值, 且通常不会改变哑元的数值。因此,函数子程序更像是数 学上的一个函数。而子例行子程序通常用于完成一项更为 复杂的任务,通过哑元或者其他手段返回几个结果,哑元 的数值通常会在程序的执行过程中改变。
其中,算数运算是Fortran的基本运算,其基本运算符包括+,-,*, /,**
关系运算
在实际的数学或工程问题中,经常会遇到比较两个数据谁大谁小的问 题。这就是一个关系比较的问题。在Fortran中,提供了进行这类操 作的运算符和表达式规则。
关系运算符也可以称作关系比较符,它是一个双目运算符。Fortran 中定义了六个基本的关系运算符
函数子程序的一般形式为: [prefix] FUNCTION name ([d-arg-list]) [RESULT (r-name)] ... END [FUNCTION name] 1.prefix说明项 prefix说明项是一个可选参数,可以使用如下两种形式来书写: type [keyword] 或 keyword [type] 2.d-arg-list d-arg-list表示函数的哑元列表。如果函数子程序不包含哑元,则哑
在Fortran77标准中,变量名不允许超过6个字符;在 Fortran90/95标准中,变量名不允许超过31个字符。
变量的定义及类型说明:
(1)类型说明语句
integer year, month, day
real runoff
character*10 station
(2)隐含约定
I~N 规则
对我们来说常用的数据类型为整型、实型、字符型
各数据分类分别包括常量及变量
变量名的作用是识别程序中的变量。Fortran中的变量名 命名有一定的规则,主要有以下几条。
变量名中只能包含26个英文字母和0~9十个数字;在 Fortran90/95标准中,还允许使用下划线“_”。
变量名的第一个字符必须是字母,不能是下划线“_”或 数字。
逻辑表达式的一般形式为:
<逻辑运算量><逻辑运算符><逻辑运算量>[<逻辑运算符><逻辑运算量>…]
同关系表达式不同,一个逻辑表达式中可以包括多个逻辑运算符,例如逻辑 表达式“A.GE.10.0.AND.A+C.GT.B+D.OR..NOT..TRUE.”中包含 了.AND.、.OR.、.NOT.三个逻辑运算符。在逻辑表达式中除了有逻辑运算符 外,还可以有关系运算符和算术运算符。
逻辑运算
Fortran语言中提供了5种逻辑运算符供程序员在编程时使用。新旧 Fortran标准中的逻辑运算符没有任何区别,每个运算符的左右两侧 都有一点“.”,书写时不可以省略。逻辑运算符中有的是双目运算 符,有的是单目运算符,使用中需要注意。