Fortran语言教程

合集下载

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 语言编程

fortran 语言编程

fortran 语言编程Fortran 语言编程Fortran(Formula Translation)是一种面向科学计算和工程计算的高级编程语言。

它于1957年诞生于IBM,是最早被广泛采用的科学计算语言之一,目前已经发展到第四个版本(Fortran 2018)。

Fortran是一种编译型语言,它通过编写源代码并使用编译器将其转换成机器语言来执行。

本文将详细介绍Fortran语言的基础知识、语法规则和常用的编程技巧,以帮助读者了解和掌握这门强大的科学计算语言。

第一步:安装Fortran编译器要开始编写和运行Fortran程序,首先需要安装Fortran编译器。

有多种Fortran编译器可供选择,其中最常用的是GNU Fortran(gfortran)和Intel Fortran Compiler(ifort)。

可以从官方网站或其他可信的来源获得这些编译器的安装程序,并按照提示进行安装。

第二步:编写并编译Fortran程序在开始编写Fortran程序之前,需要了解Fortran的基本语法规则。

Fortran使用固定格式或自由格式,固定格式的源代码按照列格式排列,每行的前6列被保留用于行号和注释,从第7列开始是可执行代码。

自由格式没有列格式的限制,更加灵活,但在编译阶段需要指定自由格式。

下面是一个简单的Fortran程序示例,用于计算并输出两个数的和:fortranprogram additionimplicit noneinteger :: a, b, sumprint *, "Enter two numbers:"read *, a, bsum = a + bprint *, "The sum is:", sumend program addition将以上代码保存为一个以.f90为后缀名的文件(例如addition.f90),然后使用编译器将其编译成可执行程序。

fortran语言教程第3章

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)如果类型不同,则应先进行表达式的计算,然后将该表达式的值转换为被赋值变量的类型。

fortran语言教程第6章

fortran语言教程第6章

第6章数组应用6.1 数组与数组元素数组是由任何一种简单数据类型按照一定的组织规则构造出来的数据类型,是有序数据的集合。

数组中可以包含很多个同类型的变量,我们把这些变量叫做“数组元素”或“数组分量”或“下标变量”。

在机器中数组占用一片连续的存贮单元,每个单元都用同样的名字(即数组名)但编号不同。

数组的命名方式与简单(基本)变量命名方式相同。

假设有数组A,占据4个存储单元,元素在内存中的排列可形象表示出来:AA(1),A(2),A(3),A(4)A(1,1),A(1,2),A(2,1),A(2,2)每个单元的编号方式可以有多种,第一种用一个数字来编号称为一维数组,第二种用两个数字来编号称二维数组。

可以推广,用N个数字对数组的元素编号则称为N维数组。

数组使用之前一定要说明,事先告诉机器数组的类型,包含分量的个数,分量的编号方式等,以便机器为数组预留内存空间。

6.1.1数组的说明数组的说明应该包括以下几个方面的内容:•确定数组的名称;•确定数组元素的类型;•确定数组的结构(包括数组维数,每一维的取值范围等内容)。

说明语句的形式有:(1)类型说明语句:说明数组的类型和元素个数类型标识符数组名1 (维说明1[,维说明2,...])[,数组名2...](2)DIMENSION语句:只说明数组元素个数DIMENSION数组名1 (维说明1[,维说明2,...])[,数组名2...]其中“维说明”的形式:维下界∶维上界(或下标下界∶下标上界)例如:REAL A(1:10),B(80:90),C(-5:4),NUM1(1:2,1:5)INTEGER D(0:1,0:4),NUM2(2:5)DIMENSION S(3:5), M(1:10)说明语句中的A,B,C,D,NUM1,NUM2等都是数组名,数组名不能与本程序单位中的其他任何标识符重复。

通过“维说明”可以确定数组维数,每一维的取值范围等内容。

同一维的上下界之间用冒号分开;括号中至少要有一个维说明,也可以有多个。

计算机程式Fortran77语言

计算机程式Fortran77语言

