科学计算的语言-fortran95第17章数据文件的编辑

上传人:j****9 文档编号:47060075 上传时间:2018-06-29 格式:PDF 页数:10 大小:231.94KB
返回 下载 相关 举报
科学计算的语言-fortran95第17章数据文件的编辑_第1页
第1页 / 共10页
科学计算的语言-fortran95第17章数据文件的编辑_第2页
第2页 / 共10页
科学计算的语言-fortran95第17章数据文件的编辑_第3页
第3页 / 共10页
科学计算的语言-fortran95第17章数据文件的编辑_第4页
第4页 / 共10页
科学计算的语言-fortran95第17章数据文件的编辑_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《科学计算的语言-fortran95第17章数据文件的编辑》由会员分享,可在线阅读,更多相关《科学计算的语言-fortran95第17章数据文件的编辑(10页珍藏版)》请在金锄头文库上搜索。

1、第17章 数据文件的编辑 对于真实世界的任何数据,我们总是要赋予一定的表示形式,以适应人的阅读理解习惯,也就是对于任何数据文件的都存在一个约定的格式,因此当我们使用计算机来输出数据文件时,当然希望直接输出的就是我们所习惯阅读的带有相应格式的数据文件;同样,在我们向计算机输入数据文件时,也希望仍然按照我们习惯的格式约定直接输入到计算机,因此FORTRAN必须提供能够描述数据文件格式的适当的词汇与语句,从而方便人机对话。实际上只要不是特别小的FORTRAN程序,无论是为了便于程序作者,还是便于其他用户的使用,都必须包含大量的数据输入输出的格式编辑方面的内容,因此掌握好语言的输入输出编辑功能,是编写

2、一个好的FORTRAN程序的非常重要的方面。 对输入输出进行格式控制的基本任务,就是要在数据的机器内部表示与数据的格式化纪录或文件当中的表示之间,进行适当的转化。当然从编程语言的角度来看,我们并不需要直接地参与这种具体的转化过程,因为数据的机器内部表示是非常依赖于具体的系统的,作为一种通用编程语言,FORTRAN并不需要具有描述具体系统的能力,FORTRAN所需要做的,只需要能够提供描述格式本身的语言就行了,系统如何根据这种描述而进行数据转换,则不需要程序编写者关心。 FORTRAN 95对于格式的描述主要就是依靠格式说明符来完成的,此外还可以运用名称列表集合名称来说明名称列表格式。下面我们分

3、别予以详细讨论。 17.1 显式格式说明显式格式说明 显式的格式说明可以使用如下两种方式: 运用FORMAT语句; 运用字符表达式。 下面分节讨论这两种显式格式说明方式。 17.1.1 FORMAT语句 FORMAT语句的一般语法形式(R1001)为: FORMAT format-specification 其中格式说明(format-specification)的一般语法形式(R1002)为: ( format-item-list ) 其中的格式项列表(format-item-list)在17.2节专门加以讨论。 FORMAT语句的一般规则如下: FORMAT语句必须具有标签。 在格式项列表

4、当中用于分隔不同格式项的逗号可以在如下几种情形下省略: P编辑描述符与后面紧接的F, E, EN, ES, D, 或G编辑描述符之间; 没有给出可选的重复说明时,在斜线编辑描述符之前; 斜线编辑描述符之后; 冒号编辑描述符的前后。 空格字符可以放置在格式说明的初始的左括号之前。 除了在字符串编辑描述符内部之外,空格可以添加在格式说明的任何位置,不影响对于格式说明的页码,1/10第17章 数据文件的编辑2006-1-5http:/krsna.lamost.org/popular/fortran/17.htm解释。 【例17-1】 5 FORMAT (1PE12.4, I10) 9 FORMAT

