Fortran 95 程序设计-第六章—新

合集下载

fortran95程序设计

fortran95程序设计

fortran95程序设计
Fortran95一门面向应用的编程语言,用于开发科学和工程应用软件,它继承了Fortran77的优点,又增添了很多新特性。

这些特性大大改善了编程效率,使Fortran95程序设计更加灵活、更具有扩展性。

首先,Fortran95可以使用动态数组和变量名数量(变量名的长度从6个字符提高到32个字符),这样就可以更加清楚地定义问题和程序功能。

此外,Fortran95中允许使用数据类型,它允许开发者使用自定义数据类型,这样可以更加清楚地描述程序的结构和功能。

其次,Fortran95支持更多的编程模型,如结构化编程,面向对象编程,组件设计,它使程序设计变得更具灵活性,能够更有效地编写程序代码,从而提高程序的执行效率。

此外,Fortran95还提供了许多存储器管理的功能,以更好地实现内存的动态分配和释放,使程序运行更快。

它还提供了一些语言特征,如变量的定义和数组的声明,能够更好地维护程序的可读性和可维护性。

另外,Fortran95还具有跨平台功能,允许用户在不同的操作系统之间迁移程序,以及在不同的系统上并行运行程序,这些特性也可以提高程序的性能。

总之,Fortran95拥有许多功能,可以提升程序设计的效率,使软件开发变得更具可移植性和可扩展性。

正因为有了这些优点,Fortran95有着广泛的应用,为科学和工程软件开发提供了强大的技
术支持。

FORTRAN95概述

FORTRAN95概述
3
第1章FORTRAN 95简单程序设计
本章主要内容: Fortran语言的基本概念 Fortran95语言的用途、 程序的书写格式 Fortran95基本数据类型的表示方法 Fortran95表达式的书写方法 Fortran95赋值语句的用法 Fortran95简单的输入与输出语句的用法
初步学会简单Fortran95程序的编写
适用于科技计算的高级程序设计语言。 FORTRAN的名字来自英文的Formula Translator,即数学公式翻译器的意思。 FORTRAN语言最初是在1954年由美国IBM
公司提出的。 1966年制定了FORTRAN语言的统一标准,
这套标准制定了新的FORTRAN语言标准, 并在1978年由美国国家标准协会(ANSI)正 式公布,称为FORTRAN77
9
1.1.2程序设计过程 一、程序设计步骤
1.确定所要解决的问题及应达到的要求 2.分析问题构造模型
根据实际问题确定物理模型,再用数学语言描述它,即列出解题 的数学公式或方程式,也就是建立数学模型。
3.选择计算方法 4.确定算法并绘制流程图 5.编写程序 6.程序调试 7.正式运行
10
二、算法 所谓算法指为在有限步内解决一个具体问
16
1.2.3 FORTRAN程序的组成 一、FORTRAN程序结构 是一种段式结构(或称块结构)。每个 FORTRAN程序由一个主程序段和若干个子 程序段及模块组成。 主程序段有且仅有一 个, 子程序段和模块根据需要可用零个或 多个。每个程序段可以独立编写,实现不同 的功能,程序运行总是从主程序段开始。 每个程序段都有自己的段头语句,但主程 序段的段头语句可以省略。
用户采用高级语言编程,上机的过程如图1-1所示.

FORTRAN语言程序设计——FORTRAN95

FORTRAN语言程序设计——FORTRAN95

教材目录
(注:目录排版顺序为从左列至右列 )
教学资源
该教材有配套的实验指导书——《FORTRAN95程序设计实验指导与测试》。 该教材还提供电子课件等资源。
教材特色
该教材以程序设计为主线,以编程应用为驱动,通过案例和问题引入知识点,重点讲解程序设计的思想和方 法。书中所有程序实例都是由教师在多年授课过程中挑选所得,并采用Microsoft Develop Studio集成开发环 境。为适应不断更新的计算机操作系统,在实验教材中还给出了Windows 7、Windows 10操作系统下使用Visual Fortran的上机操作过程。
全书共14章,主要内容有: FORTRAN95概述及编译环境的介绍、FORTRAN95程序设计基础、顺序结构程序设 计、选择结构程序设计、循环结构程序设计、数组、函数与子程序、文件、派生类型与结构体、指针、模块、常 用数值算法。
成书过程
修订情况
ห้องสมุดไป่ตู้出版工作
该教材由王丽娟、段志东主编,李玉龙主审。第1、2、12、14章由王红鹰编写,第3、5、6、7章由陈权编写, 第9、11、13章和附录A由段志东编写,第4、8、10章和附录B由王丽娟编写。
该教材在规划和编写过程中得到了兰州交通大学教务处、计算机教学示范中心、电信学院、继续教育学院、 土木工程学院的领导和教师们的支持。
2017年9月1日,该教材清华大学出版社出版。
内容简介
该教材介绍FORTRAN95的语法规则以及利用它进行程序设计的方法。全书共14章,主要内容有: FORTRAN95 概述及编译环境的介绍、FORTRAN95程序设计基础、顺序结构程序设计、选择结构程序设计、循环结构程序设计、 数组、函数与子程序、文件、派生类型与结构体、指针、模块、常用数值算法。另外,还扩充了计算思维和计算 机系统组成的相关知识。

