鼓励团队的正能量的说说:失去不一定再拥有_第1页
鼓励团队的正能量的说说:失去不一定再拥有_第2页
鼓励团队的正能量的说说:失去不一定再拥有_第3页
鼓励团队的正能量的说说:失去不一定再拥有_第4页
鼓励团队的正能量的说说:失去不一定再拥有_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2022-3-71uFORTRAN语言发展概况u简单的FORTRAN77程序分析uFORTRAN源程序的书写格式uFORTRAN源程序键盘、输入u常 量u变 量lFORTRAN函数lFORTRAN算术表达式l赋值语句l简单的输出与输入l参数语句lEND、STOP、PAUSE语句http:/ 语言于 1954 年提出,1956 年正式使用,是世界上最早被推广使用的高级语言,主要应用于数值计算领域。FORTRANFORmula TRANslation 的缩写。FORTRAN 771980 年被接受为国际标准,该标准分为全集和子集。在此之前FORTRAN 语言先后推出了不同的版本:如FORTRAN

2、II1958), FORTRAN IV1962)等。由于FORTRAN 77 中包含一些结构化的语句(块,DO 等),因而能用于编写结构化程序。此外,FORTRAN 77 还扩充了字符处理功能,使其也能应用于非数值计算领域。1991 年,ANSI(美国国家标准化协会) X3.198-1991 问世 其国际标准文件号为 ISO/IEC 1539:1991, 我国国家标准是 GB/T 3057-1996, 人们俗称 FORTRAN90。除保持了 FORTRAN77 的全部优点,还加进了许多具有现代特性的功能,为FORTRAN 语言注入了新的活力。Back2022-3-731引例:求三个数的平均数C

3、Calculate the average of three numbers X = 90.5 Y=87.0 Z=68.5 AVER = (X+Y+Z)/3.0 WRITE(*,*)The Three Numbers are :,X,Y,Z WRITE(*,*)AVERAGE = ,AVER END程序中第 1 行是注释行,用于说明本程序的作用;第24 行是赋值语句,将三个数值分别赋予三个变量;第 5 行是计算赋值语句,求出平均值并赋予变量 AVER,第 67 行是输出语句,分别打印三个数及其平均值,最后一行是END 语句。2022-3-74引例 2:分别求 R=1,3,12,5 时的圆周长

4、C Main Program C Program EX2 WRITE(*,*) R = , 1.0, C = , C(1.0) WRITE(*,*) R = , 3.0, C = , C(3.0) WRITE(*,*) R = , 12.0, C = , C(12.0) WRITE(*,*) R = , 5.0, C = , C(5.0) ENDC Sub Program FUNCTION C( R) PI = 3.1415926 C =2.*PI*R RETURN END2022-3-75子程序中第 1 行是注释行,说明本程序是子程序,第 2行是 FUNCTION语句,表明这是一个函数子程序

5、,函数名为 C ,并有一个自变量 R ,此函数子程序在主程序中被调 4次,分别求出不同半径时的圆周长;第3 行是赋值语句,第 4 行是利用公式 rcp2=计算与自变量 R 对应的圆周长并赋于变量 C,第 5 行是 RETURN 语句,返回调用程序,最后一行是 END 语句。主程序中第 1 行是注释行,说明本程序是主程序,第 2行是 PROGRAM语句,为主程序起名为 EX2 ,以便识别,第 36 行为输出语句,其中 C(1.0)、 C(3.0)、 C(12.0),C(5.0 )分别调用函数子程序,求出与半径 1.0、3.0、12.0、5.0 相对应的圆周长;最后一行是 END 语句。Back2

6、022-3-76 函数由以上引例可以看到:一个 FORTRAN 程序由一个主程序或一个主程序与若干个子程序组成。主程序与各子程序都是独立的程序单位,称为程序模块。子程序是实现程序模块化的一个有效途径。FORTRAN 子程序有以下几种:函数子程序,第一个语句是 FUNCTION 名 子例行程序,第一个语句是 SUBROUTINE 子程序名数据块子程序, 第一个语句是 BLOCK DATA 子程序名2022-3-773、PROGRAM,FUNCTION,SUBROUTINE,BLOCK DATAIMPLICIT语句PARAMETER语句其它说明语句语句函数语句FORMAT和 ENTRYDATA语句