FORTRAN程式的結構
18
➢ 一完整電腦程式須包含有
宣告declaration、 可執行execution、 結束termination
等三部份陳述。
FORTRAN程式的結構
19
➢ 宣告部份:
變數之形式 字元character、 整數integer、 實數real、邏輯logical)
冪次則是作多次相乘,指數可為小數 其他函數則以泰勒展開式或其他展開式
做計算,電腦內建以函數供呼叫
輸入與輸出的格式
28
➢ 輸入與輸出的格式分為兩類
自由格式free format 格式化formated
➢ 自由格式輸入與輸出
read(*,*) variable1,variable2,… write(*,*) variable1, variable2,…
➢ 整數算術-----Ex. 3/4=0
5/4=1
➢ 實數算術-----Ex. 5./4.=1.25
3./4.=0.75
指定陳述與算術計算
23
➢ 運算之層次 (算術計算式之計算先後次序) [1].括號;[2].指數由右至左;[3].乘除;[4]. 加減。 (除了指數外,同層次則由左至右依序運算)
➢ 混合模式算術-----Ex. 1+1/4=1
等於
指定陳述與邏輯計算
25
➢ 組合邏輯運算子combinational logic operator
L1 .NOT. L2 Logical NOT L1 .AND. L2 Logical AND L1 .OR. L2 Logical OR L1 .EQV. L2 Logical equivalence L1 .NEQV. L2 Logical

fortran语言教程第4章

fortran语言教程第4章

第4章 选择结构在第三章介绍了最简单的FORTRAN 程序,在程序中语句执行的顺序是按照语句书写的顺序决定的,写在前面的语句就先执行,写在后面的语句就后执行,这种执行语句的过程叫顺序执行。

导致顺序执行的语句结构叫顺序结构。

只包含顺序结构的程序像流水账一样,只能解决简单的、顺序性的问题。

有些问题仅用顺序结构是不能解决的,例如,计算税款问题。

【例4.1】 当月收入超过800元时,超过部分按5%纳税,要求写程序完成输入月收入INCOME ,计算应交税款TAX 。

分析:根据题意,得到税款计算公式:⎩⎨⎧>-≤=8008008000INCOME INCOME INCOME TAX 根据上述计算公式画出计算税款的流程图如图4.1:图4.1 计算税款的算法流程图从流程图中可以看见,问题求解的过程不再是顺序性的了,需要对输入的月收入INCOME 进行判断再决定计算其应该交纳的税款,即问题求解需要根据输入数据进行选择、判断,出现了选择(分支)结构,为了描述选择结构,FORTRAN 语言也提供了对应的能描述选择结构的语句。

4.1 逻辑IF 语句逻辑IF 语句格式:IF (逻辑表达式) 语句逻辑IF 语句功能:求出逻辑表达式的值,如果为“真”,则执行<语句>后再执行后续语句,否则直接执行后续语句。

其功能也可以用图4.2所示的流程图描述。

逻辑IF 语句说明:(1)逻辑IF 语句描述了最简单的选择结构,只提供<逻辑表达式>为真时的操作,并且只能有一个动作,<逻辑表达式>为假时未提供操作。

(2)逻辑IF语句又称“行IF语句”。

图4.2 逻辑IF结构示意图利用逻辑IF语句可以将图4.1翻译成程序:REAL INCOME,TAXREAD *,INCOMETAX=0IF(INCOME.GT.800)TAX=(INCOME-800)*0.05PRINT *,‘月收入=’,INCOME,‘应交税款为=’,TAXEND由于只有月收入超过了800元才会有税款的计算问题,程序中用逻辑IF语句对应地描述了此分支关系,为了保证低于800元时TAX也有相应的值,所以在判断月收入情况之前TAX被初始化为0。

FORTRAN语言第7章(共8章)

FORTRAN语言第7章(共8章)
土木工程学院200811第一节数组概念第二节数组的说明与引用第三节数组元素的存储结构第四节数组的输入输出第五节数组应用程序举例第一节数组的概念前面章节涉及的问题都是比较简单编写的程序也不复杂这些程序的一个突出特点是所处理的数据量非常少采用的数据类型都是简单的内部数据类型使用的变量都是普通变量
FOTRAN77/90程序设计
第二节 数组的说明与引用
一、数组说明的内容 程序中所有数组都要先说明该数组的名字、类型、维数及
大小,以便编译系统给数组分配相应的存储单元。
1)数组名:数组和变量一样,也用标识符来命名; 2)数组的类型:数组的类型由数组元素的类型来决定;
3)数组的维数:为了区分数组元素所需顺序号(下标)的个数;
4)数组的大小:数组中包含数组元素的个数,由数组每维下 标的上界和下界来决定。
第一节 数组的概念
READ *,a1,a2,a3,a4,a5,a6,a7,a8,aa9,a10,a11,a12,a13,a14,a15 sum=a1+a2+a3+a4+a5+a6+a7+a8+a9+a10+a11+a12+a13+a14+a15 av=sum/15; num=0
IF (a1>av) num=num+1 IF (a2>av) num=num+1
土木工程学院 2008.11
第七讲
第一节 第二节 数组概念
数组
数组的说明与引用
第三节 数组元素的存储结构 第四节 数组的输入输出 第五节 数组应用-程序举例
第一节 数组的概念
前面章节涉及的问题都是比较简单,编写的程序也不复 杂,这些程序的一个突出特点是所处理的数据量非常少,采用 的数据类型都是简单的内部数据类型,使用的变量都是普通变 量。然而在实际的科研数值计算中,往往遇到的是一些涉及大 量数据的复杂问题,如: ?思考:输入某班50个学生的成绩,统计平均成绩以及高于 平均分学生的人数。

