Fortran基础教程
fortran教程

fortran教程Fortran是一种编程语言,用于科学和工程计算。
它具有高性能和可靠性,适用于大规模的数值计算和数据处理。
Fortran的基本语法是由一系列语句组成的程序。
每个语句都以一个数字标签开头,可用于控制程序的执行顺序。
以下是Fortran的一些基本语法和常用功能。
1. 变量和数据类型Fortran支持多种数据类型,包括整数(Integer)、实数(Real)和字符(Character)。
变量声明可以在程序的开头部分完成,例如:```fortranINTEGER :: iREAL :: xCHARACTER(len=10) :: name```注意,每个变量声明必须以两个冒号(::)开头。
2. 数学运算Fortran提供了一系列的数学运算符,用于执行基本的算术和逻辑运算,例如加法(+)、减法(-)、乘法(*)、除法(/)和求余(MOD)。
运算符的使用与其他编程语言相似。
3. 控制结构Fortran支持常用的控制结构,例如条件语句(IF-ELSE)和循环语句(DO LOOP)。
条件语句可以根据条件来执行不同的代码块,例如:```fortranIF (i > 0) THENPRINT*, 'i is positive'ELSEPRINT*, 'i is non-positive'END IF```循环语句可以根据条件重复执行一部分代码,例如:```fortranDO i = 1, 10PRINT*, iEND DO```上述代码将打印出1到10的数字。
4. 数组和矩阵运算Fortran支持多维数组和矩阵运算。
声明数组时可以指定维度和元素类型,例如:```fortranREAL, DIMENSION(3,3) :: matrix```然后,可以使用多个索引访问数组元素,例如:```fortranmatrix(1,2) = 3.14```这将给数组中的第1行第2列的元素赋值为3.14。
Fortran-第一讲--第一章

1.3.1 声明部分
声明由不可执行语句组成 位于程序开头 定义程序名和程序引用的数据以及变量类型
PROGRAM语句用来指定程序的名字 程序名最长可达31个字符 由字母、数字和下划线任意组合而成 第一个字符必须是字母 如果存在PROGRAM语句,它必须是程序的第一个语句行 例:下列程序名是否有效,如无效则说明原因 new_program 3rd
无效的实数表示: -12.0E1.5
例
下列各组数在计算机里表示的值是否一样 4650. 4.65E+3 -12.71 -1.27E1 0.0001 1.0E4 3.14159E0 314.159E-3
1.5.3 字符类型
字符类型由字符串组成 字符常数是由单引号或双引号括住的字符串 在单引号或双引号之间括起来的部分称为字符文本, 字符文本可以采用任意计算机可以表示的字符,而 不受Fortran字符集限制 如果字符文本中含有单引号该怎么办?
这一转换仅仅是指参与操作的两个操作数类型 分别为实数和整数而言
表达式
1 2 3 1+1/4 1.0+1/4 1+1.0/4
结果
1 1.0 1.25
因为混合运算的情况是如此复杂,所以我们在程序中要尽量避免这种情 况发生
练习
下面的程序段的三个赋值语句是否正确,正 确写结果,错误说明原因 INTEGER :: i,j INTEGER, PARAMETER :: K=4 i = K **2 j = i/K K=i+j
简单地说:学完本章,你应该可以编写除函数以外的简单程序
1.1 Fortran字符集
正如英语的学习从abc开始,Fortran的学习 也是从字符集开始
fortran语言教程第3章

