资源预览内容
第1页 / 共281页
第2页 / 共281页
第3页 / 共281页
第4页 / 共281页
第5页 / 共281页
第6页 / 共281页
第7页 / 共281页
第8页 / 共281页
第9页 / 共281页
第10页 / 共281页
亲,该文档总共281页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
FORTRAN 77语言 -结构化程序设计主讲:王 飞 江苏科技大学教材: FORTRAN语言FORTRAN77结构化程序 设计谭浩强等编著第一章 FORTRAN语言程序设计初步 1.1 FORTRAN语言发展概况 1.2 简单的FORTRAN 77程序分析 1.3 FORTRAN源程序的书写格式1.1 FORTRAN语言发展概况 lFORTRAN语言是世界上第一个被正式推广使用的高级语言。它是 1954年被提出来的,1956年开始正式使用,至今已有五十多年历史, 但仍历久不衰,它始终是数值计算领域所使用的主要语言。 lFORTRAN是英文FORmula TRANslation的缩写,意为“公式翻译”。它 是为科学、工程问题或企事业管理中的那些能够用数学公式表达的问 题而设计的,其数值计算的功能较强。 lFORTRAN 77还不是完全结构化的语言,但由于增加了一些结构化的 语句,特别是“块if”语句,提供了IF-ELSE-ENDIF形式的判断控制语 句,使FORTRAN 77能用于编写结构化程序。此外,还扩充了字符处 理功能,使FORTRAN不仅可用于数值计算领域,还可以使用于非数 值运算领域。 l目前,FORTRAN77已在国内外广泛使用,大多数计算机系统都已配 置了FORTRAN 77。 lFORTRAN语言的不同版本:FORTRAN I、FORTRAN II、 FORTRAN IV、FORTRAN 66、FORTRAN 77、FORTRAN 901.2 简单的FORTRAN 77程序分析 为了使读者从一开始就了解什么是FORTRAN 77程序 ,下面先介绍两个很简单的FORTRAN 77源程序。 例1.1求三个数的平均数 程序代码: C CALCULATE THE AVERAGE OF THREE NUMBERS X=90.5 Y=87.0 Z=68.5 AVER=(X+Y+Z)/3.0 PRINT *, THE THREE NUMBERS ARE, X, Y, Z PRINT *, AVERAGE=, AVER END例1.2分别求R=1,3,12,5时的圆周长可以用一个子程序来求圆周长。 源程序由两部分组成: (1)主程序 C MAIN PROGRAM PROGRAM EX2 PRINT *, R=, 1.0, C=, C(1.0) PRINT *, R=, 3.0, C=, C(3.0) PRINT *, R=, 12.0, C=, C(12.0) PRINT *, R=, 5.0, C=, C(5.0) END(2)子程序 C SUBPROGRAM FUNCTION C(R) PI=3.1415926 C=2*PI*R RETURN END从以上例子中可以看出: 1、一个程序由一个或若干个程序单位组成。主程序和每一 个子程序分别是一个独立的程序单位。在解决一个比较 复杂的问题时,可以分别将每个功能编为一个子程序, 然后按搭积木一样将各有关程序单位组成一个程序。一 个程序单位就是一个模块,结构化程序设计需要采用模 块化方法,在FORTRAN中,子程序是实现模块化的有效 方法。 2、每一个程序单位都是以“END”结束的。在FORTRAN 77 中,END既是一个程序单位的结束标志,又是一个独立 的语句(结束语句)。主程序中的END语句的作用是使 程序“停止运行”,子程序中的END语句是“使流程返回调 用程序”。请注意在一个程序单位中只能有一个END语句 ,如果需要,可以用STOP语句使程序终止或用RETURN 语句从子程序返回。3、一个程序单位包括若干行。FORTRAN行分为两类: (1)语句行。由一个FORTRAN语句组成,它对程序运行情 况是有影响的。FORTRAN语句分为:执行语句和非执行 语句。执行语句使计算机在运行时产生某些操作,如赋值 语句、打印语句等。非执行语句(包括说明语句,数据语 句等)将有关信息通知编译系统,以便在编译时作出相应 的处理,例如类型说明语句、函数子程序语句等。 (2)非语句行,即注释行。它不是FORTRAN语句,它不被 翻译成机器目标指令,不产生任何机器操作。它仅仅是为 了人们阅读程序的方便而加到程序中的。一个程序中注释 行的数目不受限制,根据需要而定。但一个程序单位不能 只由注释行组成。注释行是程序的一部分,在打印程序清 单时,注释行也照样打印出来。注释行的内容完全是根据 程序设计人员需要而写的,一般是为程序(或程序中某一 部分)的作用作注释。注释可以用英文或汉语拼音文字, 还可以用汉字作注释。在一些实用程序中,注释行的篇幅 有时占整个程序的三分之一以上。4、FORTRON程序中的语句可以没有标号,也可以有标号, 根据需要而定。标号的作用是标志一个语句以便被其它语 句引用。在同一个程序单位中不能有两个相同标号的语句 。标号不影响语句的执行顺序。程序中语句执行的顺序一 般依照它们在程序中的位置而定,即写在前面的语句先执 行,写在后面的语句后执行。 5、一个程序单位中各类语句的位置是有一定规定的,例如 PROGRAM语句应是主程序的第一个语句,FUNCTION语 句是函数子程序的第一个语句,END语句只能是程序单位 中最后一行。 6、FORTRAN源程序必须按一定的格式书写。哪些内容写在 一行中的哪一列都有严格的规定。1.3 FORTRAN源程序的书写格式FORTRAN源程序必须严格地按照一定 的格式书写。在编译时对一行中不同位置 上的内容分别处理。标准的FORTRAN程序 纸格式见下图。 1、第l5列为标号区: 可以写l至5位整数。也可以没有标号。标号区 中的空格不起作用。如 l00与100 或1 0 0作用相 同。标号应是无符号整数(不应包括正负号或小数 点)。标号大小顺序没有任何要求。假如第二行的 标号为1000,第三行的标号可以是10,也可以是 10000。 标号区内不得出现标号以外的内容,但注释行 例外。注释行的内容可以写在标号区内,一行中 第一列为“C”或“*”的,该行即被认为注释行。如 果在第一列上出现的不是数字、空格或“C”和“*” 的字符,编译时按出错处理。2、第6列位续行标志区: 如果在一行的第6列上写一个非空格和非零的字符 ,则该行作为其上一行的续行。 3、第772列为语句区: 语句可以从第7列以后的任何一列开始写,但一行 只能写一个语句。语句区中的空格(除引号内的字 符串内的空格)在编译时被忽略,例如SIN(X)与S IN( X )等效。 4、第7380列为注释区: 程序员一般利用此8列为程序行编序号以便查找。3.1 常量所谓常量是指其值始终不变的量,例如3,5.6,-8 在FORTRAN中允许使用下面六种常量:(1)整型常量 (2)实型常量 (3)双精度常量 (4)复型常量 (5)逻辑型常量 (6)字符型常量。3.1.1 整型常量整型常量,又称整型常数或整数(integer)。它 是一个正的或负的或零的数。例如5,-8,+123。FORTRAN中的整数不应包括小数点。整数可 以包括数符,也可以不包括数符。常数中各数字之间的空格不起作用。 常数中不允许加入逗号。 3.1.2 实型常量实型常量,又称实数(real)。 实数有两种表示形式: (一)小数形式:例如+12.3,-68.56,3.75,0.0等。 它由一个或多个数字和一个小数点组成。 小数点前或小数点后可以不出现数字,但不能 小数点前后都不出现数字。 例如+0.8,-8.0,0.0,60.,.36,.0 合法18,36,7,. 非法。(二)指数形式: 数字部分和指数部分,例如:12.3E8,0.91E-30。 数字部分可以是不带小数点的整数形式,也可以是 带小数点的实数,例如3E5,3.0E5均合法。 指数不能为小数,例如3E5.6,8.6E-3.7不合法。 指数部分不能单独用来代表一个常数,例如E12。3.2 变量 3.2.1 变量的概念变量是指在程序运行期间其值是可以变化的量。 系统为程序中的每一个变量开辟一个存储单元, 用来存放变量的值。 在程序中用到的变量,应该给它赋予确定的值, 否则它有一个不确定的值。3.2.2 变量名一个变量需要用一个名字(变量名)来识别。 FORTRAN的变量名按以下规定选定: 1、第一个字符必须是字母; 2、在一个字母后面可以跟15位数字或字母。 例如:A,X1,ABCD,CHINA,RATE, TOTAL,G861是合法的,而3X,X+Y,WAN-LI ,-6B,U.S.A,DR.LI是不合法的。选用变量名时注意: (1)在变量名中大写与小写是等价的,例如 TOTAL,Total,total都代表同一个变量。 (2)变量名的字符之间可以插入空格,例如: AMOUNT和A M O U N T都代表同一个变量 AMOUNT。 (3)变量名应尽量做到见名知义,例如:GRADE 代表等级,AVER代表平均值,AMOUNT代表金额 。(4)FORTRAN 77没有规定保留字,即可以用 FORTRAN中的函数名或语句定义符作变量名, 例如: SIN=3.5 PRINT *, SIN或 READ *, PRINT PRINT *, PRINT3.2.3 变量类型常量是分为类型的,而变量是用来存放常量 的,因此变量也相应地区分为整型变量、实型变 量、双精度型变量、复型变量、逻辑型变量、字 符型变量。整型变量用来存放整型常量,实型变 量用来存放实型常量。在程序中应当说明哪些变量是整型变量,哪些 变量是实型变量。变量在内存中所占的字节数和 数据存储形式与相应类型的常数相同。规定变量的类型可以用以下几种方法: 1、隐含约定- I-N规则 FORTRAN规定:在程序中的变量名,凡以字 母I,J,K,L,M,N六个字母开头的,即认为 该变量为整型变量。以其它字母开头的变量为实 型变量。 例如下面变量为整型变量: I,J,IMAX,NUMBER,LINE,JOB,K1 而下面的变量为实型变量: B1,COUNT,AMOUNT,YOUNG,TOTAL ,BOOK,DG342、用类型说明语句确定变量类型FORTRAN中有六个类型说明语句: INTEGER语句(整型说明语句) REAL语句(实型说明语句) DOUBLE PRECISION语句(双精度说明语句) COMPLEX语句(复型说明语句) LOGICAL语句(逻辑型说明语句) CHARACTER语句(字符型说明语句) 例如:INTEGER A, SUM, TOTAL3. 隐含说明语句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语句又 应该在所有的类型说明语句的前面。在编写程序时不仅需要考虑程序本身的结构,即操 作语句间的结构关系,还要考虑数据的结构,要清楚 数据的特性及数据间的联系,设计出适当的数据结构 ,然后考虑用什么样的算法。例如学生记录那样的数 据结构可以用数组来实现。 对于同一个问题的求解,可以采用不同的数据结构 和不同的算法。对不同的数据结构有不同的算法,它 们的复杂程度不同。选择合适的数据结构,可以降低 算法的复杂程度,因此,在程序设计中应重视数据结 构的设计。 在计算机高级语言中提供实现各种数据结构的功能 ,用数据类型表示不同的数据结构。每种高级语言都 规定它可以使用的数据类型。三类数据结构: 1)基本类型:最基本的数据项,是不可再分的。 基本类型包括整型、实型、双精
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号