fortran语言教程第7章

fortran语言教程第7章

第7章 模块化程序设计7.1 程序的模块化思想引例: 输入M 、N ,计算并输出:)!(!!n m n m c n m -= 源程序(I ) READ(*,*) M, N DO 5 WHILE(M.LT.N) READ(*,*) M,N 5 CONTINUE X=M T=1.0 DO 10 I=1,X T=T*I 10 CONTINUE S=T X=N T=1 DO 20 I=1,X T=T*I 20 CONTINUE S=S/T X=M-NT=1DO 30 I=1,XT=T*I30 CONTINUES=S/TWRITE(*,*) SEND源程序(II )FUNCTION FA(N)T=1.0DO 10 I=1,NT=T*I 程序段110 CONTINUEFA=TENDREAD(*, *)M, NDO 5 WHILE(M.LT.N)READ(*,*) M,N5 CONTINUE 程序段2S=FA(M)/(FA(N)*FA(M-N))WRITE(*,*) SEND源程序(I )中,加粗的3段完全相同,我们可以将其提炼出来,独立写成一个程序单位,构成一个子程序单元,写成源程序(II )的形式,这样的程序就形成了主程序和子程序的多部分、多模块的格局。

一般而言,模块是指可以独立存盘,并且可以分别编译的源程序文件,是一种构成FORTRAN 程序的独立成分。

即是说子程序与主程序可以分别编辑存盘、编译,此时即形成所谓的多模块程序。

程序模块化的优点是:(1)体现了算法和功能上的模块化,符合人们解决复杂问题的一般思路,也为结构化程序设计提供了有力支持。

(2)使复杂的软件开发工作可以化整为零,便于多人分工协作,减少开发人员之间的相互干扰与重复劳动,从而有利于缩短开发周期,节省开发费用,提高软件质量。

(3)可以设计一块,调试一块,设计完成,调试也随之完成,能够方便有效地防止数据之间的相互干扰,增加整个系统的稳定性与可靠性。

fortran语言编程第一章

fortran语言编程第一章

起止框
输入输出框
判断框
处理框
↓或→
流程线
联结点
]
注释框
这些符号已为世界各国程序设计者普遍采用
前一页 休息
9
[例3]用传统流程图描述求解“n!=?”的算

开始
1 T
2I
T×I T
I+1 I 是
In

输出T
结束
前一页 休息
10
[例4] 用传统流程图表示 “判定一个大于或 等于3的正整数是 否是素数?”的算法
前一页 休息
12
前一页 休息
13
前一页 休息
14
结构化流程图表示
l 三种基本结构的流程图 l N-S流程图
前一页 休息
15
三种基本结构的流程图
(1)顺序结构
•a A
B •b
前一页 休息
16
(2) 选择结构(又称选取结构)
前一页 休息
17
(3) 循环结构(又称重复结构)
当型循环结构
直到型循环结构
z=(100-5*x-3*y)*3 ←z是3的倍数 z=100-x-y
前一页 休息
32
参考答案
S1: X 0 S2: Y 0
S3:100-X-Y Z
S4: 如果Z能被3整除,同时5*X+3*Y+Z/3等于100, 则X,Y,Z的值为一个合理的解,输出X,Y,Z
S5:Y+1 Y S6:如果Y33,返回执行S3、S4和S5
S6:输出T
得到结果10395
前一页 休息
30
课堂练习2
用自然语言描述求解“百钱百鸡”的算 法
一只公鸡值五文钱 一只母鸡值三文钱 三只小鸡值一文钱 请问用一百文钱买一百只鸡,公鸡、母鸡