Fortran 95 程序设计-第六章—新

Fortran 95 程序设计-第六章—新

2、二进制文件
以二进制代码保存;读取速度快,节省空间
无格式文件由一系列物理块组成的记录组成,所存储的记录序列的存放方 式与其在内存中的存放非常相似,在输入输出时几乎不需作转化。由于去掉了 格式控制,与有格式文件相比,在使用数据信息时所做的处理更简洁更迅速; 同样的原因使得无格式文件中即使存放着数字,也不能用文本编辑软件打开并 看到它们。FORM= ’UNFORMATTED’ 3、FORM=’BINARY’?二进制文件,是处理最快、最简洁的一种文件,也是最 紧凑的存储格式,适合于大批量数据的存储。在程序中可以用带有选项的 OPEN语句来打开或建立二进制文件
2、直接存取,可以任意跳到文件的任何一个位置来读写
文件中的记录从1开始连续编号,记录的长度是通过OPEN语句中的RECL选 项来描述的。直接文件中的记录是通过指定要访问的记录号来实现的 ACCESS=’DIRECT’
两种文件的结构(存储格式): 1、文本文件
字符符号保存,直观;读取时需要转换,占存储空间大 格式化文件 ,记录数据内容的记录是以 ASCII字符的方式存在的 ,每一条 记录是以 ASCII码中的回车符CR(0D)加换行符LF(0A)来结束的,可以用文本编 辑软件打开格式文件并直接看懂其内容。即存放在文件中的数字就是平时所看 到的数字字符,字符串也就是平时所看到的字符串。FORM=‘FORMATTED’
较大的情况,便于同其它软件或程序交换数据信 息。
♦ 物理设备与逻辑设备

物理设备:计算机外部硬件设备,如:磁盘、磁带、键盘、 显示器等。文件中数据被存储在某个外部设备上。
逻辑设备:在程序中使用的设备描述符号。
• •
物理设备与逻辑设备之关系:一个物理设备可定义多个逻 辑设备,一个逻辑设备可与多个不同物理设备连接。

最新《FORTRAN95程序设计》学习笔记资料

最新《FORTRAN95程序设计》学习笔记资料

《FORTRAN 95 程序设计》学习笔记66RPG gg★ 目录★《FORTRAN 95 程序设计》学习笔记 (1)基础知识(基础、字符串、FORMAT 、隐式、TYPE) (1)流程与控制(if 、select、do) (4)数组(声明、隐式循环、整体操作、可变数组) (5)函数与子程序(子程序、函数、全局变量) (6)MODULE 与面向对象(重载操作符、虚函数) (9)文件相关(OPEN 、WRITE 、READ) (10)指针(指向变量、数组、函数) (11)Visual Fortran 编译器(DLL ,VB 调用) (12)数值算法与IMSL (数值算法插件) (14)常用库函数(数学、数组、零碎、子程序) (15)基础知识(基础、字符串、FORMAT 、隐式、TYPE)★ 【小玩意】二进制观察器:装在M.. Visual Studio\DF98\bin ,有一个Bitviewer ,可以观察变量储存方式★ 【语法】续行:行结尾或行开头使用& 符号;注释:使用! 符号★ 【语法】数学表达式:+ ;- ;* ;/ ;(;);** 乘幂★ 【语法】程序结束:STOP (Ruby 的exit)★ 【语法】输出:write(*,*),完整写法:write(unit=*,fmt=*)建议:少用print ,尽量用write★ 【语法】声明整型:integer(kind=4) a ;其中kind 是使用的bytes 数, 4 or 2其他写法:integer*4 a; integer(4) a浮点:real(kind=4) a ;有效数位 6 位(12345678 存为 1.234567E7 ),如果是kind8 则为15 位有效数字此外:1E10:单精10X0, 1D10:双精10X0复数:complex :: a=(2,3)实部:real(a) ;虚部:imag(a)布尔型:Logical , .true. 和.false.★ 【语法与函数】字符串:character(20) string注意理解, fortran 的弱智字符串就是一个长度不能变的一维的东西, 极其猥琐, 和Java、Ruby 不能相提并论的string(13:13) = a” :对第13个字节的读、存string(2:3) = “go”string(6) = “我的妈呀”:从第6 个位置开始设置为“我的妈呀”a = string_a II string_b :用"〃”连接两个字符串【常用函数】char(num) , ichar(char):ASCII 码的转换相关功能【常用函数】len(string) , len_trim(string) :长度,去掉尾部空格后的长度【常用函数】index(string,key) :找key 在string 首出现的位置【常用函数】trim(string) :返回去掉尾部空格的字符串(用途不大)【函数】repeat(char,int):返回一个重复int次的char串character(len=20) string 普通声明;character(len=*) string 接收的时候可自动长度★ 【规范格式】FORMA T 格式化e.g.write (*,100) A100 format(I4) 这里是100 号标识调用的格式参数控制符(前面加数字为重复次数,如416或<a>l6。

