fortran77程序设计简介.ppt
《fortran77程序设计简介.ppt》由会员分享,可在线阅读,更多相关《fortran77程序设计简介.ppt(281页珍藏版)》请在三一办公上搜索。
1、FORTRAN 77语言-结构化程序设计,主讲:王 飞江苏科技大学,教材:FORTRAN语言FORTRAN77结构化程序设计谭浩强等编著,第一章 FORTRAN语言程序设计初步,1.1 FORTRAN语言发展概况1.2 简单的FORTRAN 77程序分析1.3 FORTRAN源程序的书写格式,1.1 FORTRAN语言发展概况,FORTRAN语言是世界上第一个被正式推广使用的高级语言。它是1954年被提出来的,1956年开始正式使用,至今已有五十多年历史,但仍历久不衰,它始终是数值计算领域所使用的主要语言。FORTRAN是英文FORmula TRANslation的缩写,意为“公式翻译”。它是
2、为科学、工程问题或企事业管理中的那些能够用数学公式表达的问题而设计的,其数值计算的功能较强。FORTRAN 77还不是完全结构化的语言,但由于增加了一些结构化的语句,特别是“块if”语句,提供了IF-ELSE-ENDIF形式的判断控制语句,使FORTRAN 77能用于编写结构化程序。此外,还扩充了字符处理功能,使FORTRAN不仅可用于数值计算领域,还可以使用于非数值运算领域。目前,FORTRAN77已在国内外广泛使用,大多数计算机系统都已配置了FORTRAN 77。FORTRAN语言的不同版本:FORTRAN I、FORTRAN II、FORTRAN IV、FORTRAN 66、FORTRA
3、N 77、FORTRAN 90,1.2 简单的FORTRAN 77程序分析,为了使读者从一开始就了解什么是FORTRAN 77程序,下面先介绍两个很简单的FORTRAN 77源程序。例1.1求三个数的平均数程序代码:C CALCULATE THE AVERAGE OF THREE NUMBERSX=90.5Y=87.0Z=68.5AVER=(X+Y+Z)/3.0PRINT*,THE THREE NUMBERS ARE,X,Y,ZPRINT*,AVERAGE=,AVEREND,例1.2分别求R=1,3,12,5时的圆周长,可以用一个子程序来求圆周长。源程序由两部分组成:(1)主程序C MAIN
4、PROGRAMPROGRAM EX2PRINT*,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 SUBPROGRAMFUNCTION C(R)PI=3.1415926C=2*PI*RRETURNEND,从以上例子中可以看出:1、一个程序由一个或若干个程序单位组成。主程序和每一个子程序分别是一个独立的程序单位。在解决一个比较复杂的问题时,可以分别将每个功能编为一个子程序,然后按搭积木一样将各有关程序单位组成一个程序。一个程序单位就是一个模块,结构
5、化程序设计需要采用模块化方法,在FORTRAN中,子程序是实现模块化的有效方法。2、每一个程序单位都是以“END”结束的。在FORTRAN 77中,END既是一个程序单位的结束标志,又是一个独立的语句(结束语句)。主程序中的END语句的作用是使程序“停止运行”,子程序中的END语句是“使流程返回调用程序”。请注意在一个程序单位中只能有一个END语句,如果需要,可以用STOP语句使程序终止或用RETURN语句从子程序返回。,3、一个程序单位包括若干行。FORTRAN行分为两类:(1)语句行。由一个FORTRAN语句组成,它对程序运行情况是有影响的。FORTRAN语句分为:执行语句和非执行语句。执
6、行语句使计算机在运行时产生某些操作,如赋值语句、打印语句等。非执行语句(包括说明语句,数据语句等)将有关信息通知编译系统,以便在编译时作出相应的处理,例如类型说明语句、函数子程序语句等。(2)非语句行,即注释行。它不是FORTRAN语句,它不被翻译成机器目标指令,不产生任何机器操作。它仅仅是为了人们阅读程序的方便而加到程序中的。一个程序中注释行的数目不受限制,根据需要而定。但一个程序单位不能只由注释行组成。注释行是程序的一部分,在打印程序清单时,注释行也照样打印出来。注释行的内容完全是根据程序设计人员需要而写的,一般是为程序(或程序中某一部分)的作用作注释。注释可以用英文或汉语拼音文字,还可以
7、用汉字作注释。在一些实用程序中,注释行的篇幅有时占整个程序的三分之一以上。,4、FORTRON程序中的语句可以没有标号,也可以有标号,根据需要而定。标号的作用是标志一个语句以便被其它语句引用。在同一个程序单位中不能有两个相同标号的语句。标号不影响语句的执行顺序。程序中语句执行的顺序一般依照它们在程序中的位置而定,即写在前面的语句先执行,写在后面的语句后执行。5、一个程序单位中各类语句的位置是有一定规定的,例如PROGRAM语句应是主程序的第一个语句,FUNCTION语句是函数子程序的第一个语句,END语句只能是程序单位中最后一行。6、FORTRAN源程序必须按一定的格式书写。哪些内容写在一行中
8、的哪一列都有严格的规定。,1.3 FORTRAN源程序的书写格式,FORTRAN源程序必须严格地按照一定的格式书写。在编译时对一行中不同位置上的内容分别处理。标准的FORTRAN程序纸格式见下图。,1、第l5列为标号区:可以写l至5位整数。也可以没有标号。标号区中的空格不起作用。如 l00与100 或1 0 0作用相同。标号应是无符号整数(不应包括正负号或小数点)。标号大小顺序没有任何要求。假如第二行的标号为1000,第三行的标号可以是10,也可以是10000。标号区内不得出现标号以外的内容,但注释行例外。注释行的内容可以写在标号区内,一行中第一列为“C”或“*”的,该行即被认为注释行。如果在
9、第一列上出现的不是数字、空格或“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)逻辑型常量(
10、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,.非法。,(二
11、)指数形式:数字部分和指数部分,例如:12.3E8,0.91E-30。数字部分可以是不带小数点的整数形式,也可以是带小数点的实数,例如3E5,3.0E5均合法。指数不能为小数,例如3E5.6,不合法。指数部分不能单独用来代表一个常数,例如E12。,3.2 变量3.2.1 变量的概念,变量是指在程序运行期间其值是可以变化的量。系统为程序中的每一个变量开辟一个存储单元,用来存放变量的值。在程序中用到的变量,应该给它赋予确定的值,否则它有一个不确定的值。,3.2.2 变量名,一个变量需要用一个名字(变量名)来识别。FORTRAN的变量名按以下规定选定:1、第一个字符必须是字母;2、在一个字母后面可以
12、跟15位数字或字母。例如:A,X1,ABCD,CHINA,RATE,TOTAL,G861是合法的,而3X,X+Y,WAN-LI,-6B,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.5PR
13、INT*,SIN 或READ*,PRINTPRINT*,PRINT,3.2.3 变量类型,常量是分为类型的,而变量是用来存放常量的,因此变量也相应地区分为整型变量、实型变量、双精度型变量、复型变量、逻辑型变量、字符型变量。整型变量用来存放整型常量,实型变量用来存放实型常量。,在程序中应当说明哪些变量是整型变量,哪些变量是实型变量。变量在内存中所占的字节数和数据存储形式与相应类型的常数相同。,规定变量的类型可以用以下几种方法:1、隐含约定-I-N规则FORTRAN规定:在程序中的变量名,凡以字母I,J,K,L,M,N六个字母开头的,即认为该变量为整型变量。以其它字母开头的变量为实型变量。例如下面
14、变量为整型变量:I,J,IMAX,NUMBER,LINE,JOB,K1而下面的变量为实型变量:B1,COUNT,AMOUNT,YOUNG,TOTAL,BOOK,DG34,2、用类型说明语句确定变量类型 FORTRAN中有六个类型说明语句:INTEGER语句(整型说明语句)REAL语句(实型说明语句)DOUBLE PRECISION语句(双精度说明语句)COMPLEX语句(复型说明语句)LOGICAL语句(逻辑型说明语句)CHARACTER语句(字符型说明语句)例如:INTEGER A,SUM,TOTAL,3.隐含说明语句IMPLICIT语句IMPLICIT INTEGER(A,C,T-V)IM
15、PLICIT REAL(I,J)IMPLICIT INTEGER(A,B),REAL(I,K),说明:,1、类型说明语句最优先,IMPLICIT语句次之,I-N规则最低。例如:IMPLICIT REAL(I,J)INTEGER IMAX2、IMPLICIT语句和类型说明语句应该出现在程序单位中的所有执行语句的前面,IMPLICIT语句又应该在所有的类型说明语句的前面。,在编写程序时不仅需要考虑程序本身的结构,即操作语句间的结构关系,还要考虑数据的结构,要清楚数据的特性及数据间的联系,设计出适当的数据结构,然后考虑用什么样的算法。例如学生记录那样的数据结构可以用数组来实现。对于同一个问题的求解,
16、可以采用不同的数据结构和不同的算法。对不同的数据结构有不同的算法,它们的复杂程度不同。选择合适的数据结构,可以降低算法的复杂程度,因此,在程序设计中应重视数据结构的设计。在计算机高级语言中提供实现各种数据结构的功能,用数据类型表示不同的数据结构。每种高级语言都规定它可以使用的数据类型。,三类数据结构:1)基本类型:最基本的数据项,是不可再分的。基本类型包括整型、实型、双精度型、复型、逻辑型等类型2)构造类型:由已知类型,按一定规则构造而成的复合类型数据,包括数组、记录、文件和集合等3)指针类型:用于构造各种形态的动态数据结构,如链表、队、栈、树、图等在FORTRAN 77中基本类型有以下六种:
17、整型 实型 双精度型 复型 逻辑型 字符型,6.2 双精度类型数据,实型提供7位有效数字,双精度型提供1517位有效数字。双精度常数要用指数形式表示,将实数中表示指数的字母E改成字母D即可。例如:1.23456789表示为1.23456789D+0 0.123 表示为1.23D-01,例6.1 分数序列2/1,3/2,5/3,8/5,13/8,21/13,求出这个序列的前20项之和。Fibonacci数列:1、1、2、3、5、8、13、21.。,DOUBLE PRECISION A,B,C,SS=0.0D0A=1.0D0B=1.0D0C=A+BDO 10,I=1,20,1S=S+C/B A=B
18、 B=C C=A+B10CONTINUEPRINT*,S=,SEND,6.4 四种数值型数据之间的转换和运算6.4.1 不同类型数据之间运算的规则,表6.1给出不同类型数据之间进行加减乘除运算的规则(C=A+B或C=A*B),其中表示FORTRAN 77标准是不允许的。但有的FORTRAN编译系统作了放宽,允许双精度型数据和复型数据之间运算,结果为复型,6.4.2 不同类型数据的赋值规则,表6.2 不同类型数据的赋值规则(v=e),6.4.3 类型转换函数,FORTRAN 77提供一些函数,使不同类型的数据能相互转换,见表6.3。,6.4.4 不同类型数据的比较规则,表6.4是比较规则。将A与
19、B进行关系运算,星号表示只有用.EQ.或.NE.时才可以进行比较,6.5 字符型数据,FORTRAN不仅能用于数值计算,而且具有处理文字的能力。计算机的用途已日益扩展到非数值运算领域,必须能有效地对文字信息进行处理。例如,对一个班学生名字按字母顺序排列,从一批书籍中找出指定书名的那一本等等。只有以前介绍过的五种类型(整型、实型、双精度型、复型、逻辑型)是不够的,FORTRAN 77提供了字符类型。,6.5.1 字符型常量,字符型常量亦称字符串(character string),它是用引号(单引号或双引号)括起来的若干个字符。字符型常量允许使用系统可以使用的字符,只要能从键盘输入给计算机系统的
20、字符都可以出现在字符串中。例如下面的字符串都是合法的:CHINA“U.S.A”LI DAN“FUN-LI”How are you?“X=?”A+B;C+D;E+F;*$?#“您好”FORTRAN规定:字符串如出现引号要用两个连续的引号表示,例如:THATS RIGHT!,6.5.2 字符型变量,用来存放字符型常量的变量称为字符型变量。在程序中必须先定义字符型变量才能使用它。定义字符型变量用CHARACTER语句或IMPLICIT语句,例如:CHARACTEER*5 STR1,STR2,STR3CHARACTER NAME*20,ADDR*30,CODE*10如果语句统一指定的字符长度与变量个别
21、指定的长度不一致,以个别指定优先于统一指定,例如:CHARACTER*5 A,B*6,C,D*4,E,若CHARACTER语句中不指定长度,则隐含指定长度为1:CHARACTER A,B,C可以用IMPLICIT语句定义字符型变量:IMPLICIT CHARACTER*5(A-C),CHARACTER*4(X)CHARACTER语句还可以定义符号常量:CHARACTER*5 NAMEPARAMETER(NAME=CHINA),6.5.3 字符型变量的赋值,用赋值语句对字符型变量赋值,例如:CHARACTER*5 NAME1,NAME2,NAME3NAME1=CHINANAME2=BEIJING
22、NAME3=NEW也可以通过READ语句从键盘读入字符常量给字符变量,注意用表控格式输入字符串时要用撇号将字符串括起来,例如:READ*,NAME1,NAME2,NAME3,6.5.4 子字符串,字符串的一部分称为字符串的子串。例如:字符变量A的值为NEW YEAR,则NEW,YEAR,EW,Y,AR都是A的子串。子串的形式表示:字符变量名(e1:e2)e1和e2是整型表达式,表示子字符串在字符串中的起止位置,例如:CHARACTER*33 STR STR=STRUCTURED PROGRAMMING IN FORTRAN PRINT*,STR(1:10),STR(27:33)e1和e2应满足
23、关系:1e1e2LL为字符变量的长度,如省略e1表示e1为1,如省略e2,则表示e2=L,如e1,e2都不写(但不能省写冒号),表示e1=1,e2=L。,子字符串 子串的值 STR(12:22)PROGRAMMING STR(27:)FORTRAN STR(:10)STRUCTURE STR(5:5)C STR(:)STRUCTURED PROGRAMMING IN FORTRAN可以将一个子字符赋给一个字符变量或另一个子字符串,例如:NAME=STR(27:33)STR(1:10)=STR(27:33)STR(23:29)=STR(27:33),6.5.5 字符表达式,字符型数据也可以进行运
24、算。FORTRAN 77只提供一种字符运算符字符连接符,用“/”符号表示将两个字符型数据连接起来。例如:A/B得到AB。A/B就是一个字符表达式。字符表达式的值是字符型常量。,例6.3将读入的名字和地址打印出来,CHARACTER NAME*10,ADDR*20,LINE*50READ*,NAME,ADDRLINE=MR./NAME/ADDRESS:/ADDRPRINT*,LINEEND,6.5.6 字符关系表达式,两个数值型数据可以进行比较,两个字符型数据也可以进行比较,例如:A.GT.B字符比较的规则:按其ASCII代码的值进行比较。从附录可以看到不同字符的先后次序。常用的字符顺序:数字0
25、小9大;数字比字母小;大写字母比小写字母小;字母A小Z大,a小z大;空格字符最小;其它专用字符有的比数字小,有的比数字大。,在进行关系运算时遵循以下规律:(1)两个单个字符比较,以其代码比较,代码大者为大。如AB(2)两个字符型变量比较,将两个字符串中的字符自左向右进行比较,如果所有字符都相等就认为两个字符串相等。如果两者中有不相同的字符,以最左面的第一对不同字符的比较结果为准。如:SHANGHAISHANKONG前四个字符相同,第5个字符GK,故知:SHANGHAISHANKONG(3)如果两个字符串长度不等,则系统会自动将短串的尾部补以空格,使两者等长再比较,例如:thethen,6.5.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- fortran77 程序设计 简介
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-6505849.html