fortran语言教程第8章

fortran语言教程第8章

第8章 FORTRAN语言的文件操作在前面介绍的程序中,结果都是输出在屏幕上,数据都是通过键盘送入内存单元,实际上数据的输入/输出也可在磁盘上。

如图所示:FORTRAN中对文件的存取以记录为单位,即:输出时:一个输出语句的数据就是一个记录,叫写入文件。

输入时:一个输入语句需要的数据就是一个记录,叫读出文件。

本章讨论FORTRAN程序的文件操作,也就是FORTRAN程序对磁盘数据文件的操作——读/写方式,并描述数据文件的记录结构,以及在程序设计中怎样建立,使用这些数据的记录结构。

8.1文件的概念8.1.1 文件的分类1)按记录存储结构分:顺序文件:文件记录存储按照时间顺序依次存放,记录的逻辑次序与物理顺序是一致的,不能随意读或取某个记录,必须从首记录开始访问。

直接文件:又叫随机文件,记录存放按记录号完成。

2)按记录数据存放格式分:有格式文件:记录以字符形式(或称ASCII码形式)存储,文件的数据流由一个个的字符组成,每个字符占据一个字节,每条记录用回车和换行符作为结束符,可以用文本编辑器(如记事本)直接打开查看。

无格式文件:数据以计算机内部的二进制代码形式存放。

如果用文本编辑器直接打开查看,只能看到乱码符号。

二进制文件:这是Microsoft的一种扩充模式,数据按其在内存中的存储形式存储在文件中,其数据流由二进制代码形式的一个个字节组成,结构最紧凑,适合保存大容量的数据。

用文本编辑器直接打开查看也只能看到乱码。

归纳起来,FORTRAN语言的文件可以分为:有格式(顺序文件、直接文件、二进制文件);无格式(顺序文件、直接文件、二进制文件);8.1.2 文件的操作1)文件记录定位文件在存取过程中,有一个文件指针控制着读写的位置,它总是指向当前进行输入或输出的那个记录,也可以通过语句拨动指针的位置。

2)文件操作的过程打开文件:要求机器分配一个供该文件使用的I/O缓冲区。

读或写文件:将数据通过分配的I/O缓冲区向文件中读写记录。

fortran 教程

fortran 教程

fortran 教程Fortran是一种古老而强大的编程语言,最初在1957年开发。

它被广泛用于科学和工程计算,特别是对大型和复杂的计算任务。

Fortran之所以如此受欢迎,是因为它在数学计算领域表现出色。

它拥有丰富的数学函数和运算符,并且支持高精度计算。

此外,Fortran还具有强大的数组处理能力,可以轻松处理大规模数据。

Fortran的语法相对简单,易于学习和使用。

它使用英语类似的语法,语句以换行符结束。

Fortran中的语句通常以关键字开始,例如"PROGRAM","SUBROUTINE"和"DO"等。

Fortran具有自己的变量类型,包括整数(INTEGER)、实数(REAL)和字符(CHARACTER)等。

变量必须在使用之前先声明,并且可以指定其大小和精度。

Fortran还支持过程式编程,包括子程序和函数的定义。

子程序可以接受输入参数,并返回结果。

这种模块化的编程方法可以提高代码的可读性和可维护性。

Fortran程序通常由一个主程序(PROGRAM)和若干个子程序(SUBROUTINE)组成。

主程序是程序的入口点,而子程序则可以被主程序或其他子程序调用。

Fortran还提供了许多控制结构,包括条件语句(IF-THEN-ELSE)和循环语句(DO)等。

这些结构可以帮助程序在不同的情况下做出不同的决策和重复执行特定的代码块。

在写Fortran程序时,编码风格非常重要。

良好的编码风格可以使程序更易于阅读和理解,减少错误的发生。

在Fortran中,常用的编码风格包括正确缩进、适当的变量命名和注释的使用等。

总结起来,Fortran是一种强大而易于学习的编程语言,特别适用于数学计算和科学工程领域。

通过掌握Fortran的基本语法和编码风格,您将能够编写高效且可靠的程序。

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字符位以后不能有内容。

fortran 简明教程

fortran 简明教程

fortran 简明教程Fortran是世界上最早的高级程序设计语言之一,广泛应用于科学计算、工程和数值分析等领域。

以下是Fortran的简明教程:1. 程序结构:一个Fortran程序由不同的程序单元组成,包括主程序、子程序和模块等。