7、可执行语句注释行END语句FORTRAN 77对每一个程序单位的结构规定如下:(说明语句,格式语句等)(赋值语句,输出语句等)1、每一个程序单位必须有一个、也只能有一个END语句,且出现 在程序单位的最后。2、每一个程序单位包含若干行,分为两类:(注释行)非语句行语句行行非执行语句可执行语句使计算机运行时产生操作为编译系统提供信息 *,加入的文字说明。为便于阅读,或第一行为 CFORTRAN 语句的标号视需要而定,为可选。其作用是标志一个语句以便其它语句调用,标号的大小与执行顺序无关,同一程序单4、程序单位中各类语句和注释行的顺序 位中的语句标号不能相同。5、FORTRAN源程序必须按一定的格

8、式书写。2022-3-78一个程序单位由若干行所组成,一个FORTRAN程序行共分为4个区:1.第1 5列为标号区。可以写1至5位整数。也可以没有标号。标号区中的空格不起作用。标号应是无符号整数,标号大小顺序没有任何要求。(标号区内不得出现标号以外的内容,但注释行例外)2.第6列为“续行标志区”,如果在一行的第6列上写一个非空格和非零的字符,则该行作为其上一行的续行。3.第772列为语句区。语句可以从第7列以后任何位置开始书写。但一行只能写一个语句。语句区内的空格(除引号内的字符串内空格)在编译时被忽略。4.第7380列,注释区。共八列,一般用前3位为页数,后5位表示行数。返回返回2022-3

9、-79l编辑程序l编译程序l连接程序l运行程序2022-3-710l编辑 用户可以从键盘输入自己的源程序,这时需要使用系统提供的“文本编辑程序”。l操作步骤2022-3-711l整型常量(Integer)l实型常量(Real)l双精度常量(Double) 常量是指其值始终不变的一些量,在Fortran77中允许6种常量类型:l复型常量(Complex)l逻辑常量(Logical)l字符常量(Character) 其中中属于算术常量,又称常数。后两种称为非数值型常量。2022-3-712l整型常量或称整型常数或整数,它是一个正的或负的或零的数:l1.整数不应包括小数点,正号可有可无(如:+10与

10、10等价);l2.整数程序中的常数的各数字之间的空格不起作用(123与 1 2 3等价);l3.整数中不允许加入逗号,如123456不能写成123,456;l4. 由于计算机用有限的单元存储一个数,所以在存储整数的范围是有限的(P55 )。返返回回2022-3-713实型常量也称实数,实数在FORTRAN中有两种表示形式: 1.小数形式 它由一个或多个数字和一个小数点(只有一个)组成,小数点前或小数点后可以不出现数字,但不能小数点前后都不出现数字,如 . 2.指数形式 指数表示形式也称科学计数法,一个指数形式表示的实数有两部分组成:数字部分(含实数符号)和指数部分(Exponent),如:12

11、.3E8,0.91E-30,用0.91*E-30是错误的。 数字部分表示的是该常数的有效数字,指数部分表示小数点的实际位置,它的作用是使数字部分的小数点左右移动。 数字部分可以是不带小数点的整数形式,也可以是带小数点的实数,但指数不能为小数。一个实数可以写成小数或指数形式,用指数形式可以用不同的指数表示。2022-3-714 在计算机内存中,一般用4个字节来存储一个实数,实数在内存中一律以指数形式存放,它由三部分组成:数符;指数包括符号;数字部分。数字部分最前面有一个隐含的小数点(见图3.8) 一个实数的范围也是有限的,这主要是由于存储的实数的指数部分的位长是有限的,如果一个数的绝对值的位长超