第3章顺序结构设计本章介绍数据输入/输出语句及其他基本语句,简单介绍顺序结构及程序设计的基本步骤,书写简单程序。
3.1 变量的赋值变量代表计算机内存中的存储单元,它可以接收外部设备输入的数据,也可保留运算器的运算结果,还可以被送到外部设备输出。
FORTRAN语言要求变量必须被预先赋值,然后才能被使用,并提供了下面几种为变量赋值的方式,因此,程序中的变量都应该在使用之前用下列方式之一获得数据。
3.1.1 赋值语句1)赋值语句的格式和功能语句的格式:变量 = 表达式语句的功能:将一个表达式的计算结果值赋给一个变量。
关于赋值语句的说明:(1)赋值语句是执行语句。
(2)赋值语句中的“=”号叫做“赋值号”,它的作用是将其右边的表达式的结果赋给其左边的变量,即将表达式的值放入变量对应的内存单元中,因此,赋值号的意义是带有方向性和动作性的。
例如“A=5.5”的作用是将5.5 送到变量A对应的内存单元中。
(3)赋值语句兼有计算和赋值双重功能。
即先计算出表达式的值,然后将该结果赋给一个变量。
例如“N=N+1”的作用是用N的当前值加上1后再送入N中,假设N的当前值是5,则执行N=N+1后,N的值为6。
(4)根据赋值语句的功能,由于赋值号的方向性特性,赋值号左边只能是变量,以便提供一个获得数据的空间。
因此,“A=B”和“B=A”具有完全不同的意义,前者表示将B中的数据送入A中,后者表示将A中的数据送入B中。
语句“X+Y=10”是错误的,因为在内存中找不到名字为X+Y的变量。
2)执行赋值语句时的类型转换问题执行赋值操作时,被赋值的变量和表达式的类型可以相同,也可以不相同。
FORTRAN语言作如下规定:(1)变量与表达式的类型相同,则将表达式的结果直接赋值。
M=4 (变量M和4都是整型)A=3.5*SIN(X)(变量A和表达式3.5*SIN(X)都是实型)(2)如果类型不同,则应先进行表达式的计算,然后将该表达式的值转换为被赋值变量的类型。
第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程序设计基础

方括号内的部分是可选的,END 语句是唯一 必须的,表示程序编译到此结束。
END 语句中的程序名可以省略,但若出现程 序名,必须同时出现 PROGRAM 关键字。
对于可选部分,如果缺省,则按照约定(隐 含)规则进行
二. 语句
语句是 Fortran 程序的基本单位,一条语句可包含0-132个字符。 Fortran77规定,一条语句的不同部分应从特定的列开始,这样的
MASS,rate,Npts,I9J7,Time_Rate,
有下列几点值得注意: (1)只能以字母开头(3M,_Right 为无效标识符); (2)不能含有空格字符(Time Rate为无效标识符); (3)不区分字母大、小写(Vel,VEL,vel 为同一标识符); (4)长度限定为31 个字符(Fortran 77 为6个字符); (5)避免与关键字、标准例程重名。
::表示在变量声明数据类型的同时,给变量赋初值
2 整型常量
整型常量的一般形式为:
[s]n[_k]
其中:s代表正负号;n为 0~9 的十进制(前导0被省略); k 指种类参数; n 和 k之间为一下划线。
文字整型变量,其种类参数取缺省值; 也可显式声明种类参数,例如:-7_2
二. 实数类型 1 实型变量
书写格式称为固定格式,相应的程序文件扩展名为.f 或.for; Fortran 90 无此限制,自由格式,相应的文件扩展名为.f90。 除赋值语句外,所有的语句都从一个关键字开始。例如:
例2-1 中出现的关键字:PROGRAM、REAL、PRINT和END。
一般情况下,每行一条语句。 若一行有多条语句,它们之间以分号间隔。 可以将几条简单的赋值语句写在一行上,例如:
四. 注释
Fortran基础