FORTRAN95程序设计实验

FORTRAN95程序设计实验

FORTRAN95程序设计实验FORTRAN95的基本语法包括变量定义、注释、循环和条件判断等。

在FORTRAN95中,变量可以通过关键字"INTEGER"、"REAL"和"CHARACTER"等进行定义。

例如,以下语句定义了一个整型变量A和一个浮点型变量B:INTEGER::AREAL::B注释可以通过用一个感叹号(!)开头进行标识。

例如:!这是一个注释循环可以使用关键字"DO"和"ENDDO"来实现。

例如,以下代码展示了一个简单的循环,计算了1到10的和:INTEGER::I,SUMSUM=0DOI=1,10SUM=SUM+IENDDO条件判断可以使用关键字"IF"、"THEN"、"ELSE"和"ENDIF"来实现。

例如,以下代码展示了一个简单的条件判断,判断一个数是否为正数:INTEGER::NUMREAD(*,*)NUMIF(NUM>0)THENPRINT*,"该数为正数"ELSEPRINT*,"该数为非正数"ENDIF在FORTRAN95中,还有其他的语法和特点,如数组、函数、子程序等。

下面的实例将展示如何使用FORTRAN95编写一个计算圆面积和周长的程序。

PROGRAM CircleREAL :: PI, R, Area, CircumferencePRINT*,"请输入半径:"READ(*,*)RArea = PI * R**2Circumference = 2 * PI * RPRINT *, "圆的面积为:", AreaPRINT *, "圆的周长为:", CircumferenceEND PROGRAM Circle以上程序首先定义了一个实数变量PI、半径R、面积Area和周长Circumference。

FORTRAN95第六章 Fortran 过程程序设计

FORTRAN95第六章 Fortran 过程程序设计
在上面的程序中, 虽然在主程序和函数子程序都 使用了变量I,然而他们是相互独立的,各自占用 不同的存储空间。 在主程序或其它程序单元中说 明的变量、数组、语句标号, 在另一函数子程序或 子例行子程序中不能直接引用。 ( 唯一的例外是, 在任何程序单元中打开的文件,在整个程序中都 可以直接引用)
普通的外部函数子程序形式之二为:
例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 95程序设计

fortran 95程序设计

fortran 95程序设计
Fortran 95程序设计是一门针对科学计算和工程学科的高级编程语言。

这门语言的设计目的是为了提供一种简洁、高效、易于实现和易于维
护的编程环境,以便于开发出更高质量的科学计算和工程解决方案。

Fortran 95的特点之一是其输入输出,因为它可以使用多种方式输入
和输出数据,使程序的编写更加简单而不失灵活性。

另一个特点是其
令人宜人的书写风格,使得代码的可读性和可维护性得到了更好的保障。

此外,Fortran 95还支持模块化编程,由于模块被编写为独立的
实体,因此可以更好地调试和修改源代码。

在Fortran 95代码中,程序员使用各种算法和数学技术来解决问题。

这门语言不仅提供了一些基本的算法和数据结构,还支持数组操作、
字符串操作、位操作等高级操作。

它的函数式编程能力也很强,可以
使程序更加高效、简洁和易于维护。

虽然Fortran 95在以往的几十年中已经被不断地改进和扩展,但是它仍然存在一些问题。

例如,它只支持有限的异常处理机制,无法处理
不同层级的异常。