12、过规定的范围,就会出现“溢出”,比绝对值大的称为“上溢”,小的称为“下溢” 对不同的计算机系统实数的输出常用标准化形式有两种: 1、在小数点前的数字必须为“0”小数点后的第一个数字必须为一个非零的数字; 2、小数点前数字部分的值大于或等于1。Back2022-3-715、6,、变量是指在程序运行期间其值可以变化的量。系统为程序中的每一个变量开辟一个存储单元,用于存放变量的值,变量的值在每一个瞬时应该是确定的。一、变量名变量名是变量的标识符。一个变量需用一个变量名来标识,因此在同一个程序单位中不能用同一个变量名代表两个不同的变量。命名规则:变量名中最多允许个字符,字符只能是字母与数字,且第一个字

13、符必须为字母。 如 AX1CHINAAVERG861 等都是合法的变量名。注意事项: 变量名中字母的大小写等价; TOTALToTaLtotal 等价 变量名中字符间空格无效; AVERA_V_ER等价2022-3-716 FORTRAN77 无保留字,即可用内部函数名和语句定义符作变量名,如 SIN,MOD分别是 FORTRAN 内部函数名和语句定义符,若有以下语句:SIN=3.5READ (*,*)MODWRITE(*,*)SIN,MOD则 SIN,MOD被视为变量名,而不代表正弦函数和 求余函数操作。但在同一个程序单位中,变量名和函数名或语句定义符不得同名。如以下是错误的:SIN=3.5

14、PRINT=SIN*SIN(2.0)WRITE(*,*) PRINT建议不要使用FORTRAN中已有特定含义的字作变量名。 变量名应做到“见名知意”,使得程序便于阅读和理解。2022-3-717二、变量类型变量是用来存放常量的。不同类型的常量应放在不同的变量中,因此与常量相对应,变量也相应区分为整型变量、实型变量、双精度变量、复型变量、逻辑型变量、字符型变量 6 种。FORTRAN规定,在程序中用到的各种变量首先要说明它们的类型,并有以下 3 种说明类型的方法:1、隐含规则 (IN规则)FORTRAN规定,在程序中的变量名,在无专门的类型说明时,凡是以字母I,J,K,L,M,N六个字母开头的则

15、认为是整型变量,其它字母开头的为实型变量。2、用类型说明语句说明变量类型若想改变 “ IN 规则”对变量类型的约束,可用类型说明语句指定变量类型,与变量类型相对应,类型说明语句有 6 个:2022-3-718INTEGER 语句 (整型变量说明语句)REAL 语句 (实型变量说明语句)DOUBLE PRECISION 语句 (双精度实型变量说明语句)COMPLEX 语句 (复型变量说明语句)LOGICAL 语句 (逻辑型变量说明语句)CHARACTER 语句 (字符型变量说明语句)说明格式:类型说明语句 各变量间用逗号分隔3、用隐含说明语句IMPLICIT说明变量类型可以用IMPLICIT语句

16、将某一字母开头的全部变量指定为所需类型。一个IMPLICIT语句可以指定几种类型。如:2022-3-719IMPLICIT REAL(I,K),INTEGER(T-W)指定以 I,K 开头的所有变量为实型变量, T 到 W(T,U,V,W)开头的所有变量为整型变量。对于变量类型的说明应当注意: 类型说明只在本程序单位中有效; 类型说明语句和IMPLICIT 语句都是非执行语句,其作用只在通知编译系统按规定的类型给变量分配内存单元和确定数据的存放方式。 在确定变量类型的3 种方法中,类型说明语句优先级最高,IMPLICIT 语句次之, IN 规则优先级最低。 类型说明语句和IMPLICIT 语句

17、应出现在本程序单位中所有执行语句之前,当两者同时存在时,其顺序为:先IMPLICIT语句,后类型说明语句。 Back2022-3-720FORTRAN提供了一些系统函数供某些专门运算,如求三角函数的值, sinx,cosx,指数函数ex,对数lnx,logx等,程序设计者只需按规定的格式写出函数名及一个或若干个自变量,即可得到相应的值。如:SIN(1.0)= =0.8414709LOG(3.0)=log3=1.098612 REAL(8)=8.0INT(8.6)=8SIGN(4.5,-0.5)=-4.5 MAX(8,6,7,-11)=8SIGN(-0.5, 4.5)= 0.5 等。2022-3