每个程序单元都以END结束。

主程序是程序的入口点,可以包含变量声明、执行语句和控制语句等。

子程序可以包含函数和子例程,用于执行特定的任务。

模块用于提供程序中的公共代码和数据。

2. 变量声明:在Fortran中,变量必须先声明后使用。

变量类型包括整数型、实数型、字符型等。

例如,声明一个整数型变量可以这样写:INTEGER :: x3. 执行语句:执行语句用于控制程序的流程和执行顺序。

Fortran提供了多种控制语句,如IF语句、DO循环、WHILE循环等。

例如,使用IF语句进行条件判断:IF (x > 0) THEN y = x x ELSE y = -x x END IF4. 输入输出:Fortran提供了基本的输入输出功能。

可以使用READ语句从标准输入读取数据,使用WRITE语句将数据输出到标准输出。

例如,读取一个实数并输出到屏幕:READ(,) x WRITE(,) x5. 数组和矩阵:Fortran支持一维和多维数组,以及矩阵运算。

例如,声明一个二维实数数组并赋值:REAL :: A(3,3) A =RESHAPE((/1,2,3,4,5,6,7,8,9/), (/3,3/))6. 子程序和模块:子程序可以用于封装特定的功能或算法,并在主程序中调用。

模块可以包含公共的函数、子例程和变量等,用于提供可重用的代码和数据。

7. 调试和优化:Fortran提供了多种调试工具和技术,如断点、单步执行、变量监视等。

还可以使用性能分析工具来检查程序的性能瓶颈并进行优化。

以上是Fortran的简明教程,希望能帮助您快速入门Fortran编程。

FORTRAN语言第5章(共8章)

FORTRAN语言第5章(共8章)

例5.1 求Fibonacci数列前30项之和。 Fibonacci数列的递推公式是: F0=0 F1=1 Fi=Fi-1+Fi-2
分析:设置两个变量来存放已求得的最后两项的 值:F2保存已求得的最后一项(即Fi-1),F1保 存前一项(即Fi-2)。这样,下一待求项就是F1 和F2之和,我们将它赋值给F,然后将原来的F2 赋值给F1,原来的F赋值给F2,又可以由F1和F2 推出一个新的F,如此可以一直推下去。 本例中,Fibonacci数列前30项之和是一个很大 的数,已经超过了类别参数为2的整数的取值范 围,只能采用类别参数为4整数。如果数超过类 别参数为4的整数取值范围,就只能采用实型数 据来处理。
例5.2 利用双精度按下面近似公式求
ln x

1 x
2
x 2
1
x3Biblioteka 13 24x
5

13 5 246

x
7

3
5
7
直到最后一项的绝对值小于10-15为止。 分析:首先找出累加项fn与fn-1的递推关系。不难推 出 f0 =x
f n= (2n - 1)(2n - 1) x (2n)(2n 1)
类别参数 1 2 4 字节数 1 2 4 取值范围 -1 2 8 ~ 1 2 7 -3 2 ,7 6 8 ~ 3 2 ,7 6 7 -2 ,1 4 7 ,4 8 3 ,6 4 8 ~ 2 ,1 4 7 ,4 8 3 ,6 4 7
在FORTRAN90中,还可以使用二进制、 八进制和十六进制整型常量,但它只能用 于DATA语句中。
例5.5 有一线段AB,A的坐标为(1,1),B的坐 标为(4.5,4.5),如图5.2所示。求AB的长度, 以及黄金分隔点C的坐标。黄金分割点在线段 的0.618处。

Fortran语言教程

Fortran语言教程

Fortran语言教程Fortran(Formula Translation)是一种面向科学和工程计算的高级程序设计语言,由IBM公司于1950年代初开发。

它是世界上第一种高级程序设计语言,也是最早被广泛应用于科学计算领域的编程语言之一、Fortran在过去几十年中一直是科学计算领域中最受欢迎的编程语言之一,它提供了丰富的数值计算和数组处理功能,并具有高效的性能。

Fortran语言的主要特点是其简洁、清晰的语法结构和丰富的数学函数库。

它使用类似于数学公式的语法,使得编写科学计算程序变得更加直观和容易。

Fortran支持各种数据类型,包括整型、实型、复型和字符型等。

它还提供了强大的数组操作功能,可以方便地进行矩阵运算和向量处理。

此外,Fortran还支持模块化编程和面向对象编程的特性,使得程序的开发和维护更加灵活和高效。