简单的Fortran程序 程序 简单的
program ex0413 character (len=20) string string = "Good morning." write(*,*) string string(6) = “evening.” ! 重新设置从第 个字符之后的字符串 重新设置从第6个字符之后的字符串 write(*,*) string end 执行结果为: 执行结果为: Good morning Good evening
简单的Fortran程序 程序 简单的
二、声明语句
1、变量 、 变量 — 程序运行期间其值可以改变的量 例如: 例如:x=1.0 x=2.0 2、变量名 、 规则:以英文字母开头,英文字母和数字0-9以及 规则:以英文字母开头,英文字母和数字 以及 下划线的组合。 下划线的组合。 变量的名字最好是取成一个有意义的英文单词, 变量的名字最好是取成一个有意义的英文单词,这样 可以减少程序编写时出错的机会。 可以减少程序编写时出错的机会。
简单的Fortran程序 程序 简单的
② 改变隐含约定 可以经过IMPLICE描述来决定哪些字母开头的变量会自动 描述来决定哪些字母开头的变量会自动 可以经过 使用某种类型。 使用某种类型。 implicit integer(A,B,C) !A、B、C开头的变量都视为整型数。 开头的变量都视为整型数。 、 、 开头的变量都视为整型数 implicit integer(A-F,I,K)!A到F及I、K开头的变量都视为整型 ! 到 及 、 开头的变量都视为整型 数。 implicit real(M-P) !M到P开头的变量都视为浮点数 到 开头的变量都视为浮点数 implicit none !关闭默认类型功能,所有变量都要事先声明。 关闭默认类型功能,所有变量都要事先声明。
fortran教程.ppt

N-S 图——结构化流程图 S=0
例2 用N-S图表示
N=1
S+1/N= S
N+1= N
直到N>100为止
打印 S 值
例1 用N-S图表示
N=0 T=0
输入 A A+T →T N+1 →N 直到N≥100 为止 打印 T
例3
L=1
N=1
S=1
SUM = 1
L+2 → L
-S → S
N+1 → N
SUM+S/L →SUM
(3)输入一个数给“收入变量”A
(4)将A和T的值相加,其和值放在变量T中 A+TT;
(5)使N的值加1,即N+1 N(N的值表示已累加数据的个数)
(6)若N﹤100,则返回(3)继续执行以后各步,否 则转到执行(7)
(7)打印出总和T的值
以上算法体现“迭代”的思想—计算机算法的最大特 点
例2 求 1
将高级语言程序(源程序)转换为机器语言程序(目标程序)
的工作由“编译程序”来完成。 编译
执行
高级语言程序
机器指令目标程序
计算结果
编译程序 (预先存如电脑)
裸机
用户源程序
操作系统
高级语言编译系统
计算机系统与操作系统关系示意图
§ 1-2 算法(Algorithm)与程序设计(Programming)
1. 近50年的丰富积累,资源不浪费,对原有程 序向下兼容。而C语言与Matlab才20多年
2. FORTRAN书写和语法要求严格,更适合于 严谨的科学计算。而C对数组不提供越界检查, 容易出错,而且不容易查出
3. FORTRAN 90~95可以直接对矩阵和复数进行 运算。而C语言则要用多重循环
fortran基础第3章