18、-721几点说明:几点说明: 一个内部函数要求一个或多个自变量一个内部函数要求一个或多个自变量。当自变量个数规定为 2时,自变量的顺序不同,其值不同。MOD(8,3)=2,MOD(3,8)=3;当自变量个数为 2 个以上时,则函数值与自变量的顺序无关。 MAX(3.,6.,-4.)=MAX(-4.,3.,6.)=6. 内部函数的自变量和函数值均有类型内部函数的自变量和函数值均有类型;有的函数值的类型与自变量的类型有关,如ABS,MOD 等;有的函数值的类型与自变量的类型无关,如INT,REAL 等;此外函数名分为“专用名”和“通用名”两种,见附录V。 三角函数中角度的单位是弧度 ( rad)

19、,而不是度。 自变量可以是类型符合要求的常量、变量或表达式自变量可以是类型符合要求的常量、变量或表达式。 例如SQRT(4.0), SQRT(A), SQRT(2.+2.)均合法,而 SQRT(I)为非法,因为 I 为整型变量,SQRT函数的自变量类型为实型量。2022-3-722一、算术运算符及优先级一、算术运算符及优先级5 个算术运算符号:+ 算术加 (或正号)- 算术减 (或负号)* 乘法运算/ 除法运算* 乘方运算3 个优先级及次序:* 乘方运算优先级最高*,/ 乘、除运算次之+,- 加、减运算最低2022-3-723注意事项: 两个运算符不能紧邻,A 乘-B 不能写成 A*-B,而应