5、(I12, /, Dates: , 2 (2I3, I5) 这是FORMAT语句的两个简单例子。 17.1.2 字符表达式作为格式说明 显式的格式说明除了使用FORMAT语句之外,还可以使用字符表达式,即在格式化输入输出语句里面,字符表达式的字符串取值,作为格式说明符能够有效地说明格式。注意整个格式说明必须是包含在一对括号当中的。 当格式说明所在的输入输出语句开始执行的时候,格式说明的括号里面的全部字符都必须是已经获得了定义的,而在该语句的整个执行过程当中,其定义都不能被重定义或去定义。而最右边括号后面的字符则没有任何说明格式的意义。 如果格式说明符引用了一个字符数组,那么该数组的元素按照元素

6、序列联结起来作为一个整体看待。 注意:如果在输入输出语句里面使用了字符常量来作为格式说明符,那么必须保证该字符常量是有效 的格式说明。参见下面的例子。 【例17-2】 考虑下面的文字: 2 ISNT 3 这段文字在输出语句与格式说明当中可以使用如下多种形式: WRITE (6, 100) 2, 3 100 FORMAT (1X, I1, 1X, ISNT, 1X, I1) WRITE (6, (1X, I1, 1X, ISNT, 1X, I1) 2, 3 WRITE (6, (A) 2 ISNT 3 注意其中多重的引号与撇号。 17.2 格式项列表的形式格式项列表的形式 所谓格式项(forma

7、t-item)的一般语法形式(R1003)是: r data-edit-desc control-edit-desc char-string-edit-desc r ( format-item-list ) 其中的r(R1004)为整型字面常量,表示说明重复数。它必须是正的,并且不能带有种别参数。 其中所谓编辑描述符分为如下三种: 数据编辑描述符; 控制编辑描述符; 字符串编辑描述符。 下面分别给出它们的语法形式。 1. 数据编辑描述符的语法形式(R1005) 为以下几种形式之一: 页码,2/10第17章 数据文件的编辑2006-1-5http:/krsna.lamost.org/popula

8、r/fortran/17.htmI w . m B w . m O w . m Z w . m F w . d E w . d E e EN w . d E e ES w . d E e G w . d E e L w A w D w . d 其中的w(R1006),m(R1007),d(R1008),e(R1009)都是整型字面常量。而其中的I, B, O, Z, F, E, EN, ES, G, L, A, 和D则表示不同的编辑方式。详细说明参见17.5节。 数据编辑描述符的一般规则如下: e必须是正的。 w在I, B, O, Z, 以及F这些编辑描述符里面必须是0或正数。在其他编辑描述符

9、里面则必须是正的。 w, m, d, 以及e不能带有种别参数。 2. 控制编辑描述符的一般语法形式(R1010) 为以下几种: position-edit-desc r / : sign-edit-desc k P blank-interp-edit-desc 其中的k(R1011)表示带符号的整型字面常量。它不能具有种别参数。 而其中的位置编辑描述符(position-edit-desc)的一般语法形式(R1012)为: T n TL n TR n n X 其中的n(R1013)为整型字面常量,它必须是正数,并且不能具有种别参数。 符号编辑描述符(sign-edit-desc)的一般语法形式

10、(R1014)为: S SP SS 空格解释编辑描述符的语法形式(R1015)为: BN BZ 至于kP里面的k称为比例因子。 控制编辑描述符里面的这些大写字符以及标点符号T, TL, TR, X, 斜线, 冒号, S, SP, SS, P, BN, 以及BZ都页码,3/10第17章 数据文件的编辑2006-1-5http:/krsna.lamost.org/popular/fortran/17.htm表示编辑方式,具体含义参见17-6节。 3. 字符串编辑描述符(R1016) 实际上就是一个字符字面常量,而作为字符串编辑描述符的字符字面常量不能带有种别参数。 组成字符串编辑描述符的字符必须属

11、于系统所认可的字符,在字符字面常量中间所出现的分隔符号,即撇号与引号,都必须连续成对出现,不能间隔空格,这样的一对符号应该看成是一个单独的分隔字符。 如果系统同时支持大小写,那么编辑描述符除了对于字符常量之外,不区分大小写。 注意字符串编辑描述符只用于常量数据的输出,而对输入无效。 与数据编辑描述符和字符串编辑描述符相关的一个概念是纪录的域:当格式控制遇到数据编辑描述符或字符串编辑描述符,读入或写出的部分纪录就称为该纪录的一个域,而域宽即该域的字符数目。 17.3 输入输出的列表与格式的匹配输入输出的列表与格式的匹配 通过格式说明来进行格式化数据传输的第一步是格式控制,而格式控制的任何操作都依

12、赖于下面的两个方面的信息: 格式说明当中的下一个编辑描述符; 输入输出列表当中的下一个有效项。 这两个方面的信息都是格式控制所必不可少的,它们之间存在一定的匹配性的要求如下: 如果在一个输入输出说明列表当中,至少说明了一个有效的列表项,那么在格式说明里面就至少应该有一个相应的数据编辑描述符,这是输入输出列表与格式说明相匹配的基本条件。 只有在输入输出列表里面不存在任何有效列表项的情况下,才可以使用形式为()的空的格式说明。 0长度的字符项是一个有效的列表项,但0尺度的数组和具有重复度为0的隐式DO列表不是有效列表项。 除了前置有重复说明因子r的格式项之外,格式说明总是解释为从左到右。 前置有重

13、复说明因子r的格式项被解释为一个项的列表,数目等于r,每个项都等于原格式项,用逗号分隔。 如果重复说明因子r省略了,那么它的默认值为1。 对于格式说明里面的每一个数据编辑描述符,都在输入输出列表里面存在一个相应的有效项,当然如果输入输出列表里面的项为复型数据对象,则需要两个F, E, EN, ES, D, 或G编辑描述符。 对于每个控制编辑描述符或字符编辑描述符,则不存在相应的输入输出列表项。格式控制直接与纪录进行通讯。 只要格式说明里面格式控制遇到数据编辑描述符,那么它就决定了在输入输出列表里面是否存在相应的有效项:如果存在这样的有效项,那么在该项与纪录之间就传输相应的经过恰当编辑的信息,然

14、后执行相应的格式控制;如果不存在这样的有效项,那么格式控制就终止。 如果在格式说明里面,格式控制遇到冒号编辑描述符,而另一个输入输出列表的有效项又没有给出,那么格式控制终止。 如果在格式说明里面格式控制遇到一个完整的格式说明的最右边的括号,而另外的输入输出列表的有效项也没有给出,则格式控制终止。 如果给出了另外的有效项,则文件定位的方式和处理斜线编辑描述符一样。格式控制回复到被前置右括号终止的格式项的开头位置;如果不存在这样的前置右括号,那么格式回复到格式说明的第一个左括号处。 一旦出现上述的回复操作,那么格式说明里面重复使用的部分必须至少包含一个数据编辑描述符。 如果格式控制回复到一个前置有

15、重复说明的括号时,其前置重复说明必须同样加以重复使用。 格式控制的回复对于比例因子(17.6.5),符号控制编辑描述符(17.6.4)以及空格解释编辑描述符页码,4/10第17章 数据文件的编辑2006-1-5http:/krsna.lamost.org/popular/fortran/17.htm(17.6.6)都不产生任何影响。 【例17-3】 格式说明的一个简单例子为: 10 FORMAT (1X, 2(F10.3, I5) 它的输出列表为: WRITE (10,10) 10.1, 3, 4.7, 1, 12.4, 5, 5.2, 6 下面的格式说明能够得到同样的输出: 10 FORMAT (1X, F10.3, I5, F10.3, I5/F10.3, I5, F10.3, I5) 17.4 格式控制的文件定位格式控制的文件定位 格式控制的文件定位有如下几种情况: 在执行任何的数据编辑描述符或字符串编辑描述符之后,文件都定位于当前纪录的最后一个被读或写的字符之后。 在执行T,TL,TR,或X编辑描述符之后,文件的定位约定参见17.6.1节。 在执行斜线编辑描述符之后,文件的定位约定参见17.6.2节。 如果格式控制出现了上节所述的回复,则文件定位的方式与执行斜线编辑描述符时的方式一样。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号