FORTRAN语言程序设计.ppt
《FORTRAN语言程序设计.ppt》由会员分享,可在线阅读,更多相关《FORTRAN语言程序设计.ppt(60页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、FORTRAN语言程序设计 第一章第一章 程序设计概述1.1 程序设计基本概念1.程序:计算机操作命令的集合。例:求x、y、z的平均值aver的程序。2.程序设计:编制程序(操作命令)的过程。3.程序设计语言:书写程序所采用的某种专用语言。高级语言:数学语言或自然语言。如:FORTRAN语言等 程序设计语言的类型:低级语言:机器语言和汇编语言。1.2 程序设计方法和步骤1.2.1 程序设计方法 1.结构化方法(1)采用“自顶向下,逐步求精”的程序设计方法.(2)采用“单入口单出口”的控制结构.(3)三种基本程序结构:顺序、选择和循环.结构化程序设计的特征:(a)模块化:把一个较大的程序划分为若
2、干个子程序,每一个子程序独立成为一个模块;(b)层次化:先设计第一层(即顶层)。然后步步深入,逐层细分,逐步求精,直到整个问题可用程序设计语言明确地描述为止。(c)逐步求精:是对一个复杂问题,从抽象到具体,最终编制出一个可执行的程序。2.面向对象方法 详见P51.2.2 程序设计步骤 1.分析问题 2.建立数学模型 3.选择算法 4.编写程序 5.调试运行 6.分析结果 7.写出程序的文档 第二章 算 法2.1 算法概述1.算法:计算机解题的方法和步骤.2.算法特征:(1)有穷性 一个算法必须总是在执行有限步骤之后结束。(2)确定性 算法中的每一个步骤应当是确定的,无二义性;相同的输入只能得出
3、相同的输出。(3)可行性 算法中的每步骤都是有效地执行。(4)有零个或多个输入(5)有一个或多个输出3.算法的分类:(1)数字运算:用于求数值解,此类算法有现成的模型,运用较成熟.(2)非数字运算:用于非数据处理的一些事务性工作,此类算法面广量大,要求各异,有一定难度.2.2 算法特点 计算机特别适合做大量的重复性操作,如连续加、连续乘或者其他连续判断或处理。计算机对于大量的重复性操作,并非一次性完成,而是每次按部就班,循环往复重复前一次的操作,即每次操作方法(即循环体)相同,但操作数据不同而已。例如,求1,2,10的累加和,其程序如下:do i=1,10 !循环语句 s=s+i !循环体 e
4、nddo 上述循环所要执行的重复操作是:s=s+i(即循环体),但每一次循环时,循环体的操作数据s,i的值是不同的。.2.3 算法的表示方法(1)传统流程图 即用有向线段将描述算法步骤的各功能框连接起来.如下图所示:图(a)顺序结构 图(b)选择结构 AB条件PAB真假图(c)当型循环结构 图(d)直到型循环结构循环条件循环体循环体循环条件真假假真(2)N-S流程图 它是一种去掉流程线的流程图,称为盒图.N-S流程图形式如下图所示:AB图(a)顺序结构 图(b)选择结构图(c)当型循环结构 图(d)直到型循环结构当执行循环的条件成立循环体直到退出循环的条件成立循环体条件真假AB 第三章 FOR
5、TRAN语言简介 3.1 FORTRAN 语言概述1.何谓FORTRAN语言?FORTRAN是英文“FORmula TRANslate”的缩写,即中文的“公式翻译器”之意。FORTRAN语言是一种用于科学计算的程序设计语言。2.何谓FORTRAN源程序?用FORTRAN语言编制的程序,称为FORTRAN源程序。举例:编制FORTRAN源程序ex02_01.f90,求x、y、z的平均值aver。PROGRAM ex02_01 READ*,x,y,z aver=(x+y+z)/3 PRINT*,aver END 3.2 FORTRAN程序的执行过程 3.3 FORTRAN语言的发展历程(1)195
6、1年,John Backus在纽约首次提出FORTRAN语言,并于1954年对外发布,称FORTRAN。(2)1958年,扩充和完善FORTRAN,推出FORTRAN。(3)1960年,推出FORTRAN,但没有在计算机上实现。(4)1963年,推出了FORTRAN。没有充分考虑兼容性。(5)1966年,推出FORTRAN 66美国标准,后被ISO采用。(6)1978年,推出FORTRAN 77,兼容性好,结构化特征。(7)1991年,推出FORTRAN 90现代语言,可视化编程。(8)1997年,公布FORTRAN 95标准,并行运算的支持。(9)1997年,微软和数据设备公司合作推出Dig
7、ital Visual FORTRAN 5.0。第四章 FORTRAN语言开发环境 详见教材:3.3 FORTRAN语言开发环境 第五章 FORTRAN 语言基础知识5.1 字符集 FORTRAN语言允许使用的字符集为:英文字母英文字母A-Z A-Z 或或 a-z a-z(即大、小写英文字母)阿拉伯数字阿拉伯数字0 0、1 1、2 2、3 3、4 4、5 5、6 6、7 7、8 8、9 9特殊符号特殊符号空格空格=+-*/#=+-*/#?(),.:“!&;$_:“!&;$_ 应当注意:在FORTRAN语言中,英文字母不区分大小写,在保留字、变量名和函数名中,大、小写字母都是等价的,如REAL何
8、real或Real是一样的。5.2 名称及保留字5.2.1 名称 作用:用来表示FORTRAN源程序中的变量、符号常量名、数组、函数、过程等实体的名称。名称的定义(即语法描述):由英文字母开头的31个以内 的字母、数字、下划线(_)以及美元符字符序列组成。例:NUMBER、x1、root_2、y$_ab、5xy、x.y5.2.2 保留字 一个语句中的特定单词,如PROGRAM、END、IF、ENDIF、DO、ENDDO等,称为语句保留字。说明:FORTRAN90程序中允许用保留字作为其它实体的名称,但是一般不提倡。5.3 程序单元 一个完整的FORTRAN程序,应由以下程序单元构成:主程序单元
9、 外部子程序单元1 PROGRAM MAIN SUBROUTINE SUB1()主程序体 子程序体 END PROGRAM END 其中主程序单元只能有1个,其它程序单元可以有0-n个。程序单元的描述详见第十章。5.4 语句的排列顺序 一个程序单元中语句的排列顺序如下:非执行语句 程序单元 可执行语句例:编制FORTRAN源程序eex5_1.f90,求x、y、z的平均值aver。PROGRAM eex5_1 REAL x,y,z,aver READ*,x,y,z aver=(x+y+z)/3 PRINT*,aver END5.5 程序的书写格式(1)固定格式:将一个语句行分为若干个区域,如下图
10、所示:(2)自由格式:一个语句的书写不受区域的限制。FORTRAN90的源程序源程序格式采用自由格式书写,源程序源程序文件扩展名为.f90。例:详见eex5_1.f90的源程序源程序格式及其扩展名。5.6 数据类型5.6.1 基本概念 1.内部数据类型 FORTRAN语言将内部数据划分为以下类型:整型 实型 算术型 数据类型 复型 逻辑型 字符型 2.种别 一个数据在内存中均占有一定字节个数的存储单元。上述每类数据都有其不同的种别(即Kind)特性,即上述每类数据根据其种别特性(即Kind值)的不同分别拥有不同字节个数的存储单元。3.数据对象 1)常量:程序运行时,其值不能改变的量,称为常量。
11、如:5,3等等。2)变量:程序运行时,其值可以改变的量,如:变量a,a是一个存储单元。5.6.2 常量 整型、实型、复型常量是一个代数值;逻辑型常量是一个逻辑值(.true.或.false.);字符型常量是一个字符串。以上常量均以书写方式确定其类型。5.6.2.1 整型常量 整型常量表示普通代数中的整数。十进制整型常量的一般形式:n _Kind值 其中:是该整型常量的符号。n 是一个十进制数字(09)序列。Kind值为:1、2、4、8之一。分别表示1、2、4、8个字节个数。FORTRAN 90/95标准中整型常量的范围没有明确规定。例如:122、0、-36、559_2 均为合法的整型常量 10
12、0.0、100,000、100 0、1002 均为非法的整型常量 5.6.2.2 实型常量 实型常量表示普通代数中的小数或指数。1.小数实型常量 一般形式:n.m 或n.或.m 其中:n、m是十进制数字序列。n是整数值,m是小数值。例:12.0、0.12、12.、.12 2.指数实型常量 一般形式:n.mEs 或n Es 其中:n、m是十进制数字序列。n是整数值,m是小数值。Es是指数部分,表示10的几次方。其中:E是指数符号,s是指数数值,是指数数符。例:指数实型常量:12E2 0.12E-2 2E5 1E-10 相应代数值:12x102 0.12x10-2 2x105 1x10-10 注意
13、:单独的指数部分不能构成一个实型常量。例:E5 5.6.2.3 复型常量 表示普通代数中的复数。即:a bi(其中a是实部,b是虚部)一般形式:(a,b)例:(-3,5)!表示复数:-3+5i (0,1)!表示复数:i (2.4,-2.5E2)!表示复数:2i5.6.2.4 字符型常量 在程序中用以表示文字等非数值信息。一般形式:字符串 或“字符串”其中:字符串可以是字母、数字、汉字、特殊符号。通常字符串中字 符的个数称为字符长度。例:PRINT*,南京信息工程大学 PRINT*,”a+b=”,ab说明:1)引号(或“”)是字符串的分隔符,并非字符常量的一部分。2)字符串中的空白符有意义,要计
14、数的。例:“A B”,其字符长度是3。3)当字符长度为0时,即为空串。4)字符串内的字母区分大小写,a和A是不同的字符常量。5)如果字符串中含有单引号,则这个单引号要用两个连续的单引号表示,如:Im a boy.。或者单引号和双引号交替使用,如“Im a boy.”。5.6.2.5 逻辑型常量 在程序中用以表示某个条件(关系表达式和逻辑表达式)的判别结果。一般形式:.TRUE.即为逻辑真(表示判别条件成立)。.FALSE.即为逻辑假(表示判别条件不成立)。例:条件5 3的判别结果是.TRUE.,表示判别条件5 3成立。条件3 1的判别结果是.FALSE.,表示判别条件3 1不成立。说明:1.逻
15、辑常量仅有两个,.TRUE.(真)和.FALSE.(假)。注意:逻辑常量两侧的两个小数点不能省略。逻辑型常量是具有逻辑型数据类型的非数值数据,又称为逻辑值或布尔值。2.2.对于逻辑值.TRUE.,在其存储单元字节内每位为“1”,可视为整数值 -1;对于逻辑值.FALSE.,在其存储单元字节内每位为“0”,可视为整数值0,它们均能参与整数运算。如7+.FALSE.,结果仍为7。1+.TRUE.,结果则为0。5.6.2.6 符号常量 用一个符号所表示的常量值,称为符号常量。例如,圆周率、重力加速度等。使用符号常量时,应当用参数语句(PARAMETER语句语句)对符号常量予以声明。PROGRAM e
16、x05_01IMPLICIT NONEREAL piPARAMETER(pi=3.1415926)!定义pi为符号常量3.1415926WRITE(*,*)sin(pi/6)END 变量是数据的存储单元。不同类型的变量存储不同类型的数值。整型、实型、复型变量存储一个(或一对)代数值,逻辑型变量存储一个逻辑值(.true.或.false.),字符型变量存储一个字符串。以上变量均以类型声明确定其类型。5.6.3.1 变量的种别 变量的种别,是指一个变量由几个字节组成。其种别值(即kind值)与常量相同。5.6.3.2 变量的类型 变量的类型均用类型说明(或称类型声明)指定。其目的是通知编译系统为变
17、量分配存储单元,以便存放程序中的数据。显式类型说明 类型说明方式 隐式类型说明 5.6.3 5.6.3 变量变量1.显式类型说明 由类型说明(声明)语句指明变量的类型。类型说明语句的一般形式:INTEGER(kind值)变量名表!整型变量类型说明语句 REAL(kind值)变量名表 !实型变量类型说明语句 COMPLEX(kind值)变量名表 !复型变量类型说明语句 LOGICAL(kind值)变量名表 !逻辑型变量说明语句 CHARACTER(kind值)变量名表 !字符型变量类型说明语句其中:1)变量名表:用逗号隔开的一系列变量名。例如:INTEGER(2)a,b,c !a,b,c为变量名
18、表中的变量。2)INTEGER、REAL,等为类型说明语句的保留字,称为类型说明符。例如:INTEGER(2)a,b,c !INTEGER为类型说明符。3)(kind值)=n:为变量的种别值,用以说明变量名表中的各变量由几个字节组成。n为1、2、4、8之一。a.整型变量的不同种别值及其取值范围,如下表所示:b.实型变量的不同种别值及其取值范围,如下表所示:类型Kind值字节数取值范围INTEGER(1)11-128127INTEGER(2)22-3276832767INTEGER(4)44-21474836482147483648INTEGER(8)88-9223372036854775808
19、9223372036854775808类型Kind值字节数取值范围REAL(4)441.1754944E-383.4028235E+38 REAL(8)882.225073858507201E-3081.797693134862316E+308 DOUBLE PRECISION82.225073858507201E-3081.797693134862316E+308c.复型变量的种别值分别为4或8,字节数为8或16d.字符型变量不同种别值的说明方式,如下表所示:类型Kind值字节数CHARACTER11CHARACTER(n)nnCHARACTER len=nnnCHARACTER*nnne.
20、e.逻辑型变量的不同种别值,如下表所示:类型Kind值字节数LOGICAL(1)11LOGICAL(2)22LOGICAL(4)44LOGICAL(8)884)kind值为可省略项。该项省略时系统将自动采用由系统指定的缺省值。缺省值一般由编译器确定。但各类变量的种别初始缺省值如下:a.整型变量为4.b.实型变量为4.c.复型变量为8.d.字符型变量为1.e.逻辑型变量为4.注意:当一个整型、实型变量中所存储的数值超过以上种别值取值范围时,则出错!5)5)类型说明语句中可以使用“:”给变量名表中的变量赋初值。例:INTEGER:a=6,b=8 !说明变量a,b为4字节整型的同时为其赋初值 REA
21、L(4):e=3.5 !e为4字节单精度实型变量且初值是3.5 REAL(kind=8):h=2.6 !h为8字节双精度实型变量且初值是2.6 LOGICAL:la=.true.!la是4字节逻辑型变量且初值是.true.CHARACTER:c1=“a”!c1是1字节字符型变量且初值是字符“a”CHARACTER*4:c2=“南京”!c2是4字节字符型变量且初值是字符串“南京”CHARACTER*5:c3=“”!c3是5字节字符型变量且初值为空,即空串2.隐式类型说明1)隐含约定(即系统约定,简称I-N规则):程序中凡以字母I-N开头的变量名系统约定(即默认)为整型变量,其余字母(A-H,O-
22、Z)开头的变量名系统均约定为实型变量。例:n1,m2,i1,j2 均被系统约定为整型变量 a1,b1,c2,d2 均被系统约定为实型变量 说明:i)上述隐含约定仅对整、实型变量有效!ii)Fortran 90虽然支持隐含约定,但不提倡使用。为此,在程序的开始用:IMPLICITIMPLICIT NONE语句向系统声明不使用隐含约定。2)隐含说明语句(即人为约定):按程序中变量名的首字符来确定变量的类型。一般形式:IMPLICITIMPLICIT 类型说明符(字母1,,字母n)或:IMPLICITIMPLICIT NONE 例:IMPLICITIMPLICIT REAL(i,k)!程序中凡以i,
23、k开头的变量均为实型变量。IMPLICITIMPLICIT INTEGER(n,t)!程序中凡以n,t开头的变量均为整型变量。IMPLICITIMPLICIT NONE !程序中取消隐含约定。注意:注意:以上三种以上三种类型说明方式中,中,显式类型说明语句优先级最高,优先级最高,IMPLICITIMPLICIT语句语句次之,次之,“I-NI-N规则规则”则最低。则最低。例如:例如:INTEGER IMAXINTEGER IMAX IMPLICIT REAL(I,J)IMPLICIT REAL(I,J)以上的类型说明语句,变量以上的类型说明语句,变量IMAXIMAX被被显式类型说明语句说明为整型
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- FORTRAN 语言程序设计
限制150内