第2章 FORTRAN语法基础
(完整)fortran语法手册
1 FORTRAN77四则运算符+ - * / ** (其中**表示乘方)在表达式中按优先级次序由低到高为: +或-→*或/→**→函数→()2 FORTRAN77变量类型2.1 隐含约定:I—N规则凡是以字母I,J,K,L,M,N六个字母开头的,即认为是整型变量,其它为实型变量。
2.2 用类型说明语句确定变量类型:可以改变I—N规则2。
3 用IMPLICIT语句将某一字母开头的全部变量指定为所需类型如 IMPLICIT REAL (I,J)三种定义的优先级别由低到高顺序为:I—N规则→IMPLICIT语句→类型说明语句,因此,在程序中IMPLICIT语句应放在类型说明语句之前。
2。
4 数组的说明与使用使用I-N规则时用DIMENSION说明数组,也可在定义变量类型同时说明数组,说明格式为:数组名(下标下界,下标上界),也可省略下标下界,此时默认为1,例:DIMENSION IA(0:9),ND(80:99),W(3,2),NUM(—1:0),A(0:2,0:1,0:3)REAL IA(10),ND(80:99)使用隐含DO循环进行数组输入输出操作:例如WRITE(*,10) ('I=’,I,’A=’,A(I),I=1,10,2)10FORMAT(1X,5(A2,I2,1X,A2,I4))2。
5 使用DATA语句给数组赋初值变量表中可出现变量名,数组名,数组元素名,隐含DO循环,但不许出现任何形式的表达式:例如DATA A,B,C/—1.0,-1。
0,—1。
0/DATA A/-1.0/,B/-1.0/,C/—1。
0/DATA A,B,C/3*-1.0/CHARACTER*6 CHN(10)DATA CHN/10*’’/INTEGER NUM(1000)DATA (NUM(I),I=1,500)/500*0/,(NUM(I),I=501,1000)/500*1/3 FORTRAN77程序书写规则程序中的变量名,不分大小写;变量名称是以字母开头再加上1到5位字母或数字构成,即变更名字串中只有前6位有效;一行只能写一个语句;程序的第一个语句固定为PROGRAM 程序名称字符串某行的第1个字符至第5个字符位为标号区,只能书写语句标号或空着或注释内容;某行的第1个字符为C或*号时,则表示该行为注释行,其后面的内容为注释内容;某行的第6个字符位为非空格和非0字符时,则该行为上一行的续行,一个语句最多可有19个续行;某行的第7至72字符位为语句区,语句区内可以任加空格以求美观;某行的第73至80字符位为注释区,80字符位以后不能有内容.4 FORTRAN77关系运算符。
chapter2FORTRAN基本语句
第四节
表控输入语句
在应用READ语句进行表控输入操作时,输入的数据应 该符合READ语句中的要求,即输入的数据个数应该与 READ语句中的变量个数一致;输入数据的类型应与 READ语句中相应变量的类型一致。如果输入的数据不 够,READ语句将会等待用户继续输入,直到输入所需 的全部数据为止。如果输入的数据过多,则多余的数 据不起作用。如果输入的数据与READ语句中的变量类 型2 bx c 0
(设Δ>=0)
4ac
x
1, 2
b
b
2
2a
第三节
赋值语句
三、赋值过程的类型转换作用 □在不同的类型之间进行转换是有限制条件的:数值型以及逻辑 型数据之间允许相互赋值转换;数值型数据与字符型数据之间则 不允许进行直接赋值转换,需要使用专用的字符函数;逻辑型数 据不允许与字符型数据之间进行直接或间接的转换。 □整型数据与实型数据的相互转换遵循如下规则:整型向实型转 换时,保持数值的大小不变;实型向整型转换时,直接将实型的 小数部分截去。 □在由整型数据向逻辑型数据转换时,逻辑型数据的值由整型数 据的奇偶来决定:当整型数据为奇数时,转换成的逻辑型数据的 值为TRUE;当整型数据为偶数(包括0)时,转换成的逻辑型数据 的值为FALSE。 □在由实型数据向逻辑型数据转换时,实型数据会首先转换成整 型,然后再由整型向逻辑型转换。
⑹ 类型说明时,可进行变量的初始化,此时一定要 注意变量名前的::符号不可省略。 real::score=89.5
Parameter 语句
(1)功能:用一个符号代表一个常量,称为符号常量(常
数),这样在程序中用到这个常数时直接写这个常数名即可,
从而给编写程序、阅读程序以及修改程序带来方便。 (2)写法: Parameter(PI=3.14159,g=9.81) (3)位置:位于所有可执行语句之前。符号常量的定名规则 与定变量名相同。名字本身隐含类型,也遵循I-N规则。可以 用类型说明语句定义符号常量的类型。例: INTEGER P
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第二章
2.1.2 符号常量
£ 符号常量,是用一个标识符来代表一个常量。符号常量常用 PARAMETER语句来定义。例如: PARAMETER (PI=3.1416,M=10)
£ 该语句定义了两个符号常量PI和M,在该程序单位内,PI代表3.1 416,M代表10
£ PARAMETER为特有的常量定义标识,要定义的项必须放在() 内,如果有多项,项之间要用逗号隔开。
FORTKAINND值中字变节量二的进位类型精度的定义取有值三范种围(方绝对式值:)
1.
类型说4 明语4句
8
8
32 64
7位 15位
0,[10-38,10+38] 0,[10-308,10+308]
£格式为:类型说明符 变量名1,变量名2…
说明:大于最大值,产生上溢错,小于最小值,按0处理。
£其中类型说明字为:
£ 符号常量与变量有着本质的区别,PARAMETER语句是非执行语 句,变量对应于一个存储单元,程序执行时,可将表达式的值存 放到变量所对应的存储单元中(即给变量赋值)或从变量所对应 的存储单元中取出相应的值。 符号常量不能当变量使用
例1 输入圆柱体的半径和高,求圆柱体的表面积和体积
PROGRAM fex REAL R, H, S, V PARAMETER (PI=3.141593) PRINT *, “请输入半径和高:” READ *, R, H S=PI*R*2*H V=PI*R**2*H PRINT *, “表面积为:”, S PRINT *, “体积为:”, V END
SIN(x)
实型 求正弦
sinx
SQRT(x)
实型 求平方根 √x
TAN(x)
实型 求正切
fortran语法手册
1F O R T R A N77四则运算符+ - */ ** (其中**表示乘方)在表达式中按优先级次序由低到高为:+或-→*或/→**→函数→()2 FORTRAN77变量类型隐含约定:I-N规则凡是以字母I,J,K,L,M,N六个字母开头的,即认为是整型变量,其它为实型变量。
如IMPLICIT REAL (I,J)三种定义的优先级别由低到高顺序为:I-N规则→IMPLICIT语句→类型说明语句,因此,在程序中IMPLICIT语句应放在类型说明语句之前。
数组的说明与使用使用I-N规则时用DIMENSION说明数组,也可在定义变量类型同时说明数组,说明格式为:数组名(下标下界,下标上界),也可省略下标下界,此时默认为1,例:DIMENSION IA(0:9),ND(80:99),W(3,2),NUM(-1:0),A(0:2,0:1,0:3)REAL IA(10),ND(80:99)使用隐含DO循环进行数组输入输出操作:例如WRITE(*,10) ('I=',I,'A=',A(I),I=1,10,2)10FORMAT(1X,5(A2,I2,1X,A2,I4))使用DATA语句给数组赋初值变量表中可出现变量名,数组名,数组元素名,隐含DO循环,但不许出现任何形式的表达式:例如DATA A,B,C/,,DATA A/,B/,C/DATA A,B,C/3*CHARACTER*6 CHN(10)DATA CHN/10*''/INTEGER NUM(1000)DATA (NUM(I),I=1,500)/500*0/,(NUM(I),I=501,1000)/500*1/3 FORTRAN77程序书写规则程序中的变量名,不分大小写;变量名称是以字母开头再加上1到5位字母或数字构成,即变更名字串中只有前6位有效;一行只能写一个语句;程序的第一个语句固定为PROGRAM 程序名称字符串某行的第1个字符至第5个字符位为标号区,只能书写语句标号或空着或注释内容;某行的第1个字符为C或*号时,则表示该行为注释行,其后面的内容为注释内容;某行的第6个字符位为非空格和非0字符时,则该行为上一行的续行,一个语句最多可有19个续行;某行的第7至72字符位为语句区,语句区内可以任加空格以求美观;某行的第73至80字符位为注释区,80字符位以后不能有内容。
2FORTRAN基本语句
第一节
类型说明语句
I-N规则
(3)隐含说明变量的类型
根据变量名称的第一个字母自动决定变量的类型, 根据变量名称的第一个字母自动决定变量的类型, 变量名称的第一个字母自动决定变量的类型 且仅适用于整型和实型变量。 且仅适用于整型和实型变量。 IMax,Number,JOB,COUNT,TOTAL, 例 J,IMax,Number,JOB,COUNT,TOTAL,BOOK 最好不用这种不经说明就使用变量的方法。 最好不用这种不经说明就使用变量的方法。好的 程序员在编写程序时都会先对变量进行说明才使用变 这样能清楚了解程序执行时的内存使用情况, 量,这样能清楚了解程序执行时的内存使用情况,同 时也可避免很多“人为错误” 时也可避免很多“人为错误”。
第三节
赋值语句
三、赋值过程的类型转换作用 在一个算术赋值语句V=e V=e中 赋值变量( 在一个算术赋值语句V=e中,赋值变量(V)和表达式 的类型既可以相同,也可以不相同。Fortran中对于赋 (e)的类型既可以相同,也可以不相同。Fortran中对于赋 值时的类型转换问题作了如下规定。 值时的类型转换问题作了如下规定。 如果变量V与表达式e的类型相同,则直接进行赋值, □如果变量V与表达式e的类型相同,则直接进行赋值, 不需进行类型转换。 不需进行类型转换。 如果变量V与表达式e的类型不同, □如果变量V与表达式e的类型不同,则首先进行表达式 的求值,然后求值的结果转换为赋值变量的类型。 的求值,然后求值的结果转换为赋值变量的类型。 例1、交换A,B值; 交换A 例2、 计算
答案: 、 答案:1、2.0*SIN(3.14/4)/3.0 ( ) 2、(Sin(4.0)+cos(10*3.14/180))*exp(2.5)/ 、 (Sqrt(2.0)+abs(a*x)+log(3.0*5))
第2章Fortran语法基础
• 不可执行程序单位,在程序中主要用来为其他程 序单元提供定义。不可执行程序单元有两种:模 块程序单元和数据块程序单元。
2.5 命名方式
• 在Fortran中为对象命名有一定的要求。简单的说, Fortran 77的命名要求和Fortran 90/95的命名要求是不同 的。本节主要介绍不同标准下的命名方式。
• 在Fortran 77标准中,程序和变量等对象的名字是由不多 于6个字符(包括英文字母A-Z、a-z和数字0-9)组成的字 符段。同时,对象名字的第1个字符必须是字母,名字的有 效使用范围原则上仅限于一个程序单元之中(内部过程除 外)。下面的代码段演示了Fortran 77标准的对象命名方 式。
• 在C语言程序中,需要使用“/*”和“*/”这样的特殊标 记来界定注释的内容而不管行边界。采用这种方式进行注 释时经常出现的错误就是漏掉结束的界定符,使得后面的 语句也变成了注解;好处也很明显,就是能够方便的实现 代码的块注释。
• 而Fortran 95语言中的“!”,Ada语言中的“-”,或是 C++语言中的“//”,注释都是在行的任意位置开始直到行 的末尾结束。这种做法更为合理、不容易出错,但要实现 大段代码的整体注释就不是特别方便了。
• INTEGER 0B
!错误
• INTEGER C-10
!错误
• REAL sin
!正确
• REAL test:real
!错误
2.6 程序单元和语句顺序
• 程序单元是程序中的基本组成部分,了解程序单 元的用途可以加深对计算机程序的理解。本节主 要介绍Fortran程序中的程序单元和句顺序的基本 概念及相关规定。Fortran中的程序单元分为两大 类:可执行程序单元和不可执行程序单元。
fortran语法手册
1 FORTRAN77四则运算符+ - * / ** (其中**表示乘方)在表达式中按优先级次序由低到高为: +或-→*或/→**→函数→()2 FORTRAN77变量类型2.1 隐含约定:I-N规则凡是以字母I,J,K,L,M,N六个字母开头的,即认为是整型变量,其它为实型变量。
如 IMPLICIT REAL (I,J)三种定义的优先级别由低到高顺序为:I-N规则→IMPLICIT语句→类型说明语句,因此,在程序中IMPLICIT语句应放在类型说明语句之前。
2.4 数组的说明与使用使用I-N规则时用DIMENSION说明数组,也可在定义变量类型同时说明数组,说明格式为:数组名(下标下界,下标上界),也可省略下标下界,此时默认为1,例:DIMENSION IA(0:9),ND(80:99),W(3,2),NUM(-1:0),A(0:2,0:1,0:3)REAL IA(10),ND(80:99)使用隐含DO循环进行数组输入输出操作:例如WRITE(*,10) ('I=',I,'A=',A(I),I=1,10,2)10FORMAT(1X,5(A2,I2,1X,A2,I4))2.5 使用DATA语句给数组赋初值变量表中可出现变量名,数组名,数组元素名,隐含DO循环,但不许出现任何形式的表达式:例如DATA A,B,C/-1.0,-1.0,-1.0/DATA A/-1.0/,B/-1.0/,C/-1.0/DATA A,B,C/3*-1.0/CHARACTER*6 CHN(10)DATA CHN/10*' '/INTEGER NUM(1000)DATA (NUM(I),I=1,500)/500*0/,(NUM(I),I=501,1000)/500*1/3 FORTRAN77程序书写规则程序中的变量名,不分大小写;变量名称是以字母开头再加上1到5位字母或数字构成,即变更名字串中只有前6位有效;一行只能写一个语句;程序的第一个语句固定为PROGRAM 程序名称字符串某行的第1个字符至第5个字符位为标号区,只能书写语句标号或空着或注释内容;某行的第1个字符为C或*号时,则表示该行为注释行,其后面的内容为注释内容;某行的第6个字符位为非空格和非0字符时,则该行为上一行的续行,一个语句最多可有19个续行;某行的第7至72字符位为语句区,语句区内可以任加空格以求美观;某行的第73至80字符位为注释区,80字符位以后不能有内容。
FORTRAN第二章
2013-9-23
Fortran 变量
16
在程序运行过程中其值可以改变的量,称为变量。变量用 标识符表示,称为变量名。每个变量是以变量名来代表的, 变量名是名字的一种。 变量必须‚先定义后使用‛,变量的命名最好是‚见名知 义‛ 系统为变量分配存储单元,存储变量的值。 编写程序时通过变量名来存、取变量值。 在同一个程序单位中不能用同一个标识符代表不同的变量。 变量定义的一般格式:
stop
end 运行结果:(屏幕显示) 1.000000 + 0.100000 =
write(*,*) a,"+",b,"=",a+b
stop end program ex0409
1.100000
= 100000.0 (wrong)
100000.000100000
运行结果:(屏幕显示) 100000.0 + 9.9999997E-05 运行结果:(屏幕显示)
17
2013-9-23
实型变量(Real)
实型变量又称浮点数变量,分为单精度和双精度类型, real(kind=4) a 单精度 real(kind=8) a 双精度 计算机在存储实型数时 ,先转化成科学计数法.要考虑有效 位数的概念,正确使用单(双)精度类型。 1.例如要保存12345会转化成1.2345*104 ,其中的数值部分可 以保存约6位数字;
数据类型说明符
例如:
声明使用 整型态数
变量列表;
a
a是自己取的名字,在程序中以 这个名字表示一块存放整数的空 间,称为变量
2013-9-23
integer
Fortran 变量(续)
第二章 关于FORTRAN的初步知识
前一页
休息
6
FORTRAN语言的常量
2:实型常量
有两种表示方法: (1)小数点法表示: 如: 12.5 0.12 12. .55等 (小数点表示) (2)科学计数法(指数)表示: 实数或整数E或e整数
如: 1.8635E2 5.d-1 等 (指数表示)
前一页 休息 7
FORTRAN语言的常量
3:双精度型常量
前一页
休息
14
FORTRAN语言的变量
2:隐含说明语句
implicit double precision (字母1,字母2)或(单个字 符),...... implicit complex (字母1,字母2)或(单个字符),...... implicit logical (字母1,字母2)或(单个字符),...... implicit character (字母1,字母2)或(单个字符),...... 其意义见前页。
5:逻辑型常量
逻辑型常量的表示: .true. 表示真值 .false. 表示假值
6: 文字型常量
文字型常量的表示: ‘若干个字符’ 例如:'abcdef' '123456xyz'
前一页 休息 10
FORTRAN语言的变量
标识符的命名规则:
以字母(不分大小写)开头,后跟若干个字母或数字。 变量类型: 1:隐含说明(约定) 凡不加说明的标识符,以字母I~N( 或i~n)开头的为整型变量,以其它字母开头的变量为实 型变量。 2:显示说明语句 3:隐含说明语句
前一页 休息 12
FORTRAN语言的变量
1:显示说明语句
complex 若干个标识符彼此间用逗号分隔
定义的每一个标识符为复型变量。
Fortran基础教程
2024/8/9
18
3.5 常 量
3.5.2 实型常量
(有二种表示形式)
⒈小数形式
例:15.8,-21.05,14.0 ,14.,.17, 0.0 ,…
⒉指数形式(通常表示较大或较小的数)
例:100000000→1.0E+8
0.0000125→1.25E-05
数字部分
指数部分
2024/8/9
19
3.5 常 量
2024/8/9
31
3.7 Fortran内部函数
注意几点:
⑴函数自变量(参数)必须用括号括起来。
例:sinx+cosx → sin(x)+cos(x)
⑵函数自变量可以是常量、变量或表达式。
例: exp(3.0)
sin (x+cos(x))
⑶有些函数的类型是由自变量的类型确定的。
例:mod(8.0,3.0) →2.0
2024/8/9
24
3.6 变 量
注意几点: ⑴变量名不区分大小写字母。
例:TOTAL,Total,total 代表同一变量 ⑵变量名中的空格不起作用。
例:abc,a bc,ab c,a b c 代表同一变量 ⑶变量名尽量做到“见名知义” AVER、SUM、Imax ⑷允许变量名与语言中具有特定含义的字(“保留字”)
2024/8/9
13
3.4 Fortran程序的编辑与运行
一、Fortran PowerStation 4.0的启动
选“开始”→“程序”→“Fortran PowerStation 4.0”→“Microsoft Developer Studio”。
二、创建项目工作间
选“File”→“New”→“Project Workspace”→“Console Application”,并 输入项目工作间名称(如:aaa)和存放项 目工作间的位置或路径(如:c:\for\) → Create。
Fortran语法
Fortran语法(转载)2010-08-02 09:45目录:一、说明二、概述三、数据类型及基本输入输出四、流程控制五、循环六、数组七、函数八、文件一、说明本文多数内容是我读彭国伦《Fortran 95 程序设计》的笔记。
只读到第九章,主要是3~9章,都是些最基本的用法(原书共16章)。
这里主要摘录了我看书过程中总结的一些Fortran和C不同的地方,主要是语法方面。
希望这份笔记能够给学过C但没有接触过Fortran 的同学带去一些帮助。
要想弄得更清楚些,推荐看一下原书,觉得作者真的写得很好,很清楚;如果有C语言的基础,看完前九章应该很快的,花一两天就行了。
觉得如果耐心看完本文,基本功能应该也可以顺利用起来了。
另外,由于我之前没有用过Fortran,这次为了赶文档看书又看得很粗浅,大多数东西看过之后都没来得及仔细想,只是按着作者的意思去理解。
所以这份笔记还处于纸上谈兵的层次。
文中蓝色的部分是程序代码,!后面的内容为注释。
二、概述1、名词解释Fortran=Formula Translator/Translation一看就知道有什么特色了:可以把接近数学语言的文本翻译成机械语言。
的确,从一开始,IBM设计它的时候就是为了方便数值计算和科学数据处理。
设计强大的数组操作就是为了实现这一目标。
Fortran奠定了高级语言发展的基础。
现在Fortran在科研和机械方面应用很广。
2、Fortran的主要版本及差别按其发展历史,Fortran编译器的版本其实很多。
现在在广泛使用的是Fortran 77和Fortran90。
Fortran 90在Fortran 77基础上添加了不少使用的功能,并且改良了77编程的版面格式,所以编程时推荐使用90。
鉴于很多现成的程序只有77版本,有必要知道77的一些基本常识,至少保证能够看懂77程序。
以下是77和90的一些格式上的区别。
Fortran 77:固定格式(fixed format),程序代码扩展名:.f或.for(1)若某行以C,c或*开头,则该行被当成注释;(2)每行前六个字符不能写程序代码,可空着,或者1~5字符以数字表明行代码(用作格式化输入输出等);7~72为程序代码编写区;73往后被忽略;(3)太长的话可以续行,所续行的第六个字符必须是"0"以外的任何字符。
FORTRAN语言第2章(共8章)PPT课件
Fortran对于关键字不予保留,即允许其关键 字作为其他实体的名称。但是,不主张这样做,因 为使用关键字作为实体名称会到导致程序难以理解 和阅读。
例如:用户可以将自己的变量名、数组名等命 名为read、print、end、integer、program、 print、do等关键字,编译程序会根据上下文来识 别一个字符串究竟是关键字还是实体名称。
型。 Fortran常量包括整型、实型、复型、字符型和逻辑型
五种内部类型常量和一种特殊的常量——符号常量,下面
分别介绍它们的表示方法及其注意事项。
第一节 FORTRAN常量
三、FORTRAN常量 1、整型常量
整型常量由0~9的一系列数字组成,包括正数、负数 和0。如125,-258,+28等。注意:
n代表整数部分,
m代表小数部分,不允许出现非数值 字符(如逗号、顿号和空格等)。
第一节 FORTRAN常量
三、FORTRAN常量 2、实型常量
指数形式:用来表示一个绝对值非常大或非常小的数。 指数形式的实数三部分组成:有效数字、E(或e)和指数。
例如: +0.125E+2、-132.48e-1、243E-3、 .12e+2,1.2e+1
Fortran 95规定:标识符只能由字母、数字、 下划线和美元符号“$”组成,且起始字符必须是 英语字母。
Fortran的关键字
关键字是Fortran95中的一种特定字符串。 如 read*,a,b
read是关键字。 类似的关键字有:print、write、program、 integer、do、if、then、end、subroutine、 function等。 在编译环境中正确的关键字会以蓝色字符显示。 关键字都有特定的含义,在程序中有具体的位置要求, 不能随意改变,否则将产生一个语法错误。
fortran语法
2. E 格式码,为指数格式的输出,其一般型态为 rEw.d ,其中 E 表示输出型态为指数,其 余的 r、w 和 d 的定义则和 F 格式码相同。
3. D 格式码,用于倍准度实数的 相同。
4. G 格式码,其型态与 E 或 F 格式码相同,但其功用则不同,他是用在当我们无法预知实 数的大小值时,使用 G 格式码后,计算机会自动视数值的大小将 G 格式码转为 E 格式 码或 F 格式码。
Fortran讲义第二章汇总课件
优先级(最好加括号) : ①括号 ②函数 ③** ④*、/ ⑤单目+、- 双目+、-
类型转换(向高看齐),int, nint, real, dble, cmplx
复数运算
exam_2_5
表达式和赋值语句
❖ 字符表达式 ①
子字符串 字符串的连接 相关内部函数
exam_2_6
❖ 关系表达式: ②
内部过程或模块过程
END
Fortran源程序的书写格式
❖ 固定格式(*.for或*.f)
Fortran源程序的书写格式
Fortran源程序的书写格式
lists.for
Fortran源程序的书写格式
❖ 自由格式(*.f90)和固定格式的比较
exam_2_1
固定格式
自由格式
每行字符数 80
132(VF 中几乎不限制)
Fortran的名称
❖ 用来标识程序中的实体(变量、子程序、函数…)
❖ <名称>→<英文字母>{<英文字母>|<数字>|_|$}
❖ 名称长度不能超过6(FORTRAN77) 31(Fortran90) 63(Visual Fortran)
Fortran的名称
program X-Y-Z Find_it 1A _program $total
注释
第一列: c *
任意位置: !
73-80列
任意位置:!(第六列除外)
每行语句数 多条,用;隔开
多条,用;隔开
(FORTRAN77只能有1条)
续行
第六列,非0非空格 最多续19行
& 最多续39行
Visual Fortran允许续511行
_fortran-第二章 fortran基础知识
•Fortran 中有下列标准算术操作符:
+ * / ** 加法: 减法: 乘法: 除法 指数运算: a+b a-b a*b a/b a**b
•注意:
•两个操作符不可以连续出现。a*+b •乘法符号不能省略。 a(x+y) •圆括号把一组数据项按要求组合在一起。 2.6.1 整型运算 整型运算的结果始终是整型。如3/4=0, 4/4=1, 5/4=1, 9/4=2
一些内置函数
2.8 表控(list-directed)输入和输出语句
输入语句( input statement) 从输入设备读入一个或 多个数值,并将其存储到指定的变量中。输入设备 可以是交互环境中的键盘,或批处理环境中的磁盘 文件。输出语句( output statement) 写一个或多个 数值到输出设备。输出设备可以是交互环境的显示 屏幕,或批处理环境的输出设备。
没有初始化的变量可能带来 严重问题!
有三种方法初始化变量: 赋值语句、READ 语句和类型声明语句中的初始化。
2.10 IMPLICIT NONE 语句
•IMPLICIT NONE 语句出现在类型声明语句之前。
•IMPLICIT NONE 语句使默认类型功能丧失。
•当程序含有IMPLICIT NONE 语句,没有显式类型 声明语的变量被认为是错的。
2.5.4 默认和显式变量类型 •有两种方法可以定义变量的类型:默认式和显 式。 •如果在程序中没有明确指定变量类型,那么就 是默认式定义变量类型:
任何以字母i,j,k,l,m,n 开头的变量名假 定为整型,其他字母开头的变量名则 假定为实型。
•这一类型默认习惯从1954 年FORTRAN I 就开始启用。注意, 默认情况下没有变量的类型为CHARACTER,因为在 FORTRAN 1 中不存在该数据类型!
FORTRAN程序设计第二章
标识符的使用
(1)表示程序中的变量名、程序名、函数名和符号常 表示程序中的变量名、程序名、 量 (2)标识符中大小写是等价的 ) (3)标识符中的空格不起作用 ) (4)内部函数名、语句关键词等都可以用作标识符, )内部函数名、语句关键词等都可以用作标识符, 尽量不要用这些作为标识符 SIN=3.0 READ=10.5 (5)在给标识符起名时,应考虑所代表对象的含义 )在给标识符起名时,
FORTRAN常量 2.1 FORTRAN常量
常量:在程序运行过程中,其值不改变的量 直接常量 符号常量
直接常量: 直接常量:指数据本身就是一个常量 1. 整型常量(整型常数或整数) 包括正整数、负整数和0 除正负号外,其他符号一律不能出现在整 型常量中 10.0000, 3+2, 78*31, 1/3 (×) 1E-2
(2)指数形式 指数形式由数字部分 指数部分组成 数字部分和 组成。 指数形式由数字部分和指数部分组成。
± a.bE ± c或 ± a.be ± c
数字部分可以是不带小数点的整数, 数字部分可以是不带小数点的整数,也可以是带 可以是不带小数点的整数 小数点的实数。 小数点的实数。 注意:指数不能为小数; 注意:指数不能为小数;E左右两边的数字部分和 指数部分必须同时出现, 指数部分必须同时出现,指数部分不能单独用来代 表一个常数。指数部分不能省略。 表一个常数。指数部分不能省略。 例如:3E5.6、8.6E-3.7、E12、12.3*E8、1.02E均非法。 均非法。 例如:3E5.6、8.6E-3.7、E12、12.3*E8、1.02E均非法 +12.3E+08、12.3E8、0.91E-30、3E5、等合法。 +12.3E+08、12.3E8、0.91E-30、3E5、等合法。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.3 空格的使用
• 在Fortran 90/95标准中,空格不能出现在语句和变量名中间;除 了在字符串常量或是输入输出中外,不代表任何具体意义。其主 要作用是分隔语句和变量,使代码更为易读。在国外的一些科学 研究和工程设计机构,如美国航空航天局(NASA)等,在开发科 学计算程序时对空格的使用有一些很好的规定。 在程序中要确保不在Fortran定义的语句或变量名中出现空格,不 要尝试通过空格来对变量名进行区别; 在编写公式时,尽量通过空格来使公式的书写和阅读更为清晰易 懂; 在编写大段代码时,可以使用整行的空格来对代码段进行功能划 分。 建议在编写程序时,尽量遵守这些规定。下面来看一段使用空格 来确分四则运算的实例,先给出不使用空格进行区分的范例: Y=X+A*B/C-(0集”是指能够用于编写Fortran程序的所有字符及符号。不 是所有的外文字母或数字符号都能被某一高级计算机语言接受, 每一种高级计算机语言都会规定它所能使用的字符。Fortran中允 许使用的基本字符主要分为两大类:文字字符和特殊字符。文字 字符主要包括26个英文字母、10个自然数字和下划线。如表所示。
•
•
•
• •
2.1.3 兼顾两种格式的代码写法
• 由于现存大量旧的Fortran代码(Fortran 77程序)都是采用固定 格式编写的,在一些编译器上可能会由于格式的问题而出现编译 错误。因此,有必要提供一种能够兼顾两种格式的代码写法,以 便于将固定格式的代码转换为符合自由格式要求的代码。能够兼 顾两种格式的代码在书写时需要注意的要点有以下几条: • 开始列。除注释行外的每一行代码只能从第7列开始编写。这主要 是由于自由格式中并没有规定代码编写的起始列,因此可以套用 固定格式的规定。 • 注释行。标明注释行的符号只能用感叹号“!”,并且应该写在第 一列。注释行必须单独占一行,不能出现其他语句的行尾。 • 续行方式。续行标志只能使用符号“&”。在接续的两行中,前一 行应该在72列后、132列前添加续行标志;后一行则应该在第6列 书写续行标志。 • 空格使用。在Fortran 90/95标准中,语句和变量中间不允许出现 空格。因此,兼顾两种格式的源代码中也不允许在语句和变量中 出现空格。
2.5 命名方式
• 在Fortran中为对象命名有一定的要求。简单的说, Fortran 77的命名要求和Fortran 90/95的命名要求是不同 的。本节主要介绍不同标准下的命名方式。 • 在Fortran 77标准中,程序和变量等对象的名字是由不多 于6个字符(包括英文字母A-Z、a-z和数字0-9)组成的字 符段。同时,对象名字的第1个字符必须是字母,名字的有 效使用范围原则上仅限于一个程序单元之中(内部过程除 外)。下面的代码段演示了Fortran 77标准的对象命名方 式。 • INTEGER 0B !错误 • INTEGER C-10 !错误 • REAL sin !正确 • REAL test:real !错误
第2章 Fortran语法基础
• Fortran从诞生至今,已经走过了长达50余年的发 展历程中。在这一发展历程中,相关的语言标准 先后制定了5部。具体的语法也随着标准的变更而 变化着。在每一个新标准中,前一个标准中的一 些旧语句、语法或是被废弃、或是建议减少使用, 如Fortran 90标准中就建议减少使用“COMMON” 语句;或者新增了一些新的语句,如Fortran 95 标准中的“FORALL”语句。本章将主要介绍 Fortran的基本语法。
2.6 程序单元和语句顺序
• 程序单元是程序中的基本组成部分,了解程序单 元的用途可以加深对计算机程序的理解。本节主 要介绍Fortran程序中的程序单元和句顺序的基本 概念及相关规定。Fortran中的程序单元分为两大 类:可执行程序单元和不可执行程序单元。 • 可执行程序单元,在程序中主要用来执行一个完 整的功能。可执行程序单元主要包括以下三种: 主程序单元、外部函数子程序单元和外部子例行 子程序单元。 • 不可执行程序单位,在程序中主要用来为其他程 序单元提供定义。不可执行程序单元有两种:模 块程序单元和数据块程序单元。
2.1.1 固定格式(Fixed Format)
• 采用固定格式书写的Fortran源代码,文件扩展名 为*.F或*.FOR。在固定格式中,Fortran标准规定 了若干个列范围。每一个列范围都有自己的用途 和约定,程序必须严格按照这些约定进行编写。
2.1.2 自由格式(Free Format)
2.1 程序书写格式
• 在1.6小节中,程序HELLO已经展示了Fortran的一 种源代码书写格式,即自由格式(Free Format), 这种格式是Fortran 90/95标准中的一大特色。同 Fortran 77标准中的旧格式,即固定格式(Fixed Format)相比,取消了在源代码书写上的诸多限 制,程序编制起来更为灵活。两种格式书写的源 代码通过文件扩展名来进行区别。
• 采用自由格式书写的Fortran源代码,文件扩展名为*.F90。自由格式是Fortran 90标 准中的一大特色,废除了固定格式中的许多限制。它并不规定程序代码中每一行第几 列字符的具体作用,在源代码的编写上显得相当自由。同固定格式相比,自由格式主 要在以下几个方面进行了改进。 行的定义。在自由格式中每行可以书写132个字符。程序语句的位置没有了只能从第7 列后开始书写的固定约定,可以在任意一列开始书写。同一行中可以顺序书写多条程 序语句,语句之间用分号“;”进行分隔。 注释行的定义。在自由格式中,惊叹号“!”后的字符均被视为注释。但是,字符串 中的“!”出外,如“PRINT *, ‘Hello! Fortran 90/95’”中,“Fortran 90/95’”不会被认为是注释。 续行的定义。在Fortran 90/95标准中规定,当程序代码中的一行超过132个字符时, 至多可以有39个续行。续行标志固定为“&”。当一行代码的最后一个字符为“&”时, 则表示下一行与本行接续;当一行代码的第一个字符为“&”时,则表示本行与上一 行接续。 行号的定义。在Fortran 90/95标准中规定,行号只需写在代码行的最前面即可。 空格的应用。Fortran 90/95标准中规定,语句和变量名中间不能有空格。例如,关 系运算符“==”不能写成“= =”;“ABS(-2.0)”与“AB□S(-□2.0)”作用不再相 同,“AB□S(-□2.0)”不能正常通过编译。
• • • • •
2.4 注释格式
• 尽管注释在编译过程中是一定会被编译器忽略的,但却是 源代码文件中十分重要的一部分。因为注释是保证源代码 具有可读性的一个非常重要的手段。在不同的高级计算机 语言中,表示注释的方法各有不同,甚至在一种语言里, 也可能有几种引入注释的方法。不同的注释方法各有优缺 点,在使用中应该根据实际情况进行选择。 • 在C语言程序中,需要使用“/*”和“*/”这样的特殊标 记来界定注释的内容而不管行边界。采用这种方式进行注 释时经常出现的错误就是漏掉结束的界定符,使得后面的 语句也变成了注解;好处也很明显,就是能够方便的实现 代码的块注释。 • 而Fortran 95语言中的“!”,Ada语言中的“-”,或是 C++语言中的“//”,注释都是在行的任意位置开始直到行 的末尾结束。这种做法更为合理、不容易出错,但要实现 大段代码的整体注释就不是特别方便了。