7 Fortran 程序设计7-函数

合集下载

补充相关计算机Fortran77语言知识

补充相关计算机Fortran77语言知识

4.FORTAN函数
FORTRAN提供了一些系统函数供某些专门运算,如求 sinx 三角函数的值, ,cosx,指数函数ex,对数 lnx,logx 等, 变量,即可得到相应的值。如: SIN(1.0)= =0.8414709 LOG 3.0)=log3=1.098612 ( INT 8.6)=8 ( SIGN 4.5,-0.5)=-4.5 ( SIGN -0.5, 4.5)= 0.5 ( REAL(8)=8.0
(二) FORTRAN语言数据类型说明 1.常量
常量是指其值始终不变的一些量,在Fortran77 中允许6种常量类型:

⑴整型常量(Integer)
⑵实型常量(Real) ⑶双精度常量(Double)

⑷复型常量(Complex)
⑸逻辑常量(Logical)
⑹字符常量(Character)
①系统为每个整数分配10~13列,数据打印在这些列的 右端。

②一个实数分配给15 ~ 18列,其中小数部分6 ~ 7列。如 果实数的值很大,以上格式无法容纳,则系统会自动改成用 标准化的指数形式输出。
③对一个用指数形式输出的实数分配给15列,其中指数部 分4 ~ 5列,小数部分6列。
④如果实数的整数部分位数多于系统规定的有效位数(例如 IBM—PC为7位),或实数的数值小于1,则在输出时会自动 转换成规范化的指数形式输出。如123×106和0.132的输 出为,
类型的转换是从左而右进行的,在遇到不同类型的算 术量时才进行转换。如:1/4*20.0=0.0
(四) 运算的误差问题
整型量没有任何误差(确认在整数范围内)。 实型量的运算由于有效位数的限制会出现一些误差, 在运算中尽量不要使两个相差很大的数值直接相加或相 减,判断实数相等时用 A B 。

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课程设计

fortran课程设计

fortran课程设计一、课程目标知识目标:1. 掌握Fortran编程语言的基本语法和结构;2. 理解Fortran程序的基本运行流程和控制逻辑;3. 学会使用Fortran进行简单的数值计算和数据处理。

技能目标:1. 能够独立编写简单的Fortran程序,并进行调试和优化;2. 能够运用Fortran语言解决实际问题,如求解线性方程组、计算函数值等;3. 能够阅读和分析Fortran程序,理解程序的设计思路和算法。

情感态度价值观目标:1. 培养学生对编程的兴趣,激发学习主动性和积极性;2. 培养学生严谨、细致的编程习惯,注重代码质量和效率;3. 增强学生的团队合作意识,学会与他人合作解决问题。

课程性质:本课程为计算机编程入门课程,以实践为主,理论联系实际,注重培养学生的动手能力和编程思维。

学生特点:学生为初中生,具备一定的数学基础和逻辑思维能力,对计算机编程有一定的好奇心。

教学要求:结合学生特点和课程性质,采用案例教学、任务驱动等方法,引导学生主动探索,注重实践操作和课堂互动。

在教学过程中,将课程目标分解为具体的学习成果,以便进行教学设计和评估。

二、教学内容1. Fortran基础知识- 程序结构及基本语法- 数据类型与变量定义- 运算符与表达式- 控制结构(顺序、选择、循环)2. 简单数值计算与数据处理- 数组的使用- 函数与子程序- 简单的输入输出操作- 常用数学函数与模块3. 程序设计方法- 任务分析与问题求解- 算法设计- 编码实现与调试- 代码优化与效率分析4. 实践项目与案例分析- 线性方程组求解- 函数绘图- 数据排序与查找- 综合案例分析与实现教学内容根据课程目标制定,涵盖Fortran编程基础、数值计算与数据处理、程序设计方法等方面。

教学大纲明确教学内容安排和进度,结合教材章节进行组织。

在教学过程中,将依据学生的掌握程度,适时调整教学进度,确保内容的科学性和系统性。

教学内容与实践项目相结合,提高学生的实际操作能力和问题解决能力。

Fortran程序设计第7章属性的声明

Fortran程序设计第7章属性的声明

第7章属性的声明最后,对于数据我们剩下的工作,就是如何运用FROTRAN语言来完整地加以描述。

FORTRAN语言完成对数据的描述的语法单位是数据声明语句,在前面2章里面,我们整理好问题当中需要涉及的数据及其结构之后,要以FORTRAN语言写下来,就是使用FORTRAN的声明语句,这些语句的句法设计保证能够完备的描述我们关于数据所需要说明的一切属性。

数据对象首先需要予以说明的当然就是它的类型,因此我们首先给出对象的类型声明语句,特别地,需要说明在最初FORTRAN标准里面遗留下来的一种数据类型描述方法——隐式类型描述法,然后讨论各种数据对象所可能具有的属性。

● 数组属性;● 指针属性;● 值特征;● 对象可访问性与使用属性;● 特征兼容性;● 自动数据对象;● 存储关联。

由于本章集中讨论FORTRAN的声明语句,而声明的对象除了数据之外,其他的程序对象,例如函数,过程等也需要声明其类型或属性,因此本章一并讨论对其他程序对象的声明:● 过程属性;● NAMELIST语句;7.1 属性及其声明方式所谓一个对象的属性,就是程序使用该对象的方式。

本章所讨论的属性的大体分类与作为其名称的关键词见表7-1:表7-1属性的分类及其关键词数据类型INTEGERREAL(以及DOUBLE PRECISION)COMPLEXLOGICALCHARACTERTYPE(派生类型的名称由用户命名)数组属性DIMENSIONALLOCATABLE指针属性POINTERTARGET值设置DATAPARAMETER对象可访问性与调用 PUBLICPRIVATEINTENTOPTIONALSAVE过程属性EXTERNALINTRINSIC对象关系属性NAMELISTEQUIVALENCECOMMON这些关键词的使用,或者说属性的声明有2种方式:●在类型声明时附加属性说明,这种语句形式侧重在给出数据对象,属性说明是附加的;●使用单独的属性声明语句,这种语句形式侧重在说明属性本身。

Fortran程序设计-20200831-高阳

Fortran程序设计-20200831-高阳

中国海洋大学本科生课程大纲一、课程介绍1.课程描述:本课程主要针对环境科学与丄程学院动力方向(主要是本科三年级)的本科生开设的数值讣算的课程。

本课程作为编程技巧学习的重要课程,其主要任务是向学生介绍有关计算机程序设计的基本知识,使学生掌握FoitianQO和Foitran95的基本内容及程序设计的基本方法与编程技巧。

课题将理论讲解与上机实验紧密结合,旨在使学生在学习之后,能够熟练编写简单的程序,包括子程序和模块的编写。

因此,通过本课程的学习,可为学生以后进行动力方面的研究如数值模拟打下坚实的基础。

Tlie numerical calculation course is primarily aimed at undergraduates (mainly in Giade Tlii ee) ill the dynamic dii ection of the School of Environment Science and Engineering. As an important course for leaniiiig programming skills, its mainly task is to introduce students to the basic knowledge of computer programming,so that students can master the basic content of the Foitraii90 and Fortran95, as well as the basic methods and progianmiing skills. Tlie subject closely combines theoretical explanations with computer Experiment, aiming to enable students to write simple programs skillfully,including subroutines and modules. Through studying of tliis course, students can lay a solid foundation for their fxitiue dynamic research such as niunerical simulation.2.设计思路:Fortran语言是一门适合于科学和工程计算问题的程序设计语言;也是计算机高级语言发展史上使用最早的一种程序设计语言。

Fortran程序设计初步

Fortran程序设计初步

源程序的编辑与运行
创建源程序文件,即编写源程序,通常以 .f 为扩展名 可以使用任何文本编辑器编写 也可以用 f77 编译并连接源文件 (可以一步完成)
g77 -o
输出文件
源文件
-o :指定输出文件名,缺省为 a.out -c :只编译不链接,即只生产目标文件(.o 文件) -Ipath :指定或增加包含文件(如 *.h)的搜索路径 -Lpath :指定(增加)库文件的搜索路径 -lname:与库文件 libname.a 链接 -O, -O1, -O2, -O3 :优化开关 -g :在目标码中加入更多信息,用于程序调试 运行编译生成的可执行文件
Fortran 中的变量
类型声明语句 (显式声明) 推荐方式
类型声明语句 变量列表
integer i, i2 real x, y double precision sum complex c1, c2 logical l1, l2 character ch1, ch2
!
real*8 sum
Fortran 中的变量
! 表示10个3.1
简单输出语句
输入/输出三要素:对象(数据)、格式、设备 Fortran 输出语句分类 表控格式输出、格式输出、无格式输出
表控输出格式:按计算机系统规定的格式输出 整数:每个整数占 11 列,数印右端,左补空格 实数:占 15 列,数印右端,左补空格,小数部分占6列 表控输出语句
逻辑运算符两边为逻辑量 逻辑量:逻辑常量、逻辑变量、关系表达式 两个逻辑常量:.True.
.False.
运算结果为逻辑值:真(True)或 假(False)
算术运算 → 关系运算 → 逻辑运算 .not. →.and. →.or. →.eqv./.neqv.

fortran程序设计第3章

fortran程序设计第3章

2、用类型说明语句确定变量类型 FORTRAN中有六个类型说明语句: INTEGER语句(整型说明语句) REAL语句(实型说明语句) DOUBLE PRECISION语句(双精度说明语句) COMPLEX语句(复型说明语句) LOGICAL语句(逻辑型说明语句) CHARACTER语句(字符型说明语句) 例如: INTEGER A, SUM, TOTAL
3.6 简单的输出语句 3.6.1 输出语句的作用和分类
程序的作用是对输入的数据进行加工处理,然后将结果 输出。最常用的输出是显示。可用PRINT语句实现打印输出。 输出一个或多个数据时需要通知系统以下信息: (1)输出哪些数据; (2)用什么格式输出(如每个数据占多少列,小数部 分占多少列,是用小数形式输出还是用指数形式输出?) (3)在什么设备上输出。 3 如果已确定用显示器输出,可以用PRINT语句,用 PRINT语句意味着只能在显示器输出。在PRINT语句中将上 面提到的第1、2个信息告之系统。
3. 隐含说明语句IMPLICIT语句 IMPLICIT INTEGER (A, C, T-V) IMPLICIT REAL (I, J) IMPLICIT INTEGER (A, B), REAL (I, K)
说明:
1、类型说明语句最优先,IMPLICIT语句次之,I-N 规则最低。 例如: IMPLICIT REAL (I, J) INTEGER IMAX 2 、IMPLICIT语句和类型说明语句应该出现在程序 单位中的所有执行语句的前面,IMPLICIT语句又 应该在所有的类型说明语句的前面。
3.4 FORTRAN算术表达式 3.4.1 算术运算符和运算优先级
五种算术运算符号:+ - * / ** 不同的运算符按以下优先级次序: **最高 *, /次之 +, -最低 同一优先级的两个运算,按“先左后右”原则。 例如: 3+5-6.0*8.0/4**2

第3章 Fortran程序设计初步-1(fortran77)

第3章 Fortran程序设计初步-1(fortran77)

在FORTRAN77的基础上添
加了很多内容,FOR95只 能视为FOR90的修正版, 加强了并行运算方面的 支持功能.
5/116
NEXT
3.2 简单程序分析
10 20 30 40 50 60 70 80 01234567890123456789012345678901234567890123456789012345678901234567890123456789
3/116
3.1 FORTRAN语言发展概况




FORTRAN-Formula Translation (公式翻译) 是世界上第一个被正式推广使用的高级语言 (于1954年提出; 1956年正式使用) Fortran是数值计算领域里使用的主要语言; 发展(有代表性的几个版本): 早期的版本不是 Fortran Ⅱ 1958 结构化语言,没 Fortran Ⅳ 1962 (Fortran 66) 有直接实现三种 基本结构的语句 Fortran 77 1978 (使用goto实现 Fortran 90 1990 特定操作).F77
35/116
FORTRAN编译系统—连接装配
36/116
FORTRAN编译系统—开始运行
37/116
FORTRAN编译系统—显示结果
38/116
FORTRAN编译系统—开始运行
FORTRAN90编译系统界面简介 FORTRAN90编译系统操作步骤 FORTRAN90编译系统基本设置等
3.3 Fortran书写格式
Fixed Format(固定格式)
第1个字符
当为字母c、C或*,这一行文本会当成说明 或批注,不会被编译。 当为数字,就是用来给这一行程序代码取 个代号,不然只能是空格。

_fortran-第七章 过程

_fortran-第七章   过程

Fortran 提供了一个特定机制,使得可以在构建 最终的程序前容易地独立开发和调试子任务。 可以把每个子任务作为独立的程序单元来编码, 该独立程序单元被称为外部过程( external procedure) ,每个外部过程都可以独立于程序 中的其它子任务(过程)来进行编译、调试。 Fortran 中有两种外部过程:子程序 ( subroutine) 和函数子程序( function subprogram)(或者就叫函数, function)
7.1 子程序
SUBROUTINE 语句标志着子程序的开始,定义了子 程序名和相关参数表。子程序名必须遵循标准的 Fortran 命名规则由字母和数字组成,最大长度可以 到31 个字符,但第一个字符必须是字母。参数表含 有一系列变量和/或数组,这些变量、数组的值将从 调用程序传递给子程序。这些变量被称为形参 (dummy agument ,形式参数),子程序实际上没有 为它们真正分配任何内存空间。对从调用程序单元传 递来的实际参数(实参)来说它们仅仅是占位符。
每个子程序是一个独立的程序单元,它开始于 SUBROUTINE 语句,结束于END SUBROUTINE 语句。 当程序调用子程序时,调用程序的执行暂时被 挂起,子程序执行部分开始运行。当运行到子 程序的RETURN 语句或END SUBROUTINE 语 句时,调用程序又开始运行调用子程序语句下 面的程序代码。 任何可执行程序单元都可以调用子程序,包括 另一个子程序。(但是,子程序不能调用它自 身,除非它被定义为递归类型(recursive) )。
Fortran95/2003程序设计
第七章 过程
本章学习目标: • 学习Fortran 语言中的过程如何帮助实现好的程序设 计 • 了解子程序与函数的不同 • 掌握创建和调用子程序 • 理解并学会使用INTENT 属性 • 理解使用地址传递方案实现变量传递 • 理解显式结构的形参数组、不定结构的形参数组和不 定大小的形参数组之间的区别 • 理解为什么不再使用不定大小的数组 • 掌握在过程之间使用模块实现共享数据 • 理解显式接口,以及为什么在模块内部定义过程更好 • 能创建并且调用用户自定义函数 • 掌握如何把Fortran 过程调用参数传递给其他过程。

Fortran教程第七章数组

Fortran教程第七章数组

7.1 数组的概念
在许多应用中,我们需要存储和处理大量数据。在我们迄今涉及的程序设计问 题中,我们能够利用少量的存储单元,处理大量的数据。这是因为我们能够处 理每一个单独的数据,然后再重复使用存储该数据的存储单元。在有些应用中, 为了其后的处理,需要保存所处理的数据。例如,要计算和打印一个班学生的 平均成绩以及每个成绩与平均成绩的差。在这种情况下,在计算每个成绩与平 均成绩的差之前,首先计算平均成绩,然后计算每个成绩与这个平均成绩的差。 因此必须能够两次考查学生成绩。由于我们不愿意两次重复输入学生成绩,我 们希望在第一步时,将每个学生的成绩保存于单独的存储单元中,以便在第二 步时重新使用它们。在输入数据时,用不同的名字引用每一个存储单元将是烦 琐的。如果有100个成绩要处理,我们将需要一个长的输入语句,其中每个变量 名被列出一次。我们也需要100个赋值语句。
(接上页) DO I=1,2 DO J=1,3 WRITE(*,10)MAT(I,J) END DO END DO 10 FORMAT(1X,F6.2) END 程序运行时,输入数据的方法如下: 45 76 56 78 -67 56
第七章 数组
7.1 数组的概念 7.2 数组的说明与引用 7.3 数组元素的存储结构 7.4 数组的输入输出 7.5 给数组赋初值 7.6 数组的应用
在迄今所涉及的程序设计问题中,我们都是采用FORTRAN的基本数据类型(整型、 实型、复型、逻辑型和字符型)定义单个的变量来对数据进行描述。在科学计算中, 常常需要保存具有相同类型的一批数据,这时如果仍然用单个变量来表示,不但十 分麻烦,有时根本无法处理。为了描述现实问题中的各种复杂的数据,FORTRAN 语言还提供了由基本数据类型按某种机制组成的结构数据类型。数组是一种结构数 据类型,本章介绍它的定义与应用。

fortran第3章2 Fortran语言程序设计初步

fortran第3章2 Fortran语言程序设计初步

【例3_1】 如果用C写了两个子程序EIGEN和eigen,然后有如下 的FROTRAN片断:
EXTERNAL EIGEN
...
CALL EIGEN
...
上一页
END
下一页
这时它是该引用EIGEN还是eigen呢?如果所使用的
停止放映
FROTRAN系统正好是怪异的那种,没问题。如果是常
见的如CVF,这时它就无法区分EIGEN和eigen,这样
有关FORTRAN 95的辅助字符集的使用规则,请参
上一页
考具体的编译系统的说明。
下一页
停止放映
3.5 词汇
所谓FORTRAN的词汇就是一个语句的最小的意义单位,它 由一个或多个FORTRAN字符集里的字符组成。包括两类共 6种,分类例举如下: ● 由文字字符组成的词汇,包括4种:
▪ 语句关键词 ▪名称 ▪由单个词汇组成的字面常量 ▪标识符
在FORTRAN90与95中:
默认在FORTRAN77中的规定, 在FORTRAN90之后的标
准里,开始允许在一个程序单元内,由用户定义特定的不
上一页
依赖于固有数据存储模式的数据类型,这就是派生数据类
下一页
型。
停止放映
第二种情况:
指定固有数据类型的种别参数。
● 用来指定程序当中需要使用的每一种固有数据类型所要 求占据的内存空间大小的属性由种别参数表示。给这个变 量(参数)指定一个数值,就可以说明数据所需要的存储空 间的大小,也就是程序允许的数值数据的位数和字符串的 字符数目。
上一页 下一页 停止放映
其中第一个为八进制数,第二个为十进制数,第三个为十六进制数。
七.下划线的涵义:
● 下划线的主要作用就是置于单词之间代替空格, 使得我们在命名时使用清楚的英语词汇。

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.三个逻辑运算符。在逻辑表达式中除了有逻辑运算符 外,还可以有关系运算符和算术运算符。 下面是一些逻辑表达式的例子:

fortran用法小结

fortran用法小结

Fortran用法小结目录:一、说明二、概述三、数据类型及基本输入输出四、流程控制五、循环六、数组七、函数八、文件一、说明本文多数内容是我读彭国伦《Fortran 95 程序设计》的笔记。

只读到第九章,主要是3~9 章,都是最基本的用法(原书共16章)。

这里主要摘录了我看书过程中总结的一些Fortran 和C不同的地方,主要是语法方面。

希望这份笔记能够给学过C但没有接触过Fortran的同学带去一些帮助。

要想得更清楚些,推荐看一下原书,觉得作者真的写得很好,很清楚;如果有C语言的基础,看完前九应该很快的,花一两天就行了。

觉得如果耐心看完本文,基本功能应该也可以顺利用起来了。

外,由于我之前没有用过Fortran,这次为了赶文档看书又看得很粗浅,大多数东西看过之后都没得及仔细想,只是按着作者的意思去理解。

所以这份笔记还处于纸上谈兵的层次。

如果有不妥的方,希望大家指正。

谢谢!文中蓝色的部分是程序代码,!后面的内容为注释。

二、概述1、名词解释Fortran=Formula Translator/Translation一看就知道有什么特色了:可以把接近数学语言的文本翻译成机械语言。

的确,从一开始,IBM设计的时候就是为了方便数值计算和科学数据处理。

设计强大的数组操作就是为了实现这一目标。

Fortran奠定了高级语言发展的基础。

现在Fortran在科研和机械方面应用很广。

2、Fortran的主要版本及差别按其发展历史,Fortran编译器的版本其实很多。

现在在广泛使用的是Fortran 77和Fortr an90。

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学习笔记

fortran学习笔记

Fortran学习笔记——吴登将2014.10.15小技巧:!写出到excelexcel的默认格式,估计是大家所期望的输出格式。

方法很简单,只要知道xls文件的分列符号是tab键就行了,于是在同行的各数据间加上" "字符(按一下tab键,在fortran 输出时两边加上英文引号)就搞定了。

1.新建项目:步骤2. 面向过程的方法--就是程序的组成单位是函数(过程),也就是说,一个程序是由若干个函数组成的。

“结构化程序设计方法”应该与“面向过程的程序设计方法”是同义词。

面向对象的方法--就是程序的组成单位是类class ,程序是由若干个类组成的。

当然类里面有成员函数,所以这2种方法并不是相互排斥的。

面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。

面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。

例如五子棋,面向过程的设计思路就是首先分析问题的步骤:1、开始游戏,2、黑子先走,3、绘制画面,4、判断输赢,5、轮到白子,6、绘制画面,7、判断输赢,8、返回步骤2,9、输出最后结果。

把上面每个步骤用分别的函数来实现,问题就解决了。

而面向对象的设计则是从另外的思路来解决问题。

整个五子棋可以分为1、黑白双方,这两方的行为是一模一样的,2、棋盘系统,负责绘制画面,3、规则系统,负责判定诸如犯规、输赢等。

第一类对象(玩家对象)负责接受用户输入,并告知第二类对象(棋盘对象)棋子布局的变化,棋盘对象接收到了棋子的i变化就要负责在屏幕上面显示出这种变化,同时利用第三类对象(规则系统)来对棋局进行判定。

可以明显地看出,面向对象是以功能来划分问题,而不是步骤。

同样是绘制棋局,这样的行为在面向过程的设计中分散在了总多步骤中,很可能出现不同的绘制版本,因为通常设计人员会考虑到实际情况进行各种各样的简化。

FORTRAN语言课程设计

FORTRAN语言课程设计

FORTRAN语言课程设计摘要:科技的日新月异使得计算机领域不断取得新的研究成果。

计算机在代替和延伸脑力劳动方面发挥越来越重要的作用,不仅在工业方面而且在日常生活和科研中也越来越离不开计算机。

特别是在天体运动方面需要运用到计算机处理大量的数据。

这次我选的实践课题是用Jacobi迭代和Gauss-Seidel迭代法求解线性方程组AX=B,这其中涉及的就是天体运动的轨迹问题,我利用从FORTRAN 90中学到的迭代、循环、子程序等知识设计程序,通过Fortran PowerStation 4.0进行运行、调试,不得不提的是QuickWin,它在绘制行星的运动轨迹上发挥出了相当大的贡献。

通过这次的实践我从中充分体会到了Fortran语言接近数学公式的自然描述,在计算机里具有很高的执行效率的最大特性。

同时我也看到了Fortran语言是一种极具发展潜力的语言,在数值计算中,Fortran语言仍然不可替代。

Fortran90标准引入了数组计算等非常利于矩阵运算的功能。

在数组运算时,Fortran能够自动进行并行运算,这是很多编程语言不具备的。

运用Fortran 语言,你能够运用很多现成的函数软件包,所以非常便利。

关键词:Fortran ;Jacobi迭代和Gauss-Seidel迭代;天体运动1设计思想这次的课程设计我选的是第三个课题,关于求解天体的运行轨道,原题如下:●用Jacobi迭代和Gauss-Seidel迭代法求解线性方程组AX=b。

一天文学家要确定一颗小行星绕太阳运行的轨道,他在轨道平面内建立以太阳为原点的直角坐标系,在五个不同的点对小行星作了五次观察,测得轨道上五个点的坐标数据(单位:万公里)如下表所示:由开普勒第一定律知,小行星轨道为一椭圆,椭圆的一般方程可表示为:a1x2+2a2xy+a3y2+2a4x+2a5y+1=0分别将五个点的数据代入椭圆一般方程中,得到线性方程组,求出待定系数a1,a2,a3,a4,a5。

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

Fortran77语句和函数

Fortran77语句和函数
语句注释区一般作编号注释14fortran程序的编辑与运行一创建源程序文件并编写源程序二编译并连接源文件三运行程序编译生成的可执行文件15是双精度标志不能省指数d必须有FFra bibliotekrtran 语言
―― Fortran77 结构化程序设计
第一章 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

Fortran语言教程

Fortran语言教程
⑵同一个数值可用不同的指数形式表示。 例: 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。超出此范围时为“溢出”错 误。
3/26/2019 25
3.6 变

3.6.3 变量的类型 Fortran能处理各种类型的变量。不同类型 的变量用来存放不同类型的数据。 变量类型的说明(三种方式) ⒈隐含说明 即以I、j、k、l、m、n开头的变量为整型 变量,以其它字母开头的变量为实型变量。 (“I~N规则”) 例:imax,m5,number,… 为整型变量 v,h2,aver,… 为实型变量
3/26/2019
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。
3/26/2019
b b 4ac 2a
2
8
3.2 简单的Fortran程序分析
执行结果:
x1= 1.30 x2=-4.30
例2:试求3!,6!,9!的值。 编程如下:
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
九 函数和子程序

♦ ♦ ♦ ♦ ♦
概述
语句函数 函数子程序(自定义函数)(funcation) 子例行程序(subroutine) 实参和虚参之间的数据传送 其它应用
♦ 概述
使用顺序结构、选择结构和循环结构可设计和编写一些比较复杂的程 序; 使用函数和子例行程序能编写编写结构清晰、层次分
明、短小简洁的好程序,是编写高质量、高水平、高效率 程序的有效手段。 在设计和编写程序时,程序中不同部位会多次出现相同或相 似的运算或处理过程(程序代码)
PROGRAM water_prices REAL a,b,c,h,area,cubage,p,q,w_prices !输入三棱台底面三角形边长a,b,c和三棱台高h READ *,a,b,c,h !计算三角形面积area p=(a+b+c)/2 q=p*(p-a)*(p-b)*(p-c) area=SQRT(q) !计算三棱台容积cubage cubage=area*h !计算水价w_prices PRINT *,'每天需支付水价为:',t_prices END
用函数方法求解两问题:
!使用函数求解问题一程序,area为外部函数 PROGRAM total_prices EXTERNAL area !声明area为外部函数 REAL a,b,c,t_prices READ *,a,b,c !输入三角形边长a,b,c t_prices=area(a,b,c)*1000 !计算总价t_prices !定义外部函数area PRINT *,'地块总价为:',t_prices FUNCTION area(x,y,z) END REAL area,x,y,z,p,q !计算三角形面积area !使用函数求解问题二程序,area为外部函数 p=(x+y+z)/2 PROGRAM water_prices q=p*(p-x)*(p-y)*(p-z) EXTERNAL area !声明area为外部函数 area=SQRT(q) REAL a,b,c,h,cubage,w_prices END FUNCTION area READ *,a,b,c,h !输入棱台底面三角形边长a,b,c和台高h cubage=area(a,b,c)*h !计算三棱台容积cubage w_prices=cubage*0.8*2 !计算水价w_prices PRINT *,'每天需支付水价为:',w_prices END
一般方法求解
!计算五边形面积area area=area1+area2+area3 PRINT *,‘五边形面积:',area END
函数方法求解
PROGRAM pentagon REAL a,b,c,d,e,f,g REAL area !输入五边形5条边长和两条对角线 READ *,a,b,c,d,e,f,g !计算五边形面积area area=t_area(a,f,e)+t_area(g,d,f)+t_area(b,c,g) PRINT *,'五边形面积为:',area CONTAINS !定义计算任意三角形面积函数t-area FUNCTION t_area(a,b,c) REAL t_area,a,b,c,p,q p=(a+b+c)/2 计算任意三角形 q=p*(p-a)*(p-b)*(p-c) t_area=SQRT(q) END FUNCTION t_area END
例如:求五边形ABCDE的面积问题,如图9-1所示。 已知:五边形5条边长为:a、b、c、d、e,两条对角线为: f、g。五边形面积计算问题变为3个三角形面积计算问题,3个 三角形面积area1、area2、area3之和就是五边形面积area。 三角形面积A求解公式:三边长为x,y,z。
p (x y z ) / 2 A p(p x)(p y )(p x)
PROGRAM total_prices REAL a,b,c,area,p,q,t_prices !输入三角形边长a,b,c READ *,a,b,c !计算三角形面积area p=(a+b+c)/2 q=p*(p-a)*(p-b)*(p-c) area=SQRT(q) !计算总价t_prices t_prices=area*1000 PRINT *,'地块总价为:',t_prices END
如情况2:
பைடு நூலகம்
问题一:某房地产公司买下一块呈三角形形状的地盘准备盖住宅小 区,地价为每平方米1000元,求这块地的总价。
求解问题的核心是计算三角形面积。
问题二:某单位有一个呈三棱台形状的水箱,平均每天消耗2水箱水, 水价为每立方米8角钱,计算每天需支付的水费。
求解问题的核心是计算三角形面积。
用一般方法求解:
e E d
A a area1 f area2 g D c area3 C b B
如情况1:
PROGRAM pentagon REAL a,b,c,d,e,f,g REAL area1,area2,area3,area,p,q !输入五边形5个边长和两条对角线 READ *,a,b,c,d,e,f,g !计算三角形ABE的面积area1 p=(a+f+e)/2 q=p*(p-a)*(p-f)*(p-e) area1=SQRT(q) !计算三角形BDE的面积area2 p=(g+d+f)/2 q=p*(p-g)*(p-d)*(p-f) area2=SQRT(q) !计算三角形BCD的面积area3 p=(b+c+g)/2 q=p*(p-b)*(p-c)*(p-g) area3=SQRT(q)
对于比较复杂的问题 ,设计和编写程序需要采用科学的程 序设计方法。模块化和结构化程序设计方法是常用的程 序设计方法,使用这些方法可大大降低问题的复杂性 ,使复 杂问题的求解变得相对容易。使用函数和子程序可使用 模块化和结构化程序设计方法设计和编写大型、复杂、 高质量程序。 对复杂问题逐层进行任务分解,得到问题分层结构图。根 据分层结构图, 逐层设计和编写程序。最顶层问题用主程 序实现,其余层子问题用函数或子例行程序实现,最后将主 程序和若干函数或子例行程序组装成完整的可运行程序。 设计和编写主程序时,可假定下一层子问题已经通过函数 或子程序实现,暂不考虑其具体实现内容
相关文档
最新文档