Fortran语言的代码以子程序(subroutine)为基本单位,程序的执行从主程序开始,通过调用子程序来完成具体的计算任务。

子程序可以接受输入参数,并返回计算结果。

这种模块化的设计使得程序的结构清晰,易于理解和维护。

Fortran还支持递归调用,可以方便地处理复杂的计算问题。

Fortran语言还具有很好的可移植性和跨平台性。

由于Fortran语言的标准化程度较高,因此几乎所有的Fortran编译器都遵循相同的语法规则和标准库函数接口。

这使得Fortran程序可以在不同的计算机平台上进行编译和运行,而不需要进行太多的修改。

虽然Fortran语言在过去几十年中一直是科学计算领域的主流语言,但随着计算机硬件和编程技术的快速发展,它的地位逐渐下降。

现在,许多科学计算任务更倾向于使用更现代的编程语言,如C、C++和Python等。

但是,由于Fortran在科学计算领域的广泛应用和丰富的数值计算功能,它仍然是一种重要的编程语言,尤其在一些特定的领域,如气象学、物理学和地球科学等。

总结起来,Fortran是一种面向科学和工程计算的编程语言,具有简洁、清晰的语法结构和丰富的数值计算功能。

FORTRAN语言第8章(共8章)

FORTRAN语言第8章(共8章)

8.2 函数子程序(外部函数)
语句函数只能用一个语句定义,而且只 能在定义它的程序段中使用。
分析:函数f(X)是用两个表达式定义的,不 能用简单的语句函数来表示。怎么办? FORTRAN提供了一种方法,就是把函数的 计算部份从程序中独立出来,并按一定的格 式编成一个单独的子程序段,称为外部函数 或函数子程序。
2、如果f(x)与f(x1)同号,则用x作为新 的x1,这就舍去了原来的(x1,x)区间。
x2 x
如果f(x1)与f(x2)异号,则它们之间的连线必然交x轴于x点 有x=x2-(x2-x1)*f(x2)/(f(x2)-f(x1)) 3、再根据新的x1,x2,找到与x轴的交点x,重复上述步骤。
LOGICAL S F(X)=X**3-2.0*X**2-7.0*X+4.0 S(A,B)=SIGN(A,B).EQ.A 10 READ(*,*)X1,X2 F1=F(X1) F2=F(X2) IF(S(F1,F2))GOTO 10

一、语句函数的概念 引例:计算W=0.2P(X)+0.3P(Y)+0.5P(Z) 其中P(T)=0.812T3+1.256T2-3.378T+0.689
WRITE(*,*)’请输入X,Y,Z的值:‘
READ(*,*)X,Y,Z
P1= 0.812*X**3+1.256*X**2-3.378*X+0.689 P2= 0.812*Y**3+1.256*Y**2-3.378*Y+0.689
语句函数小结: 在语句函数定义的语句中,也可出现其他的语句 函数引用,但被引用的语句函和须在它前面已定义。 不允许引用自身或在它后面定义的语句函数。 例:S(A, B, C) = (A+B+C) / 2.0

Fortran语言教程

Fortran语言教程
v,h2,aver,… 为实型变量
2021/4/28
26
3.6 变 量
⒉显式说明 即用类型说明语句指定变量的类型。
如: Integer——说明变量为整型变量 Real——说明变量为实型变量 Double precision——说明变量为双精度变量 Complex——说明变量为复型变量 Logical——说明变量为逻辑型变量 Character——说明变量为字符型变量
打开指定的文件→选 “Build”→ “Compile st01.for”。 五、连编项目文件
选 “Build”→ “Build aaa.exe”。 六、运行项目文件
选 “Build”→ “Execute aaa.exe”。(显示程 序执行结果)
2021/4/28
15
3.4 Fortran程序的编辑与运行
3.5 常 量
说明: ⑴一个数值用指数形式表示时有两种表达方式:
①一个基本实数后面跟指数部分。 例: 0.876→8.76E-1
-2589.4→-2.5894E+3 ②一个整数后面跟指数部分。 例: 0.876→876E-3
-2589.4→-25894E-1
2021/4/28
20
3.5 常 量
⑵同一个数值可用不同的指数形式表示。 例: 0.876→8.76E-1→87.6E-2→876E-3
2021/4/28
31
3.7 Fortran内部函数
注意几点:
⑴函数自变量(参数)必须用括号括起来。
例:sinx+cosx → sin(x)+cos(x)
⑵函数自变量可以是常量、变量或表达式。
例: exp(3.0)
sin (x+cos(x))