此外,一些新的编程语言,如Python和R,已经逐渐取代了Fortran在科学计算和工程学科中的地位。

总之,Fortran 95程序设计是一门高级编程语言,具备简洁性、高效性、易实现性和易维护性的特点。

虽然它可能存在一些缺陷和限制,但是对于需要高效可靠的科学计算和工程解决方案的行业和领域,Fortran 95仍然是一个很好的选择。

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

物理设备:内存储器 · · · str1='125,250,375' str2='i=125 i+j+k=750' · · · j=250 k=375
……
PARAMETER(max=100) REAL::score(max),N,sum=0.0,ave
外部文件名,逻辑设备号
OPEN(1,FILE='exam2.in') 外部文件名,逻辑设备号 OPEN(2,FILE='exam2.out') READ(1,*) N READ(1,*) (score(I),I=1,N) WRITE(2,*) '学生成绩有:' WRITE(2,100) (score(I),I=1,N) WRITE(2,200) ave PRINT*,’程序运行正常结束。’ END
注意:直接访问的文件,即,ACCESS=‘DIRECT’时,FORM 的默认值是’UNFORMATTED’,所以,如果是打开直接读取 的文本文件,则一定要设置FORM= ’ FORMATTED’
一旦某个直接访问记录被写入就不能再删除它,但可以覆 盖这个记录。在输出到一个格式化直接文件时如果数据没 有占满一个记录,则编译系统将在剩下的位置上补以空格, 保证文件只包含长度相同的完整的记录。从文件中读数据 时,当I/O列表或格式描述符中要读取的数据多于记录中的 数据时,编译器也会以空格填充未读数据的变量。
24. read(inputfileid, “ (A200)”, iostat=error) buffer) 25. if (error/=0) exit !没有数据了,离开循环 26. !在最前面加上行号 27. write(outputfiled, “(I3, „.‟ , A)”) count, trim(buffer) 28. count=count+1 !计算行数 29. end do 30. close(inputfiled) 31. close(outputfiled) 32. stop 33. end program
WRITE / READ 语句——文件的输入输出
program test2
CLOSE 语句——文件的关闭
文件读写操作结束后,可通过CLOSE语句将文件关闭。取消逻辑设 备符(文件编号)与磁盘上的外部文件之间的关系。CLOSE语句可缺省。
CLOSE ( [ Unit=]<设备号>[ ,ERR=<错误转移>][ ,IOSTAT=<IO 状态>] [,STATUS=<文件属性>] )
程序ex603
例:设计一个输入选手打击率的程序,这个程序能自由让用户决 定现在要输入哪一位打击者的打机率。
无格式文件的存取 (二进制文件之一)
数据处理过程中,输出的大量数据往往并不是给人阅读 的,而是作为中间数据为下一次输入作准备,由计算机 去读它,用无格式输入输出可以意跳到文件的任何一个位置来读写
文件中的记录从1开始连续编号,记录的长度是通过OPEN语句中的RECL选 项来描述的。直接文件中的记录是通过指定要访问的记录号来实现的 ACCESS=’DIRECT’
两种文件的结构(存储格式): 1、文本文件
字符符号保存,直观;读取时需要转换,占存储空间大 格式化文件 ,记录数据内容的记录是以 ASCII字符的方式存在的 ,每一条 记录是以 ASCII码中的回车符CR(0D)加换行符LF(0A)来结束的,可以用文本编 辑软件打开格式文件并直接看懂其内容。即存放在文件中的数字就是平时所看 到的数字字符,字符串也就是平时所看到的字符串。FORM=‘FORMATTED’
• 从文件输入、向文件输出数据,适用于数据量比
较大的情况,便于同其它软件或程序交换数据信 息。
♦ 物理设备与逻辑设备

