欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    《格式输入输出》PPT课件.ppt

    • 资源ID:5676095       资源大小:208.49KB        全文页数:32页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    《格式输入输出》PPT课件.ppt

    第六章 格式输入输出,6.1 输入输出概述,6.2 格式输入输出语句,6.3 格式说明语句,6.4常用的编辑描述符,6.5 输入输出项与编辑符的相互作用,数据的输入输出是程序的重要组成部分。在前面几章中,我们使用最简单的输入输出语句,即用表控方式进行输入和输出。这是比较简单、自由的输入输出方式。在有些情况下,我们希望按照自己所要求的格式来进行输入输出,以使输入更加灵活,输出更加美观。这就是本章要介绍的格式输入输出问题。,6.1 输入输出概述,输入输出是指在计算机内存与外部设备之间传送数据的过程。从外部设备将数据传送到计算机内存称为输入。将计算机内部的数据传送到外部设备称为输出。要顺利地传送数据,一般应在输入输出语句中给计算机提供三方面的信息:(1)通过什么设备来进行输入输出。(2)采用什么样的格式来进行输入输出。(3)输入输出的具体内容。,每一种计算机系统都隐含指定一种输入设备和输出设备。在微机中,隐含指定键盘为输入设备,显示器为输出设备。在输入输出数据较多时,也可以使用磁盘作为输入输出设备,即从已经建立的磁盘文件中去读取数据,将处理结果写入到磁盘文件中去。关于文件操作将在第11章介绍。输入输出的格式由格式编辑符来指定,不同的数据类型需要不同的格式编辑符,不同的格式编辑符确定不同的输入输出格式。输入输出的具体内容即输入输出项,输入项只能为变量,输出项可以为常量、变量、函数和表达式,也可以是隐含的DO循环。下面先看一个格式输入输出的例子。,INTEGER J DO J=1,5,2 WRITE(*,10)J END DO10 FORMAT(1X,3I5)END,再看下面的例子。,INTEGER JWRITE(*,10)(J,J=1,5,2)10 FORMAT(1X,3I5)END,程序输出为:1 3 5每循环一次输出循环变量J的值,每个数据占5格,程序输出为:1 3 5程序中,WRITE语句的输出项“(J,J=1,5,2)”是一个隐含的DO循环,当作一个整体输出,每个数据占5格。,6.2 格式输入输出语句,6.2.1 格式输出,格式输出语句有两个:PRINT语句和WRITE语句。1PRINT语句PRINT语句的一般格式是:PRINT f,输出项其中f是格式说明符,指明了输出所用的格式。它有以下三种形式:(1)格式说明符是一个“*”,表示输出使用表控格式。这在前面几章已作介绍。(2)格式说明符是一个字符常量。例如 PRINT(1X,2F7.3),X,Y(3)格式说明符是格式语句(FORMAT)的语句标号。这是最常用的格式输出形式。例如PRINT 100,A,B,C100 FORMAT(1X,F9.4,2F7.3)输出项指定了输出的具体内容。输出项可以是变量、常量、函数以及表达式。此外,输出项还可以是隐含DO循环。,2.WRITE语句WRITE语句的一般格式是:WRITE(u,f)输出项其中u是设备号,用于指明具体使用的输入输出设备。u可以是一个无符号整常量,也可以是一个整型变量或整型表达式,还可以是星号*。*表示由计算机系统预先约定的外部设备,一般为显示器。f是格式说明符,指明了输入输出所用的格式。它也有三种形式,用法与PRINT语句相同。输出项也可以是常量、变量、函数以及表达式,还可以是隐含的DO循环。,格式输入,格式输入语句是指READ语句,它有两种形式:READ f,输入项READ(u,f)输入项其中f指明了输入所用的格式。它有以下三种形式:(1)格式说明符是一个“*”,表示输入使用表控格式。(2)格式说明符是一个字符常量。例如READ(*,(I3,2I4)I,J,K(3)格式说明符是格式语句(FORMAT)的语句标号。这是最常用的格式输入形式。u是设备号,用于指明具体使用的输入设备。u可以是一个无符号整常量,也可以是一个整型变量或整型表达式,还可以是星号“*”。“*”表示由计算机系统预先约定的外部设备,一般为键盘。输入项指定了输入的具体内容。输入项目可以变量,不允许是常量或表达式。此外,输入项目也可以是隐含DO循环,6.3 格式说明语句,FORTRAN用专门的格式说明来描述输入输出的格式。尽管格式说明可以直接放在输入输出语句中,但为了使程序的可读性更强,最好使用格式说明语句来进行格式说明。格式说明语句的一般格式是:n FORMAT(格式说明)其中n是语句标号,FORMAT语句一定带有语句标号,以便同格式输入输出语句配合使用。格式说明由若干个编辑描述符组成,编辑描述符之间用逗号分隔。例如 10 FORMAT(1X,I4,F5.1)格式说明语句是非执行语句,它只是给输入输出语句提供数据的格式描述。在程序运行过程中,由输入输出语句根据格式说明语句提供的数据格式描述,实现数据的格式控制。单独的格式说明语句在程序中不器任何作用。例如 10 FORMAT(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提供的内部数据类型有整型、实型、复型、字符型和逻辑型。相应地,编辑描述符也分五类介绍。,1.整型数据编辑描述符 根据数据采用的进制不同,整型数据编辑符分为四种,I编辑符、B编辑符、O编辑符和Z编辑符。I编辑符用来描述十进制的整型数据,B编辑符用来描述二进制的整型数据,O编辑符用来描述八进制的整型数据,Z编辑符用来描述十六进制的整型数据。下面逐一介绍。(1)I编辑符。I编辑符用于十进制整数的输入输出。它的一般格式是:rIw其中r是重复系数,为1时可以省略。w表示字段宽度,即与该编辑描述符对应的输入输出项所占用的字符个数。I型输入的使用规则:在输入记录中从左往右取w个字符存入对应的输入项。注意取得的w个字符必须是整数,正负号也占一个字符位置,空格字符当0。例如READ(*,10)I,J,K10 FORMAT(I4,I5,I6)语句执行时,若从键盘输入714-346-12345(代表空格),则I,J,K的值分别为:7104、-3460和-1023。,I型输出的使用规则:在输出记录中,对应的输出项的值占w个字符宽度。当w大于输出项实际的数字位数时,在输出字段中插入前导空格补足w个字符。当w小于输出项实际的数字位数时,将输出w个“*”,表示字段宽度定义小了。例如WRITE(*,10)K,L10 FORMAT(1X,I5,I4)当K=12,L=-7567时,输出结果为:12*(2)B,O,Z 编辑符。这是FORTRAN 90新增的编辑符。分别采用二进制、八进制和十六进制形式描述整型量的输入输出。其基本用法与I 编辑符相同。例如 READ(*,10)I,J WRITE(*,20)I,J,I,J10 FORMAT(B3,B4)20 FORMAT(1X,I5,I4,O4,Z5)END 语句执行时,若从键盘输入1011101,则I,J的值分别为二进制数101和二进制数1101。输出结果为:5135D,但与I 编辑符也有区别,特别注意以下几点:如果需要输出的二进制、八进制、十六进制数据位数大于编辑符定义的字段宽度,这时仍能输出数据,不过实际输出的数据是从原数据的右端截取相应的位数而得到的。例如 WRITE(*,20)1420 FORMAT(1X,B3)输出结果为:110Z编辑符可以用来输入输出字符型和逻辑型数据。例如 WRITE(*,20)1490,1434,ab20 FORMAT(1X,Z3,Z3,Z5)输出结果为:016162 从上述输出结果可以看出,对于字符型数据,如果用Z编辑符输出,则输出结果为每一个字符所对应的ASCII码值。例如字母“a”的ASCII码值用十六进制表示为61,字母“b”的ASCII码值用十六进制表示为62。对于逻辑型数据,如果用Z编辑符输出,则逻辑真输出为1,逻辑假输出为0。,2.实型数据编辑描述符有四种编辑符可以对实型数据进行操作,它们是F编辑符、E编辑符、EN编辑符、ES编辑符和G编辑符。(1)F编辑符。用于实型量的输入输出(按小数形式)。它的一般格式是:rFw.d其中r为重复系数,为1时可以省略。w为字段宽度,d为输入输出项小数部分所占的位数。F型输入规则:按编辑描述符中w指定的字段宽度从输入记录中截取数据,若w个字符中不含小数点,则系统自动按d决定小数点的位置,若w个字符中含有小数点,则按“自带小数点优先”的原则,不再按Fw.d中的d去加工该数据,此时d不起作用。例如 READ(*,10)A,B10 FORMAT(F7.2,F6.1)语句执行时,如从键盘输入123456726.89,则A、B的值分别为12345.6和726.89。当输入的是指数形式时,如果E前面的数字部分含有小数点,则d不起作用。如果数字部分不含有小数点,则自动按d决定数字部分小数点的位置。,例如 READ(*,10)A,B10 FORMAT(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,C10 FORMAT(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,B10 FORMAT(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.000810 FORMAT(1X,EN12.4,EN13.2)输出为:128.4330E+00-800.00E-06,(4)ES编辑符。ES编辑符与E编辑符基本用法相同。区别在于ES编辑符输出数据的非指数部分的绝对值强制在1到10的范围内。例如 WRITE(*,10)128.433,-0.000810 FORMAT(1X,ES12.4,ES13.2)输出为:1.2843E+02-8.00E-04(5)G编辑符。也用于实型量的输入输出。一般格式为:rGw.d G编辑符用于输入时,与F、E编辑符的功能完全相同。用于输出时,要根据输出项的大小决定用F格式输出还是用E格式输出。例如 WRITE(*,10)123456.789,0.09876510 FORMAT(1X,G13.7,G11.4)输出为:123456.8.9877E-01,3.复型数据编辑描述符复型数据没有专门的编辑符。对复型数据的输入输出,可以按实部和虚部分别输入输出。例如 COMPLEX CM READ(*,10)CM WRITE(*,20)CM10 FORMAT(2F5.2)20 FORMAT(1X,2F7.2)语句执行时,从键盘输入1234567890,则输出为:123.45678.904.逻辑型数据编辑描述符 逻辑型数据的输入输出用L编辑符。其一般格式是:rLw 逻辑值只有两个:真(.TRUE.)和假(.FALSE.)。在输入时,输入的数据可以是.TRUE.或.FALSE.,也可以是头一个字母为T或F的任何字符串(T或F前面可以接“.”或空格,后面可以是任意字符),例如 LOGICAL L1,L2 READ(*,10)L1,L210 FORMAT(L6,L3)语句执行时,从键盘输入.TRUE.FT,则L1、L2的值分别是.TRUE.、.FALSE.。在输出时,对逻辑真(.TRUE.),输出一个字母T,对逻辑假(.FALSE.),输出字母F,且在左边补w-1个空格。例如 10 FORMAT(1X,L3,L4)输出为:FT 5.字符型数据编辑描述符 字符型数据的输入输出用A编辑符。其一般格式是:rAw其中字段宽度w可以省略,省略时,输入输出项的字段宽度隐含为对应的字符型输入输出项的长度l。,A编辑符的输入规则:从输入记录中取w个字符,但这w个字符能否全部存入对应的输入项,还取决于输入项的长度l。当w等于l时,w个字符全部送给输入项。当wl时,从w个字符中取出最右边l个字符送给对应的输入项。这一点与字符赋值语句的赋值规则刚好相反。当wl时,输出项所有的字符全部输出,并且靠右对齐,左补w-l个空格。当wl时,输出项最左边w个字符输出。当w省略时,按输出项的长度输出,这是最方便的形式。,例如 WRITE(*,10)FORTRAN90,PROGRAM10 FORMAT(1X,A7,A8)输出为:FORTRANPROGRAM 最后我们对上面讨论的编辑描述符作一个总结:FORTRAN 90提供的编辑描述符很多,这给初学者学习带来了困难,但一些编辑描述符也有共同特点,把握这些特点以后也就不难掌握了。可重复编辑描述符是用来决定对应输入输出项的输入输出格式的,其中都有字段宽度w,而且对于输入都是从输入记录中取w个字符,对于输出都是在输出记录中输出w个字符。但问题是,在输入时,取得的w个字符按什么规则加工后传送到对应的输入项。在输出时,当输出项实际包括的字符的个数和编辑符中所确定的字段宽度(对于数值型数据还有小数位数)之间不相符时,如何输出?读者可以分数值型、逻辑型、字符型进行总结。,6.4.2 非重复编辑描述符 非重复编辑描述符直接向当前输出记录传递信息,因此不需要输入输出项与其对应。非重复编辑描述符有:(1)X编辑符。用于在输入输出的常数之间插入空格。它的一般格式是:nX其中n是正数,用于指明从当前位置向右跳过n个字符位置。这里n不能省略,即使n为1,也要写成1X。例如 READ(*,10)K,J,A10 FORMAT(2I3,3X),E5.2)执行语句时,从键盘输入:876-42193671E4后,K、J、A的值分别为876、-42、67100.0。其中非重复编辑符3X,跳过193这三个字符。(2)H编辑符。用于输出一个字符串。其一般格式是:nHh1h2hn其中n是正整数,表示字符串的长度,h1h2hn为n个字符。,(3)撇号编辑符。用于输出一个字符串。撇号编辑符和H编辑符作用相同,但撇号编辑符使用更为方便。例如 WRITE(*,10)345,HELLO!10 FORMAT(1X,2HI=,I4,C=,A)输出为:I=345C=HELLO!(4)斜扛编辑符:结束当前正在输入或输出的记录,并转入下一个记录开始输入输出。例如 WRITE(*,10)A,B10 FORMAT(/2(10X,F9.2/)语句执行后将输出5个记录。6.4.3 纵向走纸控制符 FORTRAN规定,将输出记录中的第一个字符作为纵向走纸控制符,这个字符不输出,而从输出纪录的第二个字符开始输出。常用的控制字符有:空格(走纸一行)、0(走纸二行)、1(换页)、(不走纸,返回到本行重迭打印),例如WRITE(*,10)123,456710 FORMAT(1X,I3,2X,I4)按本来意义,1X产生一个空格,应输出:1234567但按FORTRAN规定,将输出记录中的第一个字符作为纵向走纸控制符,所以实际输出是在走纸一行之后,输出:1234567如果不在输出记录的第一个字符处增加一个空格,则系统将应该输出的第一个字符作为纵向走纸控制符,从而使本来该输出的字符被“吃掉”了。例如 WRITE(*,10)123,456710 FORMAT(I3,2X,I4)输出为:(空一行)234567输出记录的第一个字符“1”作为纵向走纸控制符用,走纸两行(字符“1”本来作分页控制用,但微机中无分页功能)。所以,在FORMAT语句中,一般都在格式说明的第一个字符位置增加一个空格作为纵向走纸控制符。,在执行输入输出语句时,要求输入输出项与编辑符在前后顺序和数据类型方面都一一对应,否则就会出错。要注意输入输出项和编辑符之间的相互作用关系:(1)如果可重复编辑符的个数多于输入输出项的个数,则多余的编辑符不起作用。例如 WRITE(*,10)123,456710 FORMAT(1X,I3,2X,I4,I5)多余的编辑符I5不起作用。(2)如果可重复编辑符的个数少于输入输出项的个数,则按顺序用完最后一个可重复编辑符之后,再重复使用格式说明,但产生一个新记录。例如 WRITE(*,10)A,I,B,J10 FORMAT(1X,F7.2,I3)语句执行后,将产生2个输出记录。(3)如果在编辑描述符表中包含有重复使用的编辑符组,则当所有编辑符用完之后,返回到最右边那个编辑符组(包括其重复系数)开始使用。,6.5 输入输出项与编辑符的相互作用,分析下列程序的输出结果。I=56 J=1247 K=5126 WRITE(*,10)I,J,K10 FORMAT(1X,2(I5,2X)/)END 在编辑描述符表中的1X,作纵向走纸控制用,(I5,2X)是一个编辑符组,重复系数为2,第一次引用时,按I5输出I值,2X产生两个空格,第二次引用时,按I5输出J值,2X产生两个空格。此后是斜扛编辑符建立一个新记录。输出K值时,格式说明已用完,返回到编辑符组(I5,2X),并产生一新记录,所以,第二行为空行。在第三行按I5输出K值,且第一个字符(为空格)作纵向走纸控制用而不输出。输出结果为:561247(空一行)5126,习题1.有语句:INTEGER I,J REAL X,Y READ(*,10)I,X,J,Y设要求输入的值为I=87,X=67.4,J=465,Y=345.705,用下面的FORMAT语句应如何输入数据?(1)10 FORMAT(1X,I4,F6.2,I5,F8.2)(2)10 FORMAT(1X,2(I4,2X,F10.2)(3)10 FORMAT(I4,F6.2/I5,F8.2)(4)10 FORMAT(I4/F6.2/I5/F8.2)(5)10 FORMAT(I5,F8.1)(6)10 FORMAT(I4,F8.1,I5,F10.2,I6,F10.3),2.程序执行时输入同样的内容:请写出下列程序的执行结果。(1)INTEGER AREAL B,CCHARACTER*10 DREAD(*,10)A,B,C,DWRITE(*,*)A,B,C,D10 FORMAT(1X,I4,2F6.2,A3)END(2)INTEGER AREAL B,CCHARACTER*10 DREAD(*,10)A,B,C,DWRITE(*,*)A,B,C,D10 FORMAT(1X,O4,2E6.2,A)END,(3)INTEGER AREAL B,CCHARACTER*10 DREAD(*,10)A,B,C,DWRITE(*,*)A,B,C,D10 FORMAT(1X,Z4,2E8.2,A5)END(4)INTEGER AREAL B,CCHARACTER*10 DREAD(*,10)A,B,C,DWRITE(*,20)A,B,C,D10 FORMAT(1X,Z4,2F8.2,A5)20 FORMAT(1X,O4,2E8.2,A5)END,3请写出下列程序的执行结果。INTEGER I,J,KI=570J=3410K=5069PRINT 10,I,J,KPRINT 20,I,J,KPRINT 30,I,J,K10 FORMAT(1X,I4)20 FORMAT(1X,2I5)30 FORMAT(1X,2(I5/2X)END,4.请写出下列程序的执行结果。CHARACTER*8 AINTEGER BREAL C,DA=FORTRANB=52C=917.8D=-452.6WRITE(*,10)A,B,C,DWRITE(*,20)A,B,C,DWRITE(*,30)A,B,C,D10 FORMAT(1X,A5,I4,2E8.2)20 FORMAT(1X,A,B,C,D=,Z4,I4,2F7.2)30 FORMAT(1X,A=,A/,1X,B=,B4/,1X,C=,F6.1/,1X,D=,F6.1)END,5.请写出下列程序的执行结果。COMPLEX ALOGICAL BA=(1.6,-4.5)B=.NOT.36.EQV.FALSE.WRITE(*,10)A,B10 FORMAT(1X,F10.2,F10.2/L5)END,6请写出下列程序的执行结果。(1)WRITE(*,10)(3,4,I=1,2)10 FORMAT(1X,3I3)END(2)READ(*,10)K,A,A WRITE(*,20)K,A 10 FORMAT(I5,F6.1,F7.2)20 FORMAT(1X,I7,2F9.2)END输入为:123456789.0123456789。,

    注意事项

    本文(《格式输入输出》PPT课件.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开