Fortran教程格式输入输出PPT学习教案_第1页
Fortran教程格式输入输出PPT学习教案_第2页
Fortran教程格式输入输出PPT学习教案_第3页
Fortran教程格式输入输出PPT学习教案_第4页
Fortran教程格式输入输出PPT学习教案_第5页
已阅读5页,还剩45页未读 继续免费阅读

下载本文档

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

文档简介

1、会计学1 Fortran教程格式输入输出教程格式输入输出 6.1 输入输出概述 输入输出是指在计算机内存与外部设备之间传送数据的过程。从 外部设备将数据传送到计算机内存称为输入。将计算机内部的数据传 送到外部设备称为输出。要顺利地传送数据,一般应在输入输出语句 中给计算机提供三方面的信息: (1) 通过什么设备来进行输入输出。 (2) 采用什么样的格式来进行输入输出。 (3) 输入输出的具体内容。 第1页/共50页 每一种计算机系统都隐含指定一种输入设备和输出设备。在 微机中,隐含指定键盘为输入设备,显示器为输出设备。在输入输 出数据较多时,也可以使用磁盘作为输入输出设备,即从已经建立 的磁盘

2、文件中去读取数据,将处理结果写入到磁盘文件中去。关于 文件操作将在第11章介绍。 输入输出的格式由格式编辑符来指定,不同的数据类型需要 不同的格式编辑符,不同的格式编辑符确定不同的输入输出格式。 输入输出的具体内容即输入输出项,输入项只能为变量,输 出项可以为常量、变量、函数和表达式,也可以是隐含的DO循环 。下面先看一个格式输入输出的例子。 第2页/共50页 程序输出为: 1 3 5 每循环一次输出循环变量J的值,每个数据占5格 INTEGER J DO J=1,5,2 WRITE(*,10) J END DO 10 FORMAT(1X,3I5) END 第3页/共50页 再看下面的例子。

3、INTEGER J WRITE(*,10) (J,J=1,5,2) 10 FORMAT(1X,3I5) END 程序输出为: 1 3 5 程序中,WRITE语句的输出项“(J,J=1,5,2)”是一个隐含的 DO循环,当作一个整体输出,每个数据占5格。 第4页/共50页 6.2 格式输入输出语句 6.2.1 格式输出 格式输出语句有两个:PRINT语句和WRITE语句。 1PRINT语句 PRINT语句的一般格式是: PRINT f, 输出项 其中f是格式说明符,指明了输出所用的格式。它有以下三种形式: 第5页/共50页 (1)格式说明符是一个“*”,表示输出使用表控格式。 (2)格式说明符是

4、一个字符常量。例如 PRINT (1X,2F7.3),X,Y (3)格式说明符是格式语句(FORMAT)的语句标号。这是最常用的格式输出形式。例如 PRINT 100,A,B,C 100 FORMAT(1X,F9.4,2F7.3) 输出项指定了输出的具体内容。输出项可以是变量、常量、函数以及表达式。此外,输出项还可以是隐含DO循环。 第6页/共50页 2. WRITE语句 WRITE语句的一般格式是: WRITE(u, f) 输出项 其中u是设备号,用于指明具体使用的输入输出设备。u可以是一个无符号整常量,也可以是一个整型变量或整型表达式,还可以是星号*。*表示由计算机系统预先约定的外部设备,