fortran教程

fortran教程
第二节 赋值语句
1、赋值时,自动进行类型、种别转换。对逻辑型、字符型要求类型 一致。字符型要求种别一致。
2、复型常数形式:(a,b)。 3、类型转换函数:
INT(X), INT(X,KIND), REAL(X), REAL(X,KIND), CMPLX(X,Y), CMPLX(X,Y,KIND)。 4、对数组所作的基本函数操作相当于对数组内每个元素施加该操作。 5、不同种别参数的数据运算时,结果取决精度或允许值范围较大的 那个种别参数。
对字符型常数,用前缀法,即把种别参数放在前,再加下划线,再跟字符常数。如 5_'a bc'。
6、属性 a.常数名属性。如:INTEGER,PARAMETER::Y=12 说明 Y 为常数,在 程序中不能改变其值。 b.数组属性。如:INTEGER(KIND=2),DIMENSION(-3:10)::X 说明 X 是数组(-3:10)。 c.意图属性。只用于子程序中。如: INTEGER.INTENT(IN)::X 说明 X 用来传入。 INTEGER.INTENT(OUT)::X 说明 X 用来传出。 INTEGER.INTENT(INOUT)::X 说明 X 先传入值,再传出。 d.没有属性的只是基本变量。
2、写语句 WRITE (部件号,格式说明)输出表 PRINT 格式说明,输出表 PRINT *,输出表 WRITE (说明符 1,说明符 2,...,说明符 n)输出表
3、表控格式 a.输入复数时要加括号。 b.当需要输入几个连续无效值时,可输入 r*,r 是重复系数。若某 个数以后的所有数都无效,可用/表示。如: 2.1,2*,5.1 2.1,3.1/ c.输出时一般每个数占 16 列,靠右对齐,左补空格。
在形状描述中要指明上下界,可以有变量。如分配成功,STAT 赋零,出错则大于零。 c. 释放语句 DEALLOCATE(数组名,数组名,...[,STAT=变量名]) 第五章 过程

FORTRAN简明教程

FORTRAN简明教程

《FORTRAN》程序设计原理1、程序结构及书写规则一个程序由不同的程序单元组成,每一程序单元均以end结束,一般情况下,主程序的结构为:Program程序单元名说明语句可执行语句……STOPEND子程序的结构为:SUBROUTINE 程序单元名(哑元名表)说明语句可执行语句………RETURNEND以及FUNCTION 程序单元名(哑元名表)说明语句可执行语句………RETURNEND程序单元名由字母和数字组成,各程序单元中的变量独立编译,同名变量相互不影响。

1-5列为行号,可以是1-99999之间的任意数,6列为续行号,可以是任何字符,正文从第8列写到72列。

当第1列为字符C时,此行为注释行。

2、说明语句说明语句分为二类,一类必须放在程序单元的开头,另一类可以放在任何地方。

2.1 变量说明语句这一类说明语句,必须放在程序单元的开头,以表明变量的性质。

若不加以说明,以I-N开头的变量均为整型,其余变量均为实型,称之为I-N规则。

同一变量经下列显式说明语句说明后,I-N规则失效,没有经显式说明的变量,I-N规则仍然有效。

PARAMETER(变量名=const,……)REAL 变量名表INTEGER变量名表CHARACTER变量名表LOGICAL变量名表COMPLEX 变量名表IMPLICIT 变量基本类型(字符名表)DOUBLE PRECISION变量名表DIMENSION变量名表COMMON 变量名表COMMON /公共区名/ 变量名表DATA 变量名表/数值名表/一个变量可由多个语句说明,其中类型说明语句的级别最高,例如:Implicit real (a-c,e) 由a,b,c,e开头的变量均为实型Dimension ax(100) 定义一个100个元系的实型数组Integer bx, ax 重新定义bx, ax为整型变量2.2 格式说明语句这一类语句可以放在程序单元内的任何地方,常用的有:FORMAT(nFw.d, nX, nAw, nIw, ‘…….’, \ ,nEw.d)这里,n是重复使用该格式码的次数,F表示实型,X表示空格,A表示字符,I表示整型,E科学记数法,w是输入/出的宽度,d是小数位数,引号‘’内的内容原样输出,斜线‘\’表示输入/出时换行。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档