Fortran教程第六章格式输入输出.ppt

上传人:tia****nde 文档编号:11496188 上传时间:2020-04-25 格式:PPT 页数:50 大小:319.34KB
返回 下载 相关 举报
Fortran教程第六章格式输入输出.ppt_第1页
第1页 / 共50页
Fortran教程第六章格式输入输出.ppt_第2页
第2页 / 共50页
Fortran教程第六章格式输入输出.ppt_第3页
第3页 / 共50页
点击查看更多>>
资源描述
第六章格式输入输出,6.1输入输出概述,6.2格式输入输出语句,6.3格式说明语句,6.4常用的编辑描述符,6.5输入输出项与编辑符的相互作用,6.1输入输出概述,输入输出是指在计算机内存与外部设备之间传送数据的过程。从外部设备将数据传送到计算机内存称为输入。将计算机内部的数据传送到外部设备称为输出。要顺利地传送数据,一般应在输入输出语句中给计算机提供三方面的信息:(1)通过什么设备来进行输入输出。(2)采用什么样的格式来进行输入输出。(3)输入输出的具体内容。,每一种计算机系统都隐含指定一种输入设备和输出设备。在微机中,隐含指定键盘为输入设备,显示器为输出设备。在输入输出数据较多时,也可以使用磁盘作为输入输出设备,即从已经建立的磁盘文件中去读取数据,将处理结果写入到磁盘文件中去。关于文件操作将在第11章介绍。输入输出的格式由格式编辑符来指定,不同的数据类型需要不同的格式编辑符,不同的格式编辑符确定不同的输入输出格式。输入输出的具体内容即输入输出项,输入项只能为变量,输出项可以为常量、变量、函数和表达式,也可以是隐含的DO循环。下面先看一个格式输入输出的例子。,程序输出为:135每循环一次输出循环变量J的值,每个数据占5格,INTEGERJDOJ=1,5,2WRITE(*,10)JENDDO10FORMAT(1X,3I5)END,再看下面的例子。,INTEGERJWRITE(*,10)(J,J=1,5,2)10FORMAT(1X,3I5)END,程序输出为:135程序中,WRITE语句的输出项“(J,J=1,5,2)”是一个隐含的DO循环,当作一个整体输出,每个数据占5格。,6.2格式输入输出语句,6.2.1格式输出,格式输出语句有两个:PRINT语句和WRITE语句。1PRINT语句PRINT语句的一般格式是:PRINTf,输出项其中f是格式说明符,指明了输出所用的格式。它有以下三种形式:,(1)格式说明符是一个“*”,表示输出使用表控格式。(2)格式说明符是一个字符常量。例如PRINT(1X,2F7.3),X,Y(3)格式说明符是格式语句(FORMAT)的语句标号。这是最常用的格式输出形式。例如PRINT100,A,B,C100FORMAT(1X,F9.4,2F7.3)输出项指定了输出的具体内容。输出项可以是变量、常量、函数以及表达式。此外,输出项还可以是隐含DO循环。,2.WRITE语句WRITE语句的一般格式是:WRITE(u,f)输出项其中u是设备号,用于指明具体使用的输入输出设备。u可以是一个无符号整常量,也可以是一个整型变量或整型表达式,还可以是星号*。*表示由计算机系统预先约定的外部设备,一般为显示器。f是格式说明符,指明了输入输出所用的格式。它也有三种形式,用法与PRINT语句相同。输出项也可以是常量、变量、函数以及表达式,还可以是隐含的DO循环。,6.2.2格式输入,格式输入语句是指READ语句,它有两种形式:READf,输入项READ(u,f)输入项其中f指明了输入所用的格式。它有以下三种形式:,(1)格式说明符是一个“*”,表示输入使用表控格式。(2)格式说明符是一个字符常量。例如READ(*,(I3,2I4)I,J,K(3)格式说明符是格式语句(FORMAT)的语句标号。这是最常用的格式输入形式。u是设备号,用于指明具体使用的输入设备。u可以是一个无符号整常量,也可以是一个整型变量或整型表达式,还可以是星号“*”。“*”表示由计算机系统预先约定的外部设备,一般为键盘。输入项指定了输入的具体内容。输入项目可以变量,不允许是常量或表达式。此外,输入项目也可以是隐含DO循环,6.3格式说明语句,FORTRAN用专门的格式说明来描述输入输出的格式。尽管格式说明可以直接放在输入输出语句中,但为了使程序的可读性更强,最好使用格式说明语句来进行格式说明。格式说明语句的一般格式是:nFORMAT(格式说明)其中n是语句标号,FORMAT语句一定带有语句标号,以便同格式输入输出语句配合使用。格式说明由若干个编辑描述符组成,编辑描述符之间用逗号分隔。例如10FORMAT(1X,I4,F5.1),格式说明语句是非执行语句,它只是给输入输出语句提供数据的格式描述。在程序运行过程中,由输入输出语句根据格式说明语句提供的数据格式描述,实现数据的格式控制。单独的格式说明语句在程序中不器任何作用。例如10FORMAT(1X,I4,F5.1)WRITE(*,10)2345,67.8格式说明包含3种编辑描述符X,I和F。分别用I4和F5.1来控制2345和67.8的输出格式,1X也有特定的用途。格式说明语句可以放在程序单位语句(主程序语句PROGRAM,子程序语句FUNCTION或SUBROUTINE)之后,END语句之前的任何位置。,6.4常用的编辑描述符,编辑描述符分成两大类:可重复编辑描述符非重复编辑描述符。,6.4.1可重复编辑描述符,可重复编辑描述符是用来编辑输入输出项的输入输出格式的,所以它们总是与输入输出项相对应。不同类型的输入输出项使用不同的编辑描述符。FORTRAN提供的内部数据类型有整型、实型、复型、字符型和逻辑型。相应地,编辑描述符也分五类介绍。,根据数据采用的进制不同,整型数据编辑符分为四种,I编辑符、B编辑符、O编辑符和Z编辑符。I编辑符用来描述十进制的整型数据,B编辑符用来描述二进制的整型数据,O编辑符用来描述八进制的整型数据,Z编辑符用来描述十六进制的整型数据。下面逐一介绍。,1.整型数据编辑描述符,(1)I编辑符。十进制整数的输入输出。一般格式是:rIw其中r是重复系数,为1时可以省略。w表示字段宽度,即与该编辑描述符对应的输入输出项所占用的字符个数。I型输入的使用规则:在输入记录中从左往右取w个字符存入对应的输入项。注意取得的w个字符必须是整数,正负号也占一个字符位置,空格字符占一个字符位置但不起作用。READ(*,10)I,J,K10FORMAT(I4,I5,I6)语句执行时,若从键盘输入714-346-12345(代表空格),则I,J,K的值分别为:714、-346和-123。,I型输出的使用规则:在输出记录中,对应的输出项的值占w个字符宽度。当w大于输出项实际的数字位数时,在输出字段中插入前导空格补足w个字符。当w小于输出项实际的数字位数时,将输出w个“*”,表示字段宽度定义小了。WRITE(*,10)K,L10FORMAT(I4,I4)当K=12,L=-7567时,输出结果为:12*,(2)B,O,Z编辑符。这是FORTRAN90新增的编辑符。分别采用二进制、八进制和十六进制形式描述整型量的输入输出。其基本用法与I编辑符相同。例如READ(*,10)I,JWRITE(*,20)I,J,I,J10FORMAT(B3,B4)20FORMAT(I5,I4,O4,Z5)END语句执行时,若从键盘输入1011101,则I,J的值分别为二进制数101和二进制数1101。输出结果为:5135D,有四种编辑符可以对实型数据进行操作,它们是F编辑符、E编辑符、EN编辑符、ES编辑符和G编辑符。,2.实型数据编辑描述符,(1)F编辑符。用于实型量的输入输出(按小数形式)。一般格式是:rFw.d其中r为重复系数,为1时可以省略。w为字段宽度,d为输入输出项小数部分所占的位数。F型输入规则:按编辑描述符中w指定的字段宽度从输入记录中截取数据,若w个字符中不含小数点,则系统自动按d决定小数点的位置,若w个字符中含有小数点,则按“自带小数点优先”的原则,不再按Fw.d中的d去加工该数据,此时d不起作用。例如READ(*,10)A,B10FORMAT(F7.2,F6.1)语句执行时,如从键盘输入123456726.89,则A、B的值分别为12345.6和726.89。,当输入的是指数形式时,如果E前面的数字部分含有小数点,则d不起作用。如果数字部分不含有小数点,则自动按d决定数字部分小数点的位置。例如READ(*,10)A,B10FORMAT(F8.0,F7.2)执行语句时,如从键盘输入72.48E-32E2,则A、B的值分别为0.07248、2.0。,F型输出规则:把输出项的值转换成字段宽度为w的小数形式输出,其中小数部分占d位,小数点占一位。如果输出项小数部分实际的位数小于d,则输出时小数部分低位以零补足d位,否则保留d位,从d1位开始四舍五入。如果输出项实际长度小于w,则在左边用空格补足w个,否则输出w个“*”,以示w太小。例如WRITE(*,10)A,B,C10FORMAT(1X,3F8.3)当A、B、C的值分别是78.9、-0.00072、12345.678时,输出为:78.900-.001*,(2)E编辑符。用于输入输出指数形式的实数。它的一般格式是:rEw.d其中r是重复系数,w是字段宽度,d为数字部分小数位数。E型输入规则:与F编辑符完全相同。E型输出规则:采取规格化的指数形式,即数字部分小数前面为0,小数点后第一位为非零数字,指数部分占4列(E、指数符号位及两位指数)。如果输出项数字部分的小数位数多于d位,保留d位,从第d1位起四舍五入,小于d位,在其右边补0。如果输出项实际的位数小于w,左补空格,否则输出w个“*”。,例如WRITE(*,10)A,B10FORMAT(1X,E12.4,E13.2)当A、B的值为128.433和-0.0008时,输出为:.1284E+03-.80E-03,(3)EN编辑符。EN编辑符与E编辑符基本用法相同。区别在于EN编辑符输出数据的非指数部分的绝对值强制在1到1000的范围内,且指数可以被3整除。例如WRITE(*,10)128.433,-0.000810FORMAT(1X,EN12.4,EN13.2)输出为:128.4330E+00-800.00E-06,(4)ES编辑符。ES编辑符与E编辑符基本用法相同。区别在于ES编辑符输出数据的非指数部分的绝对值强制在1到10的范围内。例如WRITE(*,10)128.433,-0.000810FORMAT(1X,ES12.4,ES13.2)输出为:1.2843E+02-8.00E-04,(5)G编辑符。也用于实型量的输入输出。一般格式为:rGw.dG编辑符用于输入时,与F、E编辑符的功能完全相同。用于输出时,要根据输出项的大小决定用F格式输出还是用E格式输出。例如WRITE(*,10)123456.789,0.09876510FORMAT(1X,G13.7,G11.4)输出为:123456.8.9877E-01,3.复型数据编辑描述符复型数据没有专门的编辑符。对复型数据的输入输出,可以按实部和虚部分别输入输出。例如COMPLEXCMREAD(*,10)CMWRITE(*,20)CM10FORMAT(2F5.2)20FORMAT(1X,2F7.2)语句执行时,从键盘输入1234567890,则输出为:123.45678.90,4.逻辑型数据编辑描述符逻辑型数据的输入输出用L编辑符。其一般格式是:rLw逻辑值只有两个:真(.TRUE.)和假(.FALSE.)。在输入时,输入的数据可以是.TRUE.或.FALSE.,也可以是头一个字母为T或F的任何字符串(T或F前面可以接“.”或空格,后面可以是任意字符),例如LOGICALL1,L2READ(*,10)L1,L210FORMAT(L6,L3)语句执行时,从键盘输入.TRUE.FT,则L1、L2的值分别是.TRUE.、.FALSE.。在输出时,对逻辑真(.TRUE.),输出一个字母T,对逻辑假(.FALSE.),输出字母F,且在左边补w-1个空格。例如WRITE(*,10).FALSE.,A.LT.B.OR.1.GT.210FORMAT(1X,L3,L4)输出为:FT,5.字符型数据编辑描述符字符型数据的输入输出用A编辑符。其一般格式是:rAw其中字段宽度w可以省略,省略时,输入输出项的字段宽度隐含为对应的字符型输入输出项的长度l。,A编辑符的输入规则:从输入记录中取w个字符,但这w个字符能否全部存入对应的输入项,还取决于输入项的长度l。当w等于l时,w个字符全部送给输入项。当wl时,从w个字符中取出最右边l个字符送给对应的输入项。这一点与字符赋值语句的赋值规则刚好相反。当wl时,输出项所有的字符全部输出,并且靠右对齐,左补w-l个空格。当w6.EQV.FALSE.WRITE(*,10)A,B10FORMAT(1X,F10.2,F10.2/L5)END,6请写出下列程序的执行结果。(1)WRITE(*,10)(3,4,I=1,2)10FORMAT(1X,3I3)END(2)READ(*,10)K,A,AWRITE(*,20)K,A10FORMAT(I5,F6.1,F7.2)20FORMAT(1X,I7,2F9.2)END输入为:123456789.0123456789。,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!