5、一般为显示器。 f 是格式说明符,指明了输入输出所用的格式。它也有三种形式,用法与PRINT语句相同。 输出项也可以是常量、变量、函数以及表达式,还可以是隐含的DO循环。 第7页/共50页 6.2.2格式输入 格式输入语句是指READ语句,它有两种形式: READ f,输入项 READ (u,f) 输入项 其中f指明了输入所用的格式。它有以下三种形式: 第8页/共50页 (1)格式说明符是一个“*”,表示输入使用表控格式。 (2)格式说明符是一个字符常量。例如 READ(*,(I3,2I4) I,J,K (3)格式说明符是格式语句(FORMAT)的语句标号。这是最常用的格式输入形式。 u是设备

6、号,用于指明具体使用的输入设备。u可以是一个无符号整常量,也可以是一个整型变量或整型表达式,还可以是星号“*”。 “*”表示由计算机系统预先约定的外部设备,一般为键盘。 输入项指定了输入的具体内容。输入项目可以变量,不允许是常量或表达式。此外,输入项目也可以是隐含DO循环 第9页/共50页 6.3 格式说明语句 FORTRAN用专门的格式说明来描述输入输出的格式。尽管格式说明可以直接放在输入输出语句中,但为了使程序的可读性更强,最好使用格式说明语句来进行格式说明。格式说明语句的一般格式是: n FORMAT(格式说明) 其中n是语句标号,FORMAT语句一定带有语句标号,以便同格式输入输出语句

7、配合使用。格式说明由若干个编辑描述符组成,编辑描述符之间用逗号分隔。例如 10 FORMAT(1X,I4,F5.1) 第10页/共50页 格式说明语句是非执行语句,它只是给输入输出语句提供数据的格式描述。在程序运行过程中,由输入输出语句根据格式说明语句提供的数据格式描述,实现数据的格式控制。单独的格式说明语句在程序中不器任何作用。例如 10 FORMAT(1X,I4,F5.1) WRITE(*,10) 2345,67.8 格式说明包含3种编辑描述符X,I和F。分别用I4和F5.1来控制2345和67.8的输出格式,1X也有特定的用途。 格式说明语句可以放在程序单位语句(主程序语句PROGRAM

8、,子程序语句FUNCTION或SUBROUTINE)之后,END语句之前的任何位置。 第11页/共50页 6.4常用的编辑描述符 编辑描述符分成两大类:可重复编辑描述符 非重复编辑描述符。 6.4.1 可重复编辑描述符 可重复编辑描述符是用来编辑输入输出项的输入输出格式的,所以它们总是与输入输出项相对应。不同类型的输入输出项使用不同的编辑描述符。FORTRAN提供的内部数据类型有整型、实型、复型、字符型和逻辑型。相应地,编辑描述符也分五类介绍。 第12页/共50页 根据数据采用的进制不同,整型数据编辑符分为四种,I编辑符、B编辑符、O编辑符和Z编辑符。I编辑符用来描述十进制的整型数据,B编辑符

9、用来描述二进制的整型数据,O编辑符用来描述八进制的整型数据,Z编辑符用来描述十六进制的整型数据。下面逐一介绍。 1. 整型数据编辑描述符 第13页/共50页 (1) I编辑符。十进制整数的输入输出。 一般格式是: r I w 其中r是重复系数,为1时可以省略。w表示字段宽度,即与该编辑描述符对应的输入输出项所占用的字符个数。 I型输入的使用规则:在输入记录中从左往右取w个字符存入对应的输入项。注意取得的w个字符必须是整数,正负号也占一个字符位置,空格字符占一个字符位置但不起作用。 READ (*,10)I,J,K 10 FORMAT(I4,I5,I6) 语句执行时,若从键盘输入714-346-

10、12345(代表空格),则I,J,K的值分别为:714、-346和-123。 第14页/共50页 I型输出的使用规则:在输出记录中,对应的输出项的值占w个字符宽度。当w大于输出项实际的数字位数时,在输出字段中插入前导空格补足w个字符。当w小于输出项实际的数字位数时,将输出w个“*”,表示字段宽度定义小了。 WRITE(*,10)K,L 10 FORMAT(I4,I4) 当K=12,L=-7567时,输出结果为: 12* 第15页/共50页 (2)B,O,Z 编辑符。这是FORTRAN 90新增的编辑符。分别采用二进制、八进制和十六进制形式描述整型量的输入输出。其基本用法与I 编辑符相同。例如

11、READ(*,10)I,J WRITE(*,20) I,J,I,J 10 FORMAT(B3,B4) 20 FORMAT(I5,I4,O4,Z5) END 语句执行时,若从键盘输入1011101,则I,J的值分别为二进制数101和二进制数1101。输出结果为: 5135D 第16页/共50页 有四种编辑符可以对实型数据进行操作,它们是F编辑符、E编辑符、EN编辑符、ES编辑符和G编辑符。 2. 实型数据编辑描述符 第17页/共50页 (1) F编辑符。用于实型量的输入输出(按小数形式)。 一般格式是: rFw.d 其中r为重复系数,为1时可以省略。w为字段宽度,d为输入输出项小数部分所占的位数

12、。 F型输入规则:按编辑描述符中w指定的字段宽度从输入记录中截取数据,若w个字符中不含小数点,则系统自动按d决定小数点的位置,若w个字符中含有小数点,则按“自带小数点优先”的原则,不再按Fw.d中的d去加工该数据,此时d不起作用。例如 READ(*,10)A,B 10 FORMAT(F7.2,F6.1) 语句执行时,如从键盘输入123456726.89,则A、B的值分别为12345.6和726.89。 第18页/共50页 当输入的是指数形式时,如果E前面的数字部分含有小数点,则d不起作用。如果数字部分不含有小数点,则自动按d决定数字部分小数点的位置。 例如 READ(*,10)A,B 10 F

13、ORMAT(F8.0,F7.2) 执行语句时,如从键盘输入72.48E-32E2,则A、B的值分别为0.07248、2.0。 第19页/共50页 F型输出规则:把输出项的值转换成字段宽度为w的小数形式输出,其中小数部分占d位,小数点占一位。如果输出项小数部分实际的位数小于d,则输出时小数部分低位以零补足d位,否则保留d位,从d1位开始四舍五入。如果输出项实际长度小于w,则在左边用空格补足w个,否则输出w个“*”,以示w太小。例如 WRITE(*,10)A,B,C 10 FORMAT (1X,3F8.3) 当A、B、C的值分别是78.9、-0.00072、12345.678时,输出为: 78.9

14、00-.001* 第20页/共50页 (2) E编辑符。用于输入输出指数形式的实数。它的一般格式是: rEw.d 其中r是重复系数,w是字段宽度,d为数字部分小数位数。 E型输入规则:与F编辑符完全相同。 E型输出规则:采取规格化的指数形式,即数字部分小数前面为0,小数点后第一位为非零数字,指数部分占4列(E、指数符号位及两位指数)。如果输出项数字部分的小数位数多于d位,保留d位,从第d1位起四舍五入,小于d位,在其右边补0。如果输出项实际的位数小于w,左补空格,否则输出w个“*”。 第21页/共50页 例如 WRITE(*,10)A,B 10 FORMAT(1X,E12.4,E13.2) 当

15、A、B的值为128.433和-0.0008时,输出为: .1284E+03-.80E-03 第22页/共50页 (3) EN编辑符。EN编辑符与E编辑符基本用法相同。区别在于EN编辑符输出数据的非指数部分的绝对值强制在1到1000的范围内,且指数可以被3整除。例如 WRITE(*,10)128.433,-0.0008 10 FORMAT(1X,EN12.4,EN13.2) 输出为: 128.4330E+00-800.00E-06 第23页/共50页 (4) ES编辑符。ES编辑符与E编辑符基本用法相同。区别在于ES编辑符输出数据的非指数部分的绝对值强制在1到10的范围内。例如 WRITE(*,

16、10)128.433,-0.0008 10 FORMAT(1X,ES12.4,ES13.2) 输出为: 1.2843E+02-8.00E-04 第24页/共50页 (5) G编辑符。也用于实型量的输入输出。一般格式为: rGw.d G编辑符用于输入时,与F、E编辑符的功能完全相同。用于输出时,要根据输出项的大小决定用F格式输出还是用E格式输出。例如 WRITE(*,10) 123456.789, 0.098765 10 FORMAT(1X,G13.7,G11.4) 输出为: 123456.8.9877E-01 第25页/共50页 3. 复型数据编辑描述符 复型数据没有专门的编辑符。对复型数据的

17、输入输出,可以按实部和虚部分别输入输出。例如 COMPLEX CM READ(*,10)CM WRITE(*,20)CM 10 FORMAT(2F5.2) 20 FORMAT(1X,2F7.2) 语句执行时,从键盘输入1234567890,则输出为: 123.45678.90 第26页/共50页 4. 逻辑型数据编辑描述符 逻辑型数据的输入输出用L编辑符。其一般格式是: rLw 逻辑值只有两个:真(.TRUE.)和假(.FALSE.)。在输入时,输入的数据可以是.TRUE.或.FALSE.,也可以是头一个字母为T或F的任何字符串(T或F前面可以接“.”或空格,后面可以是任意字符) 第27页/共

18、50页 例如 LOGICAL L1,L2 READ(*,10)L1,L2 10 FORMAT(L6,L3) 语句执行时,从键盘输入.TRUE.FT,则L1、L2的值分别是.TRUE.、.FALSE.。 在输出时,对逻辑真(.TRUE.),输出一个字母T,对逻辑假(.FALSE.),输出字母F,且在左边补w-1个空格。例如 WRITE(*,10).FALSE.,A.LT.B.OR.1.GT.2 10 FORMAT(1X,L3,L4) 输出为: FT 第28页/共50页 5. 字符型数据编辑描述符 字符型数据的输入输出用A编辑符。其一般格式是: rAw 其中字段宽度w可以省略,省略时,输入输出项的字段宽度隐含为对应的字符型输入输出项的长度l。 第29页/共50页 A编辑符的输入规则:从输入记录中取w个字符,但这w个字符能否全部存入对应的输入项,还取决于输入项的长度l。当w等于l时,w个字符全部送给输入项。当wl时,从w个字符中取出最右边l个字符送给对应的输入项。这一点与字符赋值语句的赋值规则刚好相反。当wl

温馨提示

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

评论

0/150

提交评论