FORTRAN语言第6章(共8章)
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
第一章 程序设计概述
1. 2. 3. 4. 5.
程序设计语言 程序与程序设计 算法的基本概念和特征 程序设计方法 习题一
5
《FORTRAN90程序设计》课多媒体课件
1.1 程序设计语言
概述 分类
目前,程序设计语言种类很多,各有特色,但本质相同。
程序设计语言属于人工语言、形式语言、非自然语言。 程序设计语言分:低级语言(机器语言、汇编语言)、高级语言。
概念
描述 示例
源程序、目标程序、汇编程序、编译程序之关系。
程 高级语言源程序 序 设 计 语 言
低级语言 编译程序 汇编语言程序
MOV ADD CPL INC ADD CPL INC OUTL
A,2H A,3H A A A,4H A A BUS,A
-----将2送累加器A -----将3与累加器相加,结果在累加器 -----将累加器数取反,求反码 -----将累加器数加1,求补码,结果为-5 -----将4与累加器相加,结果-1在累加器 -----将累加器数取反,求反码 -----将累加器数加1,求补码,结果为1 -----将累加器数1从总线输出
概述 分类
概念
描述 示例
任何一个计算机系统都是按照人们用某种程序设计语言编写的程序 进行工作,人们通过程序设计语言编写的程序来指挥和控制计算机运行。 程序设计语言是人与计算机进行交流的有效工具,伴随计算机诞生而诞 生,伴随计算机发展而发展,在计算机科学技术的发展过程中,发挥了巨 大作用。 对于计算机来说,如果说CPU是计算机心脏,那么程序设计语言及 其程序就是其灵魂。了解和掌握程序设计语言和程序设计方法是驾驭和 运用计算机系统的重要一环。
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) 产生一个种别值,它表示某一精度和范围。
Fortran语言教程
b b2 4ac
编程如下: x1,2
2a
c the roots of the quadratic equation
a=1.0
b=3.0
c=-5.6
x1=(-b+sqrt(b*b-4.0*a*c))/(2.0*a)
x2=(-b-sqrt(b*b-4.0*a*c))/(2.0*a)
write(*,100)x1,x2
2022/1/5
18
第18页,共387页。
3.5 常 量
3.5.2 实型常量
(有二种表示形式)
⒈小数形式
例:15.8,-21.05,14.0 ,14.,.17, 0.0 ,…
⒉指数形式(通常表示较大或较小的数)
例:100000000→1.0E+8
0.0000125→1.25E-05
2022/1/5
2022/1/5
22
第22页,共387页。
3.6 变 量
变量——在程序执行期间其值可以改变的量。
3.6.1 变量的概念
Fortran为每一个变量分配一个相应的 存储单元;每个变量在每个时刻只能有一 个确定的值。
例:x=4.5 x=8.0
x 4.5 x 8.0
2022/1/5 注:在程序中用到的变量都必须要有确定的值23 。
Fortran内部函数调用格式:
函数名(自变量)
2022/1/5
30
第30页,共387页。
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
fortran有限元程序课程设计
fortran有限元程序课程设计一、课程目标知识目标:1. 掌握Fortran语言的基本语法和程序结构;2. 理解有限元方法的基本原理及其在工程问题中的应用;3. 学会使用Fortran编写有限元程序,解决简单的物理问题;4. 了解有限元程序的调试与优化方法。
技能目标:1. 能够运用Fortran语言编写简单的有限元程序;2. 能够对有限元程序进行调试和性能优化;3. 能够运用所学知识解决实际工程问题,具备一定的编程实践能力;4. 能够通过团队合作,共同完成较复杂的有限元程序编写。
情感态度价值观目标:1. 培养学生对编程和计算物理学的兴趣,激发学生的求知欲和探索精神;2. 培养学生严谨、细致、勤奋的学习态度,提高学生的问题解决能力;3. 培养学生的团队合作精神,提高沟通与协作能力;4. 增强学生的民族自豪感,认识我国在有限元领域的发展成果。
课程性质:本课程为高年级专业选修课,旨在使学生掌握Fortran有限元程序的编写和应用,提高学生的编程实践能力和解决实际问题的能力。
学生特点:学生已具备一定的数学、物理和编程基础,具有较强的逻辑思维能力和动手能力。
教学要求:结合课本内容,注重理论与实践相结合,强化编程实践,提高学生的实际操作能力。
同时,注重培养学生的团队合作精神,提高学生的综合素质。
通过本课程的学习,使学生能够独立编写和优化有限元程序,为后续学习和工作打下坚实基础。
二、教学内容1. Fortran语言基础:变量定义、数据类型、运算符、控制结构、数组、函数与子程序等;2. 有限元方法原理:有限元离散化、单元划分、形函数、刚度矩阵、载荷向量、边界条件处理等;3. 有限元程序编写:根据实际问题,运用Fortran语言编写有限元程序,包括前处理、核心计算和后处理;4. 程序调试与优化:调试技巧、性能分析、优化方法等;5. 实际工程案例:选取具有代表性的工程问题,运用所学的Fortran有限元程序解决。
FORTRAN95第六章 Fortran 过程程序设计
普通的外部函数子程序形式之二为:
例6.2 利用函数子程序,计算N的阶乘。
! 计算N!的函数子程序
function fact (n)
!fact为外部函数子程序名, n为哑元
implicit none
integer:: n,i
! 说明哑元n和函数体中所用变量i的类型
real*8:: fact
! 说明函数名的类型
fact=1d0
!函数名作为变量名使用
do
write(*,*)'输入正整数m:'
read (*,*)m
if (m>0) exit
write(*,*)'输入了一个负整数或零,重输!'
end do
do
write(*,"('输入正整数n(n<=',i4,'):')")m
read (*,*)n
if (n>0 .and. n<m) exit
read *,n
h=(b-a)/n
do i=1,n-1
s=s+f (a+i*h) !调用语句函数f的语句
end do
s=h*(f (a)+f (b)+2.0*s)/2.0 !调用语句函f
write ( *,"('定积分的值为: ',f10.6)")s
FORTRAN语言第3章(共8章)
会再去执行。这一点同后面的SELECT CASE完
全不同。也就是说IF结构中的选择条件是允许重 叠的,但SELECT CASE语句不允许选择条件有 重叠。
第二节 块IF选择结构
1.ELSEIF语句其作用相当于将ELSE语句与其 后的ELSE块中的块IF语句连接在一起。 2.同块IF语句不同, ELSEIF语句与ENDIF语 句间不存在一一对应关系。 3.在这种IF结构中,允许使用多个ELSEIF语 句。在最后一个ELSEIF语句之后,可以有与 之对应的ELSE语句,也可以没有。当有 ELSE语句在最后时,表示如果前面所有的条 件都不成立,执行其后的ELSE块;如果没有 ELSE块,则表示如果前面所有的条件都不成 立时,流程转到ENDIF语句。
条 件 1 假 条 件 2 真 条 件 ...... 1 块 2 块 ...... 块 n 块 n +1 真 假 条 件 n 真 假 假
EN D IF 的 后 继 语 句
第二节 块IF选择结构
多重判断的IF结构中,判断条件的成立具有
唯一性。即一旦有判断条件成立,就去执行相应
的模块,如果其后仍有判断条件是成立的,也不
一个嵌套分支结构可使用若干个块 IF语句,相应就有若干个ENDIF语句,
每个块IF语句还可能使用一些ELSE
IF语句、ELSE语句,这就可能构成一 个复杂的IF-ELSEIF-THEN-ELSE结构。
当嵌套层次过多时,往往一时难以找
到同一层的块IF中的各语句,一般可 按以下方法确定: (1)从最内层的块IF语句开始,向下找到离它最近的ENDIF 语句,将它们用线括起来,这就是同一层次的块IF。 (2)由内向外重复这一个过程,直到遇见最外层块IF语句和 ENDIF语句为止。 (3)在书写嵌套分支结构时采取缩进方式进行程序书写,程 序的嵌套层次就容易确定。
Fortran语言基础
数值分析程序设计Part I F ortran语言基础COMPAQ VISUAL FORTRAN 6.50编译器的使用0.1 编译器简介高级语言以及汇编语言的程序代码在没有转换成机器代码前,计算机是无法执行的。
编译器的功能是将高级语言的程序代码翻译成计算机可执行的机器码,也就是生成扩展名为EXE, COM的文件。
0.2 Visual Fortran的使用Visual Fortran起源于Microsoft的Fortran PowerStation 4.0,这套工具后来卖给Digital公司继续开发,第二个版本称为Digital Visual Fortran 5.0,Digital 被Compaq并购之后,接下来的版本6.0和6.5称为Compaq Visual Fortran。
下面的介绍以Compaq Visual Fortran 6.5作范例。
Visual Fortran被组合在一个叫做Microsoft Visual Studio的图形接口开发环境中。
Visual Studio提供一个统一的使用接口,这个接口包括文字编辑功能、Project管理功能、调试工具等。
而编译器则被组合到Visual Studio中,VF和VC++使用相同的使用接口。
Visual Fortran 6.5除了完全支持Fortran 95的语法外,扩展功能方面提供了完整的Windows程序开发工具,专业版还含有IMSL数值计算连接库。
另外还可以和VC++直接互相连接使用,也就是把Fortran和C语言的程序代码混合编译成一个执行文件。
安装好Compaq Visual Fortran后,运行Developer Studio就可以开始编译Fortran程序了。
运行Developer Studio启动Visual Fortran,默认程序名称为Compaq Visual Fortran 6.5选择File菜单中的New选项在弹出的对话框中,选择Project标签。
《计算机科学概论》第6章 程序设计语言
传统的程序设计概念
2.数据结构
抽象的描述:数据的概念形态或布局。 通俗的理解:
当相同类型或不同类型的一组数据结合在一起使用时,可以使 用某种方式将它们组织起来,这种数据的组织方式就叫做数据结构。
一种常用的数据结构----数组,数组有: 同构数组(homogeneous array) 异构数组(heterogeneous array)
字符(character)类型 用来指称符号组成的数据 比较、查找、连接等运算
布尔(Boolean)类型 指称只有真和假两种值的数据项
传统的程序设计概念
1.变量和数据类型-说明变量的一般形式:
数据类型 变量名; 例如: int Height;
int Height, Width; int height = 100;
例如:Z = X + Y; Z := X + Y;
运算符优先(operator precedence) 赋值语句中的表达式的运算次序是借助运算符的优先级实现的 例如:2*4+6/2
重载(overloading):一个运算符的多重使用称为运算符的重载 例如: “abc” + “ok” 结果是:“abcok”
历史回顾
程序设计范型
程序设计范型代表了在构建问题的解决方法时的不同方法。 范型影响了整个软件的开发过程。我们应该称为软件开发范型。
历史回顾
程序设计范型
历史回顾
程序设计范型- 命令型范型 (过程型)
是一种传统的程序设计方法 这种范型告诉我们的程序设计方法是:先找到解决问题的算法,
然后用命令序列表示这个算法。 C、Pascal、BASIC…
过程的目的是要产生一个值,而不是一个动作。 例如:
组成原理课件——第6章阵列处理机和相联处理机
ILLIAC Ⅳ的组成
第 6 章 阵列处理机和相联处理机 PU56 PU63 PU0 PU57 PU1 PU58 PU7
PU8
PU7
PU8
PU9
PU15
PU16
PU55
PU56
PU0
PU57
PU1
PU63
PU7
PU0
ILLIAC-IV的处理单元互连结构
第 6 章 阵列处理机和相联处理机
特点: (1)闭合螺线阵列
的基本构件组合而成,模块性好;
第 6 章 阵列处理机和相联处理机
2.互连函数 互连网络的连接特征一般用一组互连函数表示。 互连函数:出端编码是入端编码的排列、组合、移位、取反 等操作的结果。表示所有入端与出端的连接关系。 互连函数有2种表示方法: (1)输入输出对应表示法 输入: 0 1 2 3 4 5 6 7 互连 0 1 N-1 输出: 1 0 3 2 5 4 7 6 函数 f(0) f(1) f(N-1) (2)函数式表示法: 入端编码表示: x = bn-1…b0 n=log2N 出端编码表示:f(x) = 基于bn-1…b0的操作的结果。 自变量和函数可以用二进制表示,也可以用十进制等表示
一. 矩阵加 矩阵加(配比加)是最简单的情况。假定两个8*8的矩阵 A、B相加,所得结果矩阵C也是一个8*8的矩阵 。设A、B 的分量元素分别存在PEM i的Z,Z+1单元中,所得结果矩阵C 各分量存在PEM i 的Z+2单元中 用下面三条指令可一次完成(64个处理单元并行) LDA Z;全部(Z)由PEMi送到PE的累加器RGAi ADRN Z+1;全部(Z+1)与(RGAi)进行浮点加,结果 送RGAi STA Z+2;全部(RGAi)由PE送到PEMi的(Z+2)单元
FORTRAN语言程序设计
n 是一个十进制数字(0~9)序列。
Kind值为:1、2、4、8之一。分别表示1、2、4、8个字节个数。
FORTRAN 90/95标准中整型常量的范围没有明确规定。
例如:122、0、-36、559_2
均为合法的整型常量
100.0、100,000、100 0、1002 均为非法的整型常量
5.6.2.2 实型常量
5.5 程序的书写格式 (1)固定格式:将一个语句行分为若干个区域,如下图所示
:
5.6 数据类型
5.6.1 基本概念 1.内部数据类型 FORTRAN语言将内部数据划分为以下类型: 整型 实型 算术型 数据类型 复型 逻辑型 字符型 2.种别 一个数据在内存中均占有一定字节个数的存储单元。上述每类数据都有 其不同的种别(即Kind)特性,即上述每类数据根据其种别特性(即 Kind值)的不同分别拥有不同字节个数的存储单元。 3.数据对象 1)常量:程序运行时,其值不能改变的量,称为常量。如:5,3等等。 2)变量:程序运行时,其值可以改变的量,如:变量a, a是一个存储单元
第四章 FORTRAN语言开发环境
详见教材:3.3 FORTRAN语言 开发环境
第五章 FORTRAN 语言基础知识
5.1 字符集
FORTRAN语言允许使用的字符集为:
fortran语言语法
FORTRAN是世界上最早出现的高级编程语言,是工程界最常用的编程语言,它在科学计算中(如航空航天、地质勘探、天气预报和建筑工程等领域)发挥着极其重要的作用。
经过40多年的发展,伴随着FORTRAN语言多次版本的更新及相应开发系统的出现,其功能不断完善,最新版本的开发系统几乎具备了VC、VB的所有特点,如图形界面编程、数据库等。
目前,工科院校开设的计算机编程语言课首选仍然是FORTRAN :<说实话,从科技发展的趋势来说这不是好事。
您可以设想一下,如果需要用鹅毛笔抄写大量的古籍是什么感受!强烈建议阅读《发掘C#特性赋予科学计算项目以威力》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语言第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常用算法的程序设计举例
b
a f (x)dx s1 s2
其中h c a 2
h { f (a) f (b) 4[ f (a h) f (a 3h)] 2 f (a 2h)}
3
7
如果将(a,b)分成四个小区间:
b f (x)dx h { f (a) f (b) 4[ f (a h) f (a 3h) f (a 5h)
stop
end if
10 continue
write(*,200) m 因有收敛问题,要 100 format(1x,'i=',i3,5x,'x1=',f15.7)
设最大循环次数。 200 format(1x,'computation has not',
$ 'converged after',i4,'iteration')
$ 200
read(*,*) a,b,n
求:
1
sin xdx
x=a
0
h=(b-a)/n
s=0.0
do 10 i=1,n
si=(sin(x+(i-1)*h)+
sin(x+i*h))*h/2.0
s=s+si
continue
write(*,100) a,b,n
write(*,200) s
format(1x,'a=',f10.3,3x,
6
3. Sinpson法
取a,b中点c—((a+b)/2,0),通过 f(a),f(b),f(c)三点可作:
b a
f1 ( x)dx
h[ 3
FORTRAN语言第7章(共8章)
二维数组,其中第一个下标代表元素所在行号,第二个下 标为该元素所在列号。
第一节 数组的概念
引入数组以后,让一批同类型数据共享一个名字,不 必为每一对象都取一个名字。数组元素是按顺序号连续 存放的,我们可以用循环语句控制下标的变化,这给在 同一方式下处理多个同类型数据带来极大方便。例如: REAL P(5),AVER DO I=1,5 READ(*,*)P(I) AVER=AVER+P(I) ENDDO AVER=AVER/5 !定义P数组 !输入成绩并存入P数组 !求成绩之和 !求平均成绩
PROGRAM example
num=0 DO i=1,15
REAL a(20),sum,av
INTEGER num sum=0.0
IF (a(i)>av) num=num+1 ENDDO PRINT *,'平均值为:',av PRINT *,'大于平均值的数据个数为:,num END
DO i=1,15
只要给出数组名和下标就可以表示某一数组元素。例如:
一个班30个学生的FORTRAN语言课程成绩组成一个数组 G,每个学生的成绩可表示为:
G(1),G(2),G(3),…,G(i),…G(30)
一、变量与数组的区别 例:30个学生4门课程的成绩 S(1,1),S(1,2),S(1,3),S(1,4) S(2,1),S(2,2),S(2,3),S(2,4) …… S(30,1),S(30,2),S(30,3),S(30,4) 二、数组的分类 在上例中,区分G数组的元素需要一个顺序号(下标),故称 为一维数组;而区分S数组的元素需要两个顺序号,故称为
名字后个别说明大小 个别优于统一
上例中说明了三个整型一维数组A,B,C,一个二维实 型数组D,其中A,C各含有5个元素,B含有4个元素;D中 含有12个元素。 在说明数组时,可以在数组名后面给出维说明,这时以 该数组名后的维说明为准。
Fortran95语言程序设计
《Fortran95语言程序设计》课程教学大纲课程英文名称:Fortran95 Programming Design课程编号:0332232002课程计划学时:32学分:2课程简介:FORTRAN语言程序设计是材料物理专业的开设的专业基础课, FORTRAN语言在科学计算领域有着十分广泛的应用。
通过本课程的学习,应使学生掌握FORTRAN95的基本概念,语法规则和利用FORTRAN95进行程序设计的方法。
使学生在后继课的学习中,能够利用FORTRAN95上机编程,解决相应的实际问题,并能在今后的学习和工作中,结合自己的专业知识,开发相应的计算机应用程序。
一、课程教学内容及教学基本要求第一章 Fortran语言程序设计概述本章重点:算法、程序基本结构难点:语言元素本章学时:2学时教学形式:讲授与上机实践相结合教具:计算机,投影仪第一节 Fortran语言程序设计概述本节要求了解:程序设计的过程、基本方法、程序设计语言的分类、Fortran语言的发展、Fortran77、Fortran95程序设计的构成及其兼容性,(考核概率20%)理解:算法的概念,掌握:算法的描述、程序基本结构与书写规则(考核概率100%)1 程序设计的过程算法的描述(重点,难点)2 程序设计的基本方法3 程序设计语言4 Fortran语言的发展5 Fortran95程序基本结构与书写规则(重点)6 Fortran95程序设计的兼容性第二节Fortran95开发环境(第一次上机实验课讲述)本节要求了解:在可视化编程的条件下Fortran 语言所具备的一些新的特点和功能,掌握:可视化编程所需的基础知识和一般步骤(考核概率100%)1 熟悉Fortran95 环境进入系统2 建立项目文件3 建立源程序文件4 输入源程序的内容5 编译、连接、运行作业:认真复习本章内容,预习第二章内容。
第二章数据类型及其运算本章重点:Fortran语言的基本数据类型及其常量表示方法难点:算术表达式的写法本章学时:1学时教学形式:讲授与上机实践相结合教具:计算机,投影仪第一节数据类型及其运算本节要求了解:各种类型常量、变量的定义、算术表达式的写法,(考核概率100%)掌握:Fortran语言的基本数据类型及其常量表示方法(考核概率50%)1 常量2 变量及其定义3符号常量及其定义4 Fortran表达式(重点)作业:认真复习本章内容。
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处。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第三节
常用的编辑描述符
编辑描述符可分成两大类:
直接向当前输出记录传递信
息,因此不需要输入输出项
与其对应。
非重复编 辑 描述符
非重复编辑描述符有:X编 辑符、撇号编辑符、斜杆编 辑符。
第三节
常用的编辑描述符
一、可重复编辑描述符
1、I编辑符 I编辑符用于规定整型数据的输入输出格式,其一 般形式为:Iω或Iω.m 用I编辑符进行整型数据输出时,遵循下列规则: 1)如果实际输出的整数数字位数小于ω,则在输出 整数的所有数字的左边用空格来补满整个场宽; M=10;N=100 WRITE(*,10)M,N Δ10 ΔΔ100 10 FORMAT(1x,I3, I5) END
A=Δ Δ 2.00 B= Δ Δ3.14 S= Δ Δ 6.28
记录1
记录2 记录3
一个WRITE语句输出打印了三行信 息,这是由于FORMAT语句中有两 处斜杠,使之产生三个输出记录 (注意,斜杠之后也有一个“1X”, 使第二个记录的第一个字符为“空 格”,作为纵向走纸符)。
3、斜杆描述符(/)
第六讲
格式输入输出
输入输出的三种不同的格式: 1.表控格式的输入输出 按照系统隐含的标准格式在默认的I/O设备上进行I/O操作。
按照用户要求的格式在指定的I/O设备上进行数据I/O操作。 2.有格式的输入输出
3. 不管数据的具体类型,一律以二进制的形式进行I/O操作 。 无格式的输入输出
要素:
1.在什么外部设备上输入或输出
F编辑符应用实例 A=2.0 B=3.14 S=A*B WRITE(*,10)A,B,S 10 FORMAT(1x,F6.2,F6.2,F6.2) Δ Δ 2.00 Δ Δ 3.14 Δ Δ 6.28 END
d大于实际需要出的实数小数部分的位数
F编辑符应用实例 A=2.0 B=3.145 S=A*B WRITE(*,10)A,B,S 10 FORMAT(1x,F6.2,F6.2,F6.2) Δ Δ 2.00 Δ Δ 3.15 Δ Δ 6.29 END
可以是星号*。*表示由计算机系统预先约定的外部设备, 一般为显示器。
第二节
格式说明语句
FORTRAN语言用专门的格式说明来描述输入
输出的格式。尽管格式说明可以直接放在输入输出 语句中,但为了使程序的可读性更强,最好使用格 式说明语句来进行格式说明。格式说明语句的一般 格式是: n FORMAT(格式说明) n是语句标号,FORMAT语句一定带有语句标 号,以便同格式输入输出语句配合使用;格式说 明由若干个编辑描述符组成,编辑描述符之间用 逗号分隔。如 10 FORMAT(1X,I4,F5.1)
第四节
格式编辑符的重复使用
(如rIw或rFw.d等) 等价于I5,I5 等价于F6.2,F6.2,F6.2
①单个描述符的重复 例如:2I5 例如:3F6.2
H的撇号编辑符前不能再加重复系数,但必需时可先 加一括号,然后再加重复系数。
例如: WRITE(*,200) 200 FORMAT(1X,5(‘*’),3(‘$’)) *****$$$
2.用什么格式输入输出
3.输入输出哪些数据
第三讲
格式输入输出
REAL*4 I,J,K I=12345.67890 J=98765.4321 K=I*J WRITE(*,*)"I=",I,"7788J=",J,"K=",K END
第一节
格式输入输出语句
格式输出语句有两个:PRINT语句和WRITE语句
Δ Δ B= Δ Δ3.14 Δ ΔS= Δ Δ 6.28
二、非重复编辑描述符
3、斜杆描述符(/)
作用: 结束当前正在输出的记录,并转入下一记录开始输出。
例
10
2.0,3.142 READ(*,*)A,B S=A*B WRITE(*,10)A,B,S FORMAT(1x,’A=’,F6.2/1x,‘B=‘,F6.2/1x,‘S=’,F6.2) END
第三节
常用的编辑描述符
二、非重复编辑描述符 1、X编辑符 用于在输入输出的常数之间插入空格。其一般形式是:
nX
其中n是正数,用于指明从当前位置向右跳过n 个字符位置。这里n不能省略,即使n为1,也要 写成1X。
2.0,3.142 READ(*,*)A,B S=A*B WRITE(*,10)A,B,S 10 FORMAT(1x,F6.2,2x,F6.2,2x,F6.2) Δ Δ 2.00 Δ Δ Δ Δ3.14 Δ Δ Δ Δ 6.28 END
例:
如果有两个连续的斜杠,如:
I=246; A=12.36; J=35; B=173.5 WRITE(*,100)I,A,J,B 100 FORMAT(1X,I3,F6.1//1X,I3,F6.1) 100 FORMAT(1X,I3,F6.1/1X,I3,F6.1/) END
输出完第一行后,空一行,再输出第二行。即: 如果在编辑符的最后出现斜杠,如: 输出完第二个记录后,再输出一个空行。即: 246 12.4 246 12.4 35 173.5 (空一行) (空一行) 35 173.5
一般形式 PRINT f,输出项 WRITE(u,f) 输出项 1、其中:f是格式说明符,指明了输出所用的格式。它有3种形式 1)格式说明符是一个“*”,表示输出使用表控格式。 2)格式说明符是一个字符常量。例如 PRINT ’(1X,2F7.3)’ , X,Y WRITE(*, ’(1X,2F7.3)’ ) X,Y 3)格式说明符是格式语句FORMAT的语句标号。这是最常用的 格式输出形式。例如 PRINT 100, X,Y 100 FORMAT(1X,2F7.3) WRITE(*, 200 ) A,B,C 200 FORMAT(1X,F9.4,2F7.3)
第二节
格式说明语句
格式说明语句(FORMAT语句)是非执行语句,它只是
给输入输出语句提供数据的格式描述。在程序运行
过程中,由输入输出语句根据格式说明语句提供的 数据格式描述,实现数据的格式控制。单独的格式 说明语句在程序中不起任何作用。
格式说明语句可以放在程序单位语句(PROGRAM语句 或子程序FUNCTION或SUBROUTINE语句)之后,END语 句之前的任何位置。
第三讲
一般形式
格式输入输出
WRITE(u,f) 输出项
格式输出语句有两个:PRINT语句和WRITE语句
PRINT f,输出项
2、输出项指定了输出的具体内容。可以是变量、常量、函 数以及表达式。此外,输出项还可以是隐DO循环。 3、u是设备号,用于指明具体使用的输出设备。u可以是一
个无符号整常量,也可以是一个整变量或整型表达式,还
10
Δ10 Δ0100
1、I编辑符
用I编辑符进行整型数据输出时,遵循下列规则:
3)如果实际输出的整数数字位数大于ω,则在字段 宽度范围内均用“*”输出,以表示规定的场宽不 够,无法正常输出该整数。
M=10;N=1000 WRITE(*,10)M,N FORMAT(1x,I3, I3) I4) END
第四节
格式编辑符的重复使用
(如:r(描述符组)) 1X,F6.2,2X,F6.2,2X
②描述符组的重复
例1:WRITE(*,10)A,B 10 FORMAT(1X,2(F6.2,2X))
三、打印机的走纸控制
FORTRAN规定,将输出记录中的第一个字符作为纵向 走纸控制符,这个字符不输出,而从输出记录的第二 个字符开始输出。
10 10 10 10
WRITE(*,10)olist FORMAT(1x, ) FORMAT(‘0’, ) FORMAT(‘1’, ) FORMAT(‘+’, )
宽度不够 输出W个*
10
Δ10 *** Δ10 1000
数据首尾相连 W不够大
2、F编辑符
F编辑符用来规定实型数据的输入输出格式,其一 般形式为:Fω.d F编辑符用于输出小数形式的实数时,遵循下列规则: 1)在实际输出一个实数时,由于实数的符号和小数 点均要单独占一位,并且,小数点前面还可能有若 干位整数部分的数字,因此,在编辑符中要求 ω≥b + d + 2,其中b为整数部分的位数; 2)如果d小于实际需要输出的实数小数部分的位数, 则小数部分最右边的多余数字将被截去;如果d大 于实际需要输出的实数小数部分的位数,则在小数 部分的最右边用0来补足所规定的位数;
d小于实际需要输出的实数小数部分的位数
2、F编辑符
F编辑符用于输出小数形式的实数时,遵循下列规则: 1) 如果ω大于实际输出数据的数字位数(包括在小 数部分最右边所补的数字0),则在输出数据的左边 用空格补足;如果ω小于实际输出数据的数字位数, 则在字段宽度(即ω)范围内均输出“*”号 。 A=2.0 B=3.145 WRITE(*,10)A,B 10 FORMAT(1x,F6.2,F6.4) END Δ Δ 2.00 ******
如果输出项数字部分的小数位数多于d位,保留d位,从 d+1位四舍五入;小于d位,在其右边补0。
如果ω不够大,即ω<d+6,则在字段宽度ω的范围内 均输出“*”号,以表示无法输出该实数;如果ω≥d+ 7,则在所有数字的左边用空格补足 。
E编辑符应用实例
-2.0,3.2 READ(*,*)A,B S=A*B WRITE(*,10)A,B,S 10 FORMAT(1x,3E10.2) Δ Δ -.20E+01 Δ Δ Δ.32E+01 Δ Δ -.64E+01 END
走纸控制 后面讲解
1、I编辑符
用I编辑符进行整型数据输出时,遵循下列规则: 2)如果实际输出的整数数字位数小于m,则在输出 整数的所有数字的左边用“0”来补足到m位数字; 如果数字的位数超过了m,则按实际应输出的位数输 出(但条件是不能超过ω)。m不包括负号所占的一 列; M=10;N=100 WRITE(*,10)M,N FORMAT(1x,I3, I5.4) END