物理设备:计算机外部硬件设备,如:磁盘、磁带、键盘、 显示器等。文件中数据被存储在某个外部设备上。
逻辑设备:在程序中使用的设备描述符号。
• •
物理设备与逻辑设备之关系:一个物理设备可定义多个逻 辑设备,一个逻辑设备可与多个不同物理设备连接。
练习 1、从键盘输入20个数,以文本方式写入文件data1.txt, 2、输入十个学生的学号和一门课的成绩,存入顺序文件中。
有格式直接存取 在格式化直接文件中,所有记录的长度都相同并 且可以以任意顺序读写。记录的长度由 OPEN 语 句中的 RECL= 选项 指定,该长度应该大于或等 于最长的记录中的字节数。 CR 和 LF 是分隔符, 不包括在RECL中。
2、二进制文件
以二进制代码保存;读取速度快,节省空间
无格式文件由一系列物理块组成的记录组成,所存储的记录序列的存放方 式与其在内存中的存放非常相似,在输入输出时几乎不需作转化。由于去掉了 格式控制,与有格式文件相比,在使用数据信息时所做的处理更简洁更迅速; 同样的原因使得无格式文件中即使存放着数字,也不能用文本编辑软件打开并 看到它们。FORM= ’UNFORMATTED’ 3、FORM=’BINARY’?二进制文件,是处理最快、最简洁的一种文件,也是最 紧凑的存储格式,适合于大批量数据的存储。在程序中可以用带有选项的 OPEN语句来打开或建立二进制文件
♦ 文件的基本操作
OPEN语句——文件的打开
例: open (10, file=‘d:\data\2006\feb\uwnd.dat’,
&
& &
form=‘unformatted’, status=‘unknown’,
access=‘direct’, recl=144*73*4, err=100, iostat=iovar, position=‘asis’ )
物理设备:磁盘 · · · 外部输入文件:'exam2.in' 5 78.5,55.0,85.5,90.0,68.5 · · · 外部输出文件:'exam2.out' 学生成绩有: 78.5, 55.0, 85.5, 90.0, 68.5 平均分数: 75.5 · · ·
♦ 文件的概念
• 文件 : 存放在某种存储设备上的一组数据集合,由文件 名唯一标识。
无格式顺序文件中的第一个和最后一个字节是保留字节:第一个字节 的值为75,最后一个字节的值为130。Fortran使用这些字节作为错误 检测和文件结束的判断 。 例:
例:把1到10以及它们的平方数、立方数以表格形式存放到TAB.DAT 文件中。程序把输出的数据重新读出并显示在终端屏幕上以检验文件 的内容
程序ex802
等同于: close(2) open(2,……)
1. EX 0909.F90 2. implicit none 3. integer, parameter :: inputfileid=10, outputfileid=11 4. integer, parameter :: maxbuffer =200 5. character (len=80) :: inputfile, outfpufile 6. character(len=maxbuffer) buffer 7. integer count 8. integer error 9. logical alive 10. write(*,*) “Input Filename” 11. read(*,“(A80)”) inputfile 12. write(*,*) “Output Filename” 13. read(*,“(A80)”) outputfile 14. inquire(file=inputfile, exist=alive) 15. if (.not. alive) then 16. write(*,*) trim(inputfile), “doesn‟t exsit” 17. stop 18. end if 19. open(unit=inputfileid, file=inputfile, status=“old”) 20. open(unit=outpufileid, file=outputfile. Status=„replace‟) 21. count=1 22. do while(.true.) 23. !读入一整行的数据
在Fortran中有4个预定义的外部文件(设备):
设备号 星号(*)
连接的设备 总是键盘和显示器
0
5 6
缺省状态下是键盘和显示器
缺省状态下是键盘 缺省状态下是显示器
外部文件分类:
Fortran支持两种文件的存取方式(访问方式): 1、顺序存取,从文件的开头一步步向下存取
程序中要读写第N条记录时,必须至少已对前面的N-1记录进行过读操作 ACCESS=‘SEQUENTIAL’
可以通过在打开文件的 OPEN语句中设置 PAD=NO 来避免 填补空格,此时输入记录必须有和输入列表和格式描述符 所要求的一样多的数据,否则会产生错误。PAD=NO对输 出没有影响。
例:
有格式文件每一条记录是以ASCII码中的回车符CR(0D)加换行 符LF(0A)来结束的
例:把1到10和它们的平方根存放到一个直接存取文件中,然后随意 查找1到10的平方根数。
♦ 文件记录的存取
有格式顺序存取
一个格式化文件是一个由按顺序写到文件中的有格式记
录序列组成的,当要对文件进行读操作时,读取的 顺序就是记录在文件中的存放顺序。文件中记录的 长度不一定相同,记录也可以是空的。
例:从预先准备好的数据文件中输入数据,并输出数据写到文件中
已有数据文件:F1.dat
写出到数据文件:F2.dat 程序ex801
在FORTRAN的I/O系统中,数据以文件的形式进行存储和交换,操 作系统以文件为单位对数据进行管理。
• 文件由若干记录组成。没有记录的文件为空文件。 • 文件操作(读、写)以记录为单位。从文件中一次输入 一个记录,向文件中一次输出一个记录。 • 通过 READ 和 WRITE 语句从文件中输出、输入数据。 • 文件分内部文件和外部文件两种文件。
相关文档
最新文档