(3)复型数据(shùjù) 由于复数在内存(nèi cún)中是 以两个实数的存储单元存储的,在 输入输出时,以两个实数的编辑符 来提供复数输入输出的格式。
第三十二页,共62页。
(3)复型数据(shùjù)
例题(lìtí): COMPLEX::A READ (*,100)A PRINT 200,A
第五页,共62页。
对一行(yīxíng)语句的说明:
➢ 一行可由0~132个字符组成 ➢ 可以有注释语句(以!开始),可以单
独占一行,也可以在某个语句后面。 ➢ 可以有续行语句(以&开始),当它出
现在一行末尾,则表示下一行是该行的 继续,若不仅(bùjǐn)末尾有&符,而且 下一行第一个字符也是&符,则表示是 关键字分离。看P26的例子
(2) 实型数据(shùjù)
【例】分析(fēnxī)下面程序段: A=15.8;B=-756.567;C=870.2 PRINT 100,A,B,C
100 FORMAT(1X,E15.6 ,E12.4,E9.3 )
这里1X作为(zuòwéi)纵向走纸控制符,若没有这 个编辑符,则数据中第一个字符将被“吃掉”。 请同学注意:任何带格式输出的语句,第一个编 辑符一定是1X。
若W>L,在字符前面(qián mian)添加WL 个空格;
若W<L,只输出最前面(qián mian)的W 个字符 。
第三十八页,共62页。
(5)字符(zìfú)型数据
【例】 CHARACTER(LEN=5)::STR1 READ(*,100)STR1 PRINT 200,STR1
第十九页,共62页。
3.4.1 格式(géshi)编辑符
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2016/6/1 6
3.2 简单的Fortran程序分析
例1:求一元二次方程x2+3x-5.6=0的根, 并打印结果。 • 利用公式:
x1, 2 b b 4ac 2a
2
• (这里,a=1,b=3,c=-5.6)
2016/6/1 7
3.2 简单的Fortran程序分析
编程如下:
x1, 2
2016/6/1 32
3.8 Fortran算术表达式
Fortran77提供了四种表达式:
( 1~5 位无符号整数;第1列为“*”或“c‖时,为注释 行)
⑶第6列:续行标志区
(非空格或非零字符;最多19个续行)
⑷7~72列:语句区
(书写语句;一行只能写一条语句)
⑸73~80列:语句注释区
(一般作编号注释)
2016/6/1 12
3.4 Fortran程序的编辑与运行
Fortran PowerStation 4.0集成开发环境 简 介
注:在程序中用到的变量都必须要有确定的值。
2016/6/1 23
3.6 变
量
3.6.2 变量名 变量名——标识一个变量所用的名字。 命名规则: • 变量名的第一个字符必须是字母; • 在第一个字符后可跟1~5个字母或数字。 例: x,m1,total,k123,…
2016/6/1 24
3.6 变
2016/6/1 21
3.5 常
量
⑸下列形式为不合法的指数形式: ①单独的小数点和单独的指数部分。
例:.E5, E10 × ②指数部分只能是整数,不能带小数点。 例:8E0.5, 12.3E1.5
×
2016/6/1
22
3.6 变
量
变量——在程序执行期间其值可以改变的量。 3.6.1 变量的概念 Fortran为每一个变量分配一个相应的 存储单元;每个变量在每个时刻只能有一 个确定的值。 例:x=4.5 x 4.5 x=8.0 x 8.0
2016/6/1 28
3.6 变
量
三种类型说明的优先级: 高 类型说明语句(显式说明) implicit语句说明 低 “I~N规则”
2016/6/1
29
3.7 Fortran内部函数
在编制Fortran程序时,经常要用到 一些基本的数学函数,如三角函数、指 数函数、对数函数等。为方便用户, Fortran编译系统已提供了这些函数的 计算程序,需要时即可调用。 Fortran内部函数调用格式: 函数名(自变量)
2016/6/1 16
3.5 常 量
常量——在程序执行期间其值固定不变的量。 Fortran处理六种类型的常量: ⑴整型常量(Integer) ⑵实型常量(Real) ⑶双精度常量(Double precision) ⑷复型常量(Complex) ⑸逻辑型常量(Logical) ⑹字符型常量(Character)
⑵每个程序单位包括若干行
语句行(执行语句和非执行语句行)
非语句行(注释行)
⑶语句前可不设标号,也可根据需要设标号。
⑷各类语句在程序单位中的位置有一定规则。
⑸程序必须按规定格式书写。
2016/6/1 11
3.3 Fortran源程序的书写格式
Fortran77源程序必须按以下格式书写: ⑴每行只能在80列内书写,并把80列分为4个区。 ⑵1~5列:标号区
⑵同一个数值可用不同的指数形式表示。 例: 0.876→8.76E-1→87.6E-2→876E-3 ⑶计算机在输出时,按标准化指数形式输出。 例:0.28→2.800000E-01 -59.58E+12→-5.958000E+13 即数字部分大于1,且小数点前只有一位非零 数字的指数输出形式。 ⑷在微机中,一般用四个字节存放一个实数,其取值 范围为:10-75~1075。超出此范围时为“溢出”错 误。
2016/6/1 17
3.5 常 量
3.5.1 整型常量 包括正、负整数和零。 例:5,-13,0,… 说明: ①在(16位)微机中,整数的取值范围为: -215~215-1(-32768~32767) ②在(32位)微机中,整数的取值范围为: -231~231-1(-2147483648~2147483647 )
2016/6/1
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。
2016/6/1 15
3.4 Fortran程序的编辑与运行
注:若Fortran程序是由一个主程序文件和若 干个子程序文件组成,则应将各文件添加到 同一项目工作间,分别进行编译,然后连编 和运行项目文件。 七、打开项目文件 选“File‖→―Open‖→在打开对话框文件 类型下拉列表中选“Project Worksp夹中的项目文件。
2016/6/1 14
3.4 Fortran程序的编辑与运行
三、给项目工作间添加和编辑文件 打开指定的项目工作间→选 “Insert‖→ ―File into Project‖→输入要添加的文件名(如: st01.for)→“Add‖。然后按Fortran程序的书写 规则编辑程序。 四、编译项目工作间中的文件 打开指定的文件→选 “Build‖→ ―Compile st01.for‖。 五、连编项目文件 选 “Build‖→ ―Build aaa.exe‖。 六、运行项目文件 选 “Build‖→ ―Execute aaa.exe‖。(显示程 序执行结果)
2016/6/1
子程序: c subprogram function k(n) k=1 i=2 5 if (i.le.n) then k=k*i i=i+1 goto 5 endif return end
10
3.2 简单的Fortran程序分析
Fortran程序的基本结构:
⑴一个Fortran源程序由一个或多个程序单位组 成,每个程序单位以“end‖语句结束。
2016/6/1 27
3.6 变
量
如: Integer abc,xyz real imax,k3 logical a1,kpz ⒊用implicit语句说明 即说明用某一字母开头的变量为指定的类型。 例: implicit integer(a,b),real(k) implicit integer(x-z)
量
注意几点: ⑴变量名不区分大小写字母。 例:TOTAL,Total,total 代表同一变量 ⑵变量名中的空格不起作用。 例:abc,a bc,ab c,a b c 代表同一变量 ⑶变量名尽量做到“见名知义” AVER、SUM、Imax ⑷允许变量名与语言中具有特定含义的字(“保留字”) 同名。 例:sin,read,open,end,… 建议不要使用fortran中具有特定含义的字作变量名
2016/6/1 5
Fortran语言的特征
Fortran语言的最大特性是接近数学公式的自然描 述,在计算机里具有很高的执行效率。 易学,语法严谨。 可以直接对矩阵和复数进行运算。 自诞生以来广泛地应用于数值计算领域,积累了大 量高效而可靠的源程序。 很多专用的大型数值运算计算机针对Fortran做了 优化。 广泛地应用于并行计算和高性能计算领域。 Fortran 90,Fortran 95,Fortran 2003的相继推 出使Fortran语言具备了现代高级编程语言的一些 特性。
2016/6/1 30
3.7 Fortran内部函数
如: sin(90*3.14159/180) →1.0 sqrt(9.0) →3.0 abs(-5.6) →5.6 int(6.75) →6 exp(3.0) →20.085540 Fortran77全部内部函数见附录Ⅵ
2016/6/1 31
3.7 Fortran内部函数
Fortran语言是一种适合于科学 和工程计算问题的程序设计语言; 也是计算机高级语言发展史上使用 最早的一种程序设计语言。
2016/6/1
4
3.1 Fortran语言的发展概况
Fortran语言的发展过程:
• 1951年由约翰· 贝克斯等人开始研究Fortran语言; • 1957年第一个Fortran程序在IBM704机上运行; • 1958和1962年先后推出FortranⅡ和FortranⅣ; • 1966和1978年先后颁布Fortran66和Fortran77; • 1991年颁布了Fortran90。 • 现在已经有了Fortran 95, Fortran 2003
普通高校计算机基础教学课程
Fortran语言
(Fortran77结构化程序设计)
说明
• 第一章 算法(略) • 第二章 计算机和计算机程序(略)
2016/6/1
2
第三章 Fortran语言程序设计初步
2016/6/1
3
3.1 Fortran语言的发展概况