20、写为A*(-B)或-B*A 同一优先级遵循“先左后右”的原则,连续乘方按 “先 右后左”的原则,如:23)4(2*3*4=4096 ,而应是)3(242*3*4=262144二、算术表达式的含义及表示方法二、算术表达式的含义及表示方法表达式是一个或多个运算的组合。 FORTRAN 表达式是由FORTRAN 运算符和括号将各运算元素(常量、变量、函数等)连接起来的一个有值的式子。 FORTRAN中允许使用 4 种表达式:算术表达式、关系表达式、逻辑表达式和字符表达式。不同的表达式有不同的运算符,其值的类型也不同。2022-3-724算术表达式是由一个或多个算术运算组合而成。如:数学表达式edcb

21、a+31的 FORTARN表达式可写为:(1+3*A)/(B+C/(D+E) , 算术表达式求值的优先次序为 :括号函数*,/+,-三、表达式运算中的类型问题三、表达式运算中的类型问题FORTRAN 允许不同类型的算术量 (整型、实型、双精度型、复型 )之间进行算术运算,并遵循以下原则: 相同类型的算术量之间运算的结果仍保持原类型;2*3 的值为整型数6;2.5*2.0的值为实型数5.0;2*3 的值为整型数8;5/2 的值为整型数2;1/2 的值为整型数0。 若参与运算的两个算术量类型不同时,则编译系统会自动将它们转换成同一类型,然后进行运算。转换的规律是:将低级类型转换成高级类型。整型 (

22、低)实型(高) 类型的转换是从左而右进行的,在遇到不同类型的算术量时才进行转换。如 1/4*20.0=0.0先计算1/4 得整型数0,遇实数20.0,将0 转换为0.0 与20.0相乘,结果为0.0,若将表达式写成1*20.0/4则得表达式的值为5.0。2022-3-725四、运算的误差问题四、运算的误差问题一个整数(计算机规定的范围内)用二进制能够准确无误地表示出来,整型量的运算是准确的。而某些实数由于受存储方式的影响,有效位数受到限制,只能得到近似表示。因此实数的运算应遵循以下规则: 尽量使每次运算结果都在有效位数范围之内,否则就会出现误差,在运算中应尽量避免两个相差很大的数进行加、减运算

23、,以防止“大数吃掉小数”。如: 0.001+1246825.0-1246820.0 的值是 5.0,而不是 5.001;若将运算次序调换为 1246825.0-1246820.0+0.001,则能够得到正确值 5.001。 实数的“相等”和“不等”的比较应慎重。如:(1./3.)*3.1.0,这是因为1./3.的值为0.3333333,在乘以 3.得到的值为 0.9999999。实数 A 与 B 的“相等”和“不等”的比较最好改为判断“e- BA” (e为一个很小的数,如 10-6),若不等式成立,则认为 A=B,否则二者不等。总之,在实数运算中应充分考虑到可能出现的误差,并设法避免。 BAC

24、K2022-3-726一、赋值语句的性质和作用赋值语句的作用是将一个确定的值赋给一个变量。一般格式为:V=eV 代表一个变量 (Varible 的第一个字母),e 代表一个表达式(Expession 的第一个字母),“=”应理解为赋值号,而不是等号,如N=N+1 在数学上是不成立的,其作用是将N 的原值加 1 再送回到变量N 中,若N 的原值3,执行上述赋值语句后N 的值变为4。几点说明: FORTRAN77 的赋值语句有三类:算术赋值语句、逻辑赋值语句、字符赋值语句。算术赋值语句的作用是将一个算术量 (算术表达式的值)赋予一个算术型 (数值型)变量。 算术赋值语句兼有计算和赋值双重功能。FO

25、RTRAN 中的求值计算主要通过赋值语句来实现。2022-3-727 赋值号左边只能是变量名 (或数组元素名),而不能是表达式,赋值号右边可以是常量、变量或表达式。二、执行赋值语句时的类型转换问题算术赋值语句中被赋值变量 (V)和表达式(e)的类型可以相同,也可以不同。 若 V 与 e 的类型相同,则直接赋值。如 I=3 ,A=5.7*T 若 V 与 e 的类型不同,则遵循“先求后化再赋”的原则。即: 求表达式的值 转化为被赋值变量的类型执行赋值。如: I=3.5*2.1,表达式的值为7.35,由于 I 是整型变量,系统先将 7.35 转化为整数 7,再赋给变量 I,I 的值为 7。Back2

26、022-3-728 在输入*语句中的第一个/*对数据进行输入 输出(I/O)时,需要告知计算机系统以下信息:(输出)哪些数据;从哪个设备输入或输出到哪个设备;以何种格式进行输入输出。FORTRAN的输入输出格式有以下三类:按用户指定的格式输入和输出;按系统隐含的标准格式输入和输出;无格式输入和输出。即以二进制形式进行输入和输出。一、表控输出语句表控输出即按系统隐含的标准输出格式。机型不同,格式可能不同。表控输出语句的格式为:WRITE( , )输出项,输出项,(输出表项)WRITE表示在系统隐含指定的设备上输出(屏幕), 第二个“*”号指的是“用表空格式输出”2022-3-729 二、表控输入

27、语句表控输入语句的格式为:READ(*,*)输入项,输入项, (输入表列)在READ语句中的第一个“*”表示“系统隐含指定的输入设备”第二个“*”表示表控输入表控输入的几点说明: 输入数据的个数、类型应与READ 语句中变量的个数、类型一致。输入数据不够,系统等待继续输入;输入多余数据,多余部分无效;输入数据的类型不一致,一般按出错处理,但有的系统可为实型变量输入整型数,系统自动转换。2022-3-730 每一个 READ 语句总是从新的输入行开始读数。例如,下列是两个连续的输入语句:READ(*,*) I ,JREAD(*,*) X ,Y如果在键盘上输入:4,18,3.5,-7.6则只将前两个整型数输入给第一个 READ 语句的整型变量 I 和 J,而后两个实型数为多余数据,不起作用。因为第二个 READ 语句要求从一个新行开始输入数据。输入数据的正确格式为:4,183.5,-7.6

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论