版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、会计学1 Fortran语言基础语言基础 变量申明 语句语句 保留字 运算式 注释行 第1页/共65页 1.1.字符集字符集 FORTRAN规定允许使用的字符为:规定允许使用的字符为: 2.1 字符集与保留字字符集与保留字 英文字母英文字母A-Z及及a-z(大小写不区分)(大小写不区分) 阿拉伯数字阿拉伯数字0-9 特殊符号特殊符号空格空格 = + - * ( ) ,. : “ ! $ ? _ 注意注意: : 在在FORTRANFORTRAN语句中语句中不区分大小写不区分大小写字母,如字母,如REALREAL何何realreal或或RealReal是一样的是一样的 。 第2页/共65页 2.2
2、.保留字保留字 保留字(也称关键字)是保留字(也称关键字)是FORTRAN 90/95中具有中具有 特定意义的字符串。特定意义的字符串。 如:如:语句关键字、内部函数名语句关键字、内部函数名 第3页/共65页 (1 1)语句关键字)语句关键字 如语句如语句“IF (A THEN”中的中的“IF”和和“THEN” 是语句保留字。是语句保留字。 类似的保留字有:类似的保留字有:PROGRAM、INTEGER、 REAL、READ、PRINT、WRITE、DO、END、 SUBROUTINE、FUNCTION等。等。 (详见P445) 第4页/共65页 (2 2)内部函数名)内部函数名 如如 “AB
3、S”、“SIN”、“LOG” 等等 (详见(详见P456- 459) 注意:注意:FORTRAN 90/95允许保留字作为其他实体的 名称(变量名、数组名、函数名、程序名等) 如:语句“PROGRAM PROGRAM”中第一个 “PROGRAM”将被编译程序识别为保留字,第二 个“PROGRAM”将被识别为实体名称(主程序单 元名)。 第5页/共65页 1. FORTRAN提供的数据类型提供的数据类型 数据类型数据类型 数组类型数组类型 派生类型(记录类型)派生类型(记录类型) 指针类型指针类型 内部数据类型内部数据类型 公用区类型公用区类型 整数类型整数类型 实数类型实数类型 复数类型复数类
4、型 字符类型字符类型 逻辑类型逻辑类型 不同类型数据有不同的特性,其处理的方式有所不同,取值范围也不一样,在处理数据前,必须说明数据的特性。 2.2 基本数据类型基本数据类型 第6页/共65页 2.2.数据类型有四个性质:数据类型有四个性质: (1 1) 每个数据类型有一个唯一的名称。每个数据类型有一个唯一的名称。 (2 2)每个数据类型规定了一个取值范围(值的集合)每个数据类型规定了一个取值范围(值的集合) (3 3)每个数据类型规定了其常量数据的表示方法)每个数据类型规定了其常量数据的表示方法 (4 4)每个数据类型规定了一组操作)每个数据类型规定了一组操作 第7页/共65页 在程序运行过
5、程中,其值不能被改变的量称为常量常量, 它在程序中直接生成并直接用于计算和处理。 整型常量、实型常量、复型常量、 字符型常量、 逻辑型常量 2.3 常量常量 第8页/共65页 1.1.数值型常量及其类型数值型常量及其类型 (1 1)整型常量)整型常量 整型常量又称为整型常数或整型常量又称为整型常数或整数整数,包括正数、负,包括正数、负 数和数和0 0。 例如:例如:+5 -367 0 98+5 -367 0 98 第9页/共65页 (2 2)实型常量)实型常量 实型常量即实型常数或简称为实数。它有两种形式: 小数形式:小数形式:12.3 -3.5 100. .56 指数形式指数形式 :5.35
6、E5表示5.35105,2.66E-3表示 2.6610-3 第10页/共65页 当单精度实数不足以表示一个数的大小或当单精度实数不足以表示一个数的大小或 精度时,可以用双精度实数表示,精度时,可以用双精度实数表示,只是将只是将 实数指数部分中的字母实数指数部分中的字母E改成字母改成字母D即可。即可。 例如,例如,6.85746304857D5, .3875479654765D+3等都是双精度实数。等都是双精度实数。 第11页/共65页 (3 3)复型常量)复型常量 复型常量即复型常数或简称为复数。 如:(1.0,1.0)表示复数1.0+1.0i,(2.1,-4.5) 表示复数2.1-4.5i
7、,(-6.0,0) 表示复数-6.0。 第12页/共65页 2.2.字符型常量字符型常量 一对单引号(撇号)或双引号括起来的若干 个非空字符串为字符型常量,又称为字符或 字符串。 如:a ,A,x+y,#$% 注意:注意:字符串内字母区分大小写,a和A 是不同的字符常量。 第13页/共65页 (1)字符串中含有撇号 如:Im a boy. “Im a boy.” (2)字符串长度(字符串中的空格是有意义) 如Im a boy.的长度为10 为空串 而 则为长度为1 第14页/共65页 3.3.逻辑型常量逻辑型常量 逻辑常量仅有两个,.TRUE. 和.FALSE. 注意:对于逻辑值.TRUE.,
8、在其存储单元字节内每 位为“1”,可视为整数值-1,对于逻辑值.FALSE., 在其存储单元字节内每位为“0”,可视为整数值0, 它们均能参与整数运算。 如: 7+.FALSE.,结果仍为7。1+.TRUE.,结果则为0 第15页/共65页 4.4.符号常量符号常量 如:圆周率、重力加速度g等数据。 1 1 PROGRAM ex05_01PROGRAM ex05_01 2 2 IMPLICIT NONEIMPLICIT NONE 3 3 REAL piREAL pi 4 4 PARAMETER(pi=3.1415926)PARAMETER(pi=3.1415926) ! !定义定义pipi代表
9、常量代表常量 3.14159263.1415926 5 5 WRITE (WRITE (* *, ,* *) sin(pi/6) sin(pi/6) 6 6 ENDEND 第16页/共65页 1 1、变量的定义、变量的定义 变量是指在程序运行期间其值是可以变化 的量,系统为程序中的每一个变量开辟一 个存储单元,用来存放变量的值。 2 2、变量的命名、变量的命名 FORTRAN中规定须以字母开头,后可接多达 30个字母、数字或下划线 。 2.4 变量变量 第17页/共65页 下面列出的是下面列出的是合法合法的标识符,可以作为变量名:的标识符,可以作为变量名: Sum, average, stud
10、ent_name, BASICSum, average, student_name, BASIC 下面是下面是不合法不合法的标识符和变量名:的标识符和变量名: _total, M.D.John, H1N1 _total, M.D.John, H1N1 , integer, integer 第18页/共65页 3 3、变量的类型、变量的类型 变量也相应的分为五种类型:变量也相应的分为五种类型: (1 1)整型变量)整型变量 (2 2)实型变量)实型变量 (3 3)复型变量)复型变量 (4 4)字符型变量)字符型变量 (5 5)逻辑型变量)逻辑型变量 数值型变量数值型变量 字符型变量字符型变量 逻
11、辑型变量逻辑型变量 第19页/共65页 下面为合法声明整型变量语句:下面为合法声明整型变量语句: INTEGER (KIND=2) a,b,c,d !声明KIND值为2的4个整型变量 INTEGER(1) e !声明KIND值为1的1个整型变量 INTEGER f !声明KIND值为4(缺省)的1个整 型变量 INTEGER :g=123 !声明KIND值为4(缺省)的1个整 型变量 且初值为123 注意:符号在声明中可有可无。若有,则可赋初值, 否则不可赋初值。 如声明语句“INTEGER g=123”是非法语句。 (1 1)整型变量)整型变量 第20页/共65页 下面为合法声明实型变量语句
12、下面为合法声明实型变量语句 REAL(KIND=4) a,b,c,d !声明KIND值为4的4个实型变量 REAL(8) e !声明KIND值为8的1个实型变量 REAL f!声明KIND值为4(缺省)的1个实 型变量 REAL : g=1.23 !声明KIND值为4 (缺省)的1个实型变量 且赋初值为1.23 注意:符号在声明中可有可无。若有,则可赋初值,否则不可 赋初值。如声明语句“REAL g=1.23”是非法语句。 KIND值为8的实型变量为双精度变量,可由DOUBLE PRECISION声 明取代。 (2 2)实型变量)实型变量 第21页/共65页 下面为合法声明复型变量语句下面为合
13、法声明复型变量语句: COMPLEX(KIND=4) a,b,c,d!声明KIND值为4的4个复型 变量 COMPLEX(8) e!声明KIND值为8的1个复型变量 COMPLEX f !声明KIND值为4(缺省)的1个复型变量 COMPLEX :g=(3,4) !声明KIND值为4(缺省)的1个复型 变量,且赋初值为(3,4)。 注意:符号注意:符号在声明中可有可无。若有,则可赋初值,在声明中可有可无。若有,则可赋初值, 否则不可赋初值。如声明语句否则不可赋初值。如声明语句“COMPLEX g=(3,4)”是非是非 法语句。法语句。 (3 3)复型变量)复型变量 第22页/共65页 下面为合
14、法声明字符型变量语句下面为合法声明字符型变量语句: CHARACTER a !声明长度为1(缺省)的1个字符型变 量 CHARACTER (8) b,c !声明长度为8的2个字符型 变量 CHARACTER (LEN=4) e,f,g !声明长度为4的3个字符型 变量 CHARACTER*6 h !声明长度为6的1个字符型 变量 CHARACTER :a=A !a的初值为“A” CHARACTER (7) :b=“FORTRAN”,c !b的初值为 “FORTRAN”,c初值为7空格“” 而声名语句CHARACTER*7 h= “student”则为非法语句。 (4 4)字符型变量)字符型变量
15、 第23页/共65页 下面为合法声明逻辑型变量语句下面为合法声明逻辑型变量语句: LOGICAL(KIND=4) a!声明KIND值为4的1个逻辑型变量 LOGICAL(4) a!声明KIND值为4的1个逻辑型变量 LOGICAL a !声明KIND值为4(缺省)的1个逻辑型变 量LOGICAL : a=.True. !声明KIND值为4(缺省)的1个复 型变量,且赋初值为真。 (5 5)逻辑型变量)逻辑型变量 第24页/共65页 (6 6)变量的声明)变量的声明 在程序中,变量类型需要通过类型声明语句来定义。在程序中,变量类型需要通过类型声明语句来定义。 变量声明有两种形式:变量声明有两种形
16、式:显式声明显式声明和和隐式声明(隐含约隐式声明(隐含约 定)。定)。 显式声明显式声明 INTEGER a REAL b COMPLEX c 第25页/共65页 隐式声明(隐含约定)隐式声明(隐含约定) I-N规则规则规定:在程序中,凡是变量名用以下字母开规定:在程序中,凡是变量名用以下字母开 头的变量被默认为头的变量被默认为整型变量整型变量,I、J、K、L、M、N 、i、j、k、l、m、n 以以其他字母其他字母开头的变量被默认为开头的变量被默认为实型变量实型变量, 如:如:idid为整型变量,而为整型变量,而total则为实型变量。则为实型变量。 FORTRAN 90/95中一般不提倡使用
17、,通过在程序变量 说明之前加入:IMPLICIT NONE语句来取消I-N规则。 第26页/共65页 IMPLICIT语句语句 功能:禁止I-N规则或重新定义I-N规则 例如:例如: IMPLICIT NONE !关闭默认类型功能,所有变量都要事先声明 IMPLICIT INTEGER(a,b,c)!a,b,c开头的变量都认为是整型 IMPLICIT REAL(m-p) !m到p开头的变量都认为是实 型 第27页/共65页 第28页/共65页 (7 7)变量的初始化)变量的初始化 直接把数值写在声明的变量后面。使用这个方法来使用这个方法来 设置初值时,不能省略定义语句中间的冒号设置初值时,不能
18、省略定义语句中间的冒号。如: 1PROGRAM ex05_03 2INTEGER :a=1 3REAL:b=2.0 4COMPLEX:c=(1.0,2.0) 5CHARACTER(len=10):string=FORTRAN 6WRITE(*,*) a,b,c,string 7END 第29页/共65页 1PROGRAM ex05_04 2INTEGER a 3REAL b 4COMPLEX c 5CHARACTER(len=10) string DATA a,b,c,string/1,2.0,(1.0,2.0), FORTRAN/ 6WRITE(*,*) a,b,c,string 7END
19、第30页/共65页 1.1.运算符号运算符号 运算符类型运算符类型运算符运算符操作数类型操作数类型 算术运算算术运算+ +,-(-(一元运算符一元运算符) ) * * *,* *,/ /,+ +,-(-(二元运算符二元运算符) ) 任意数值类型与任意种别参数的任意数值类型与任意种别参数的 数值的组合数值的组合 字符运算字符运算/具有相同种别参数的任意长度的具有相同种别参数的任意长度的 字符串字符串 关系运算关系运算.EQ.EQ.,.NE.NE., =,/=/= 两个操作数或者同时是任意数值两个操作数或者同时是任意数值 类型与任意种别参数的数值,或类型与任意种别参数的数值,或 者同时是具有相同种
20、别参数的任者同时是具有相同种别参数的任 意长度的字符串意长度的字符串 关系运算关系运算.GT.GT.,.GE.GE.,.LT.LT.,.LE.LE., ,=, ,= 两个操作数或者同时是除了复型两个操作数或者同时是除了复型 之外的任意数值类型与任意种别之外的任意数值类型与任意种别 参数的数值,或者同时是具有相参数的数值,或者同时是具有相 同种别参数的任意长度的字符串同种别参数的任意长度的字符串 逻辑运算逻辑运算NOT.(NOT.(一元算符一元算符) ) .AND.AND.,.OR.OR.,.EQV.EQV.,NEQV. (NEQV. (二二 元算符元算符) ) 同时是任意种别参数的逻辑型数同时
21、是任意种别参数的逻辑型数 据的组合据的组合 2.5 运算符与表达式运算符与表达式 第31页/共65页 2.2.算术运算符及其表达式算术运算符及其表达式 +(正号或加号)、-(负号或减号)、*(乘 号)、/(除号)、*(乘方)。 不同的运算符有优先级次序。 低低高高 加加,减减乘乘、除除乘乘方方、括括号号 第32页/共65页 例如:例如: (a-b)/c*2+sin(x+y)。 请注意:请注意: (1)由于用)由于用“/”号作为除号,因此在写除法运算式子号作为除号,因此在写除法运算式子 时应加上必要的括号。时应加上必要的括号。 (2)乘号不能省略,如)乘号不能省略,如asinx,必须写成,必须写
22、成a*sin(x)。 (3)FORTRAN中无大、中、小括号之分,一律用小括中无大、中、小括号之分,一律用小括 号。号。 (4)乘方按)乘方按“先右后左先右后左”原则处理。原则处理。 (5)对单项运算符(正号或负号)相当于在它前面有)对单项运算符(正号或负号)相当于在它前面有 一个运算量一个运算量“0”,如:,如:-a*2相当于相当于0-a*2,而不是,而不是 (-a)*2。 第33页/共65页 算术表达式的求值运算的规则:算术表达式的求值运算的规则: (1)同类型的操作数之间运算的结果仍保持原类型。 特别要注意:两个整数相除的商也是整数。例如,5/2的值是 2而不等于2.5,4*(-1)等于
23、0,应写为5*(1./3.)而不 是5*(1/3)。 (2)如果参加运算的两个操作数为不同类型,则编译系统会自 动将它们转换成同一类型后进行运算。 转换的规律是:将低级类型转换成高级类型。类型的转换时从左 向右进行的,在遇到不同类型的操作数时才进行转换。例如, 1/2*1.0等于0,而1./2*1等于0.5。 第34页/共65页 操作数类型操作数类型类型级别类型级别操作数类型操作数类型类型级别类型级别 COMPLEX(8)COMPLEX(8)1 1(高)(高)INTEGER(8)INTEGER(8)5 5 COMPLEX(4)COMPLEX(4)2 2INTEGER(4)INTEGER(4)6
24、 6 REAL(8)REAL(8)3 3INTEGER(2)INTEGER(2)7 7 REAL(4)REAL(4)4 4INTEGER(1)INTEGER(1)8 8(低)(低) 算术操作数类型和级别算术操作数类型和级别 第35页/共65页 3.3.关系运算符及其表达式关系运算符及其表达式 关系运算符关系运算符运算符功能运算符功能操作数要求操作数要求 .LT.LT. 小于小于整型表达式;实型表达式;字符型表达式整型表达式;实型表达式;字符型表达式 .LE.LE.= 大于大于整型表达式;实型表达式;字符型表达式整型表达式;实型表达式;字符型表达式 .GE.GE.=大于等于大于等于整型表达式;实
25、型表达式;字符型表达式整型表达式;实型表达式;字符型表达式 第36页/共65页 格式为:格式为: 表达式表达式1 1 关系运算符关系运算符 表达式表达式2 2 有以下几点说明: (1)如果表达式1,表达式2都为算术表达式,则进行关系运算前 将其转换成同一类型,转换方法同算术表达式。 (2)如果表达式1,表达式2都为字符表达式,则进行关系运算前 将其转换成等长字符串,不足末尾补足空格。 (3)复数的关系运算只有两种:等于和不等于。 (4)对算术表达式进行关系运算,根据它们值的大小决定运算结 果。 (5)对字符表达式进行关系运算,依次比较两字符串相应位置字 符的ASCII码值大小决定运算结果。 第
26、37页/共65页 例如:例如: 1234 !结果为.FALSE. . (4+5*2).LE.10 !结果为.FALSE. (4.2,7.3).NE. (7.3,4.2)!结果为.TRUE. MOD(4,2).EQ.0 !4除以2的余数是否等于0。结果为.TURE.E. banana=apple !结果为.FALSE. This is a pen.100 例如,下面语句是非法语句。例如,下面语句是非法语句。 LOGICAL flag1,flag2 flag1=1.5!类型不一致类型不一致 flag2=china !类型不一致类型不一致 第43页/共65页 (3)(3)字符赋值语句字符赋值语句 赋
27、值号左边变量和右边表达式类型均为字符型。 例如:下面语句是合法语句。 CHARACTER*7 str str=student str=He is a /student 例如:下面语句是非法语句。 CHARACTER*7 str str=student+125!125是整数不能与字符串进行加法运 算 str=125+3*20!右边不能为算术运算表达式 str=a00,则,则|x|x1 1| |;若;若x x2 200,则,则-|x-|x1 1| | REAL(x)REAL(x)把整形量把整形量x x转换为实型转换为实型 MAX(x1,x2,MAX(x1,x2,) )求求x x1 1,x,x2 2
28、, ,中的最大值中的最大值 2.7 内部函数内部函数 第52页/共65页 下面举例说明表中内部函数的使用:下面举例说明表中内部函数的使用: INT(5.85)=5INT(-5.85)=-5 MAX(-1,3,16,0)=16MIN(-1,3,16,0)=-1 LOG(3.0)=1.098612LOG10(100.0)=2.0 SIN(1.0)=0.8414709TAN(1.0)=1.557408 SQRT(4.0)=2.0EXP(3.0)=20.08553 MOD(9,6)=3MOD(6,9)=6 SIGN(3.0,-2.0)=-3.0SIGN(-3.0,-2.0)=-3.0 SIGN(-3.
29、0,2.0)=3.0SIGN(3.0, 2.0)=3.0 REAL(-8)=-8.0SQRT(SQRT(16.0)=2.0 第53页/共65页 它是它是FORTRAN输入、输出中最输入、输出中最 简单的一种方式,是按系统隐含的标准格式输入输出。简单的一种方式,是按系统隐含的标准格式输入输出。 (2)有格式输入、输出。)有格式输入、输出。它是按用户规定的数据格式输入、它是按用户规定的数据格式输入、 输出。故也称可控格式(或有格式)的输入、输出。输出。故也称可控格式(或有格式)的输入、输出。 (3)无格式的输入、输出。)无格式的输入、输出。它是以二进制形式输入和输出数它是以二进制形式输入和输出数 据,只适用于计算机内存与磁盘、磁带等之间的数据交据,只适用于计算机内存与磁盘、磁带等之间的数据交 换。换。 本节只讲(1)表控输入/出,(2-3)将在文件一章讲解。 (1)表控格式输入、输)表控格式输入、输 出。出。 2.8 输入和输出输入和输出 第54页/共65页 1.1.表控输入语句表控输入语句 表控输入表控输入不必指定输入数据的格式不必指定输入数据的格式,所以又称为自由格式输,所以又称为自由格式输 入,其一般形式为:入,其一般形式为: READ *,输入表输入表
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 社区儿童下棋活动方案
- 红色园丁活动方案
- 管理实践活动方案
- 胜任力评估打分
- 红立方活动跨年活动方案
- 现代设备管理信息系统应用案例
- 河北版科学六年级上册地球绕着太阳转教案
- 2025版哮喘症状详解及护理宝典
- 苏教版化学必修专题三第一单元铝的性质教案(2025-2026学年)
- 社区举行党建活动方案
- 2025心血管内科急性心肌梗死患者急诊PCI术后护理培训规范
- 供货方品质服务保证承诺函8篇
- 自考15043中国近现代史纲要押题及答案
- 2025年政府采购服务采购合同协议
- 2025年祁阳事业单位真题
- 保安资格模拟考试100题
- 术前讨论制度(2025年版)
- 板式换热器清洗施工方案
- 国际会计学教学大纲
- 造影剂过敏反应护理
- 2025至2030中国差压表行业产业运行态势及投资规划深度研究报告
评论
0/150
提交评论