fortran第7章输入和输出.ppt_第1页
fortran第7章输入和输出.ppt_第2页
fortran第7章输入和输出.ppt_第3页
fortran第7章输入和输出.ppt_第4页
fortran第7章输入和输出.ppt_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

第七章 输入和输出,7.1 输入输出的概念 7.2 表控输入 7.3 表控输出 7.4 简单的格式输入输出语句 7.5 含简单控制信息表的输入/输出,7.4 格式输入/输出,一. 简单的格式输入输出 格式:READ f,输入表列 PRINT f,输出表列,功能:实现数据信息的输入和输出,说明: 1.f是格式标识符,用来指出数据在输入输出中的编 辑格式 2.输入输出表列是由一个或多个用逗号分隔的变量 名,数组名,数组元素名及字符串名等组成,例: READ f,I,J,k PRINT F,A,B,C,二. 格式标识符 FORRAN77规定有五种格式标识符: *、字符常数、语句标号、变量名,1. * 当格式标识符是一个星号*时表示输入输出是表控格式因此表控格式实际上是最简单的格式输入输出语句 例: READ *,I,J,K,A,B,C PRINT *,X,Y,Z 这两条语句表明数据信息的输入输出按系统规定的格式进行,同时所使用的输入输出设备也是由系统指定的,例: READ (I4,F10.4,F10.4),K,A,B PRINT (1X,I6,3X,F10.4,3X,F10.4),K,A,B,说明: (I4,F10.4,F10.4)和(1X,I6,3X,F10.4,3X,F10.4) 称为格式标识符(字符常数型),格式说明符必须用 单引号括起来 括号中的各项称为格式说明,每项之间用逗号隔开,2.字符常数 将数据信息输入输出的格式用一字符常数的形式来表示,这样各数据信息的输入输出按用户指定格式进行,各格式说明中的字母称之为编辑描述符. 例:I4中的I表明该数据是整型, F10.4中的F表明该数据是实型,格式说明中的数值表明该数据的宽度 例: I4表明该数据是整型输入输出宽度为4位. F10.4表明该数据是实型输入输出宽度10位 其中小数位占4位.实际中小数点也占一位,3.标号 格式符用一个语句标号的形式出现,这个语句标号所表示的语句必须是格式语句(FORMAT语句),例: READ 10,I,J,K 10 FORMAT (I3,I5,I8) PRINT 20,X,Y,Z 20 FORMAT (1X,F10.2,F10.2,F10.4),上述语句用字符常数来表示时为 READ (I3,I5,I8),I,J,K PRINT (1X,F10.2,F10.2,F10.4),X,Y,Z,说明: 1. 语句标号必须是整型常数,变量名必须是整型变量名 2. 该语句不能用于一般变量赋值,其值不能参加算术运算,4.变量名 当格式标识符是标号变量名时,这时其值是通过赋标号语句来定义的 格式: ASSIGN (语句标号) TO 变量名 功能: 将指定的语句标号值赋给指定的整型变量中,例: ASSIGN 10 TO NUM READ NUM,I,J,K NUM FORMAT (I3,I5,I8),三 编辑描述符,1. I 编辑描述符 2. F 编辑描述符 3. E 编辑描述符 7. L 编辑描述符 5. 可重复的编辑符 6. X 编辑描述符 7. 撇号 和 H 编辑描述符 8. 斜线 编辑描述符,下一节,1. I编辑描述符 格式: IW 功能: 用于整型数据的描述.指明被编辑的数据为整型 宽度为W.,说明: 1. I 说明被编辑的数据为整型 2. W 是整型数据允许的最多位数即宽度,例2: PRINT 10,I,J,K,L 10 FORMAT (1X,I6,I7,I8,I8) 输出记录: -12 -973 214 69 I6 I7 I8 I9,2. F 编辑描述符 格式: FW.d,功能: 用于实型数据的描述 说明: 1.F说明被编辑的数据为实型 2. W说明字段的总宽度 3. d说明小数点占的宽度,例2:不带小数点的输入 READ 7,A,B 7 FORMAT (F6.2,F7.2) 若输入记录为: 12345 678912 F6.2 F7.2,计算机赋值的过程: 1.根据W的值取前六位数字字符 2.按d值从数字字符串的右边截d位,再加上小数点 3.将该值赋给输入变量表列的第一个变量 7.后面的情况以此类推 于是 A=123.45 B= 6789.12,计算机赋值的过程: 1.根据W的值 取前6位数字字符 2.将其赋给输入变量表列中的第一项 3.后面的情况以此类推于是 A=29.672 B=0.8946,例3: 自带小数点 READ 10,A,B 10 FORMAT (F6.2,F6.2) 输入记录: 29.6720.8946 F6.2 F6.2,注: 1. 自带小数点输入时,d不起作用.即自带小数点优先. 2. 对w,d的取值一定要根据实际来,否则会出现大数出 错,小数印丢,但w取太大也会发生难以表示的情况, 如 7.2*1036,7.2*10-36 ,这就只有用 E 编辑符来表示了.,3.E编辑描述符,格式:Ew.d 功能:用于以指数形式描述实型数,说明: 1.E是指明被编辑的数据是指数型 2.w,d的含义同F型,例: READ 5,A,B,C 5 FORMAT(E11.4,E12.2,E12.2) 输入: 85132E-28 796E+15 414E-10 E11.4 E12.2 E12.2 结果:A=8.5132*10-28 B=7.96*1015 C=7.14*10-10,(3)E前的11-4位从右向左截取d的位数,在其前面打小数点 (4)将这值赋给输出变量表列中的第一项以后各项以此类推.,计算机赋值过程: (1)根据w取前11位字符数字 (2)将E后的数字字符作为指数部分,*指数形式输出 指数形式用标准形式输出即输出的整数位为0,小数点后是一非零的数,说明: 1.负号是必需的,正号可任选 2.小数点前为零 3. Z1Z2前的符号必需 7. X1Xd是小数位,有效数据从左开始取d位,(d+1)位四舍五入 5.Z1Z2是00-99的整数,标准形式: 0.X1X2XdE Z1Z2,*指数形式输出 指数形式用标准形式输出即输出的整数位为0,小数点后是一非零的数,例: PRINT 6,A,B,C 6 FORMAT(1X,E10.3,E13.4,E13.4),若A=-1.87,B=0.178,C=-178.558 输出: -0.187E+01 0.1780E+00 -0.1786E+03 1 2 3 4 2 4 4 2 4 4,7. L编辑描述符 格式: LW 功能: 用于逻辑性数据的描述,例: (1)自由格式输入 READ *,A,B,C,D 输入的数据: T,.TRUE.,F,FF,说明: 逻辑数据输入时, 若第一个非空格的字符是T或 紧跟一T时,则作为.TRUE. 若第一个非空格的字符是F或 紧跟 一F时,则作为.FALSE. 如: T,.TRUE.,.T.,TP等价,例1: 编辑符 输入字符 输入的值 L3 T .TRUE. L5 FALSE .FALSE. L4 TRUE .TRUE. L6 .TRUE. .TRUE. L4 .FAL .FALSE. L3 FFF .FALSE. L1 F .FALSE. L5 F T F .FALSE.,(2) 格式输入 READ (*,10) A,B,C,D 10 FORMAT(L3,L4,L1) 输入数据: T T F F 结果A,B 为.TRUE.,C,D为.FALSE.,(3)格式输出 PRINT 10,A,B,C,D 10 FORMAT (1X,L2,L2,L4,L4) 若 A,B为真,C,D为假输出值为: T T F F 2 2 4 4 输出时按字段宽度输出,字符T或F打在字段的右端,(4) 自由格式输出 PRINT *,A,B,C 其值为.TRUE.时输出 T 其值为.FALSE.时输出 F 输出所占列数由机器定,5.可重复的编辑符 对于重复出现的编辑符,可以只写一次只需在前面加一 个重复数即可 格式: 可重复的编辑符一般形式如下: nIW ,nIW.d ,nEW.d ,nLW (n为重复数),例: 100 FORMAT(1X,I10,I10,F8.3,F8.3,5X,E16.7,E16.7) 可写成 100 FORMAT (1X,2I10,2F8.3,5X,2E16.7),例: 100 FORMAT (1X,I5,F10.2,E8.2,1X,I5,F10.2,E8.2) 可写作 100 FORMAT (2(1X,I5,F10.2,E8.2),6. X编辑描述符 格式: nX 功能: 对数据的输入输出的位置进行控制 说明: n为空格的个数,例:输入: READ 5,A,B 5 FORMAT (4X,2F7.1),43.1 52.4 结果: A=43.1 B=52.4, READ 5,A,B 5 FORMAT (4X,F7.1,2X,F7.1),输入记录:,输入记录:,43.1 52.4,结果: A=43.1 B=52.4, PRINT 6,A,B 6 FORMAT (1X,F6.2,15X,F6.1,-15X,I4),若A=43.1 B=52.4 结果: A= 43.1 B=52.4,输出: PRINT 6,A,B 6 FORMAT(1X,A=,F7.1,4X,B=,F7.1),2457,若A=123.56 , T=2456.3 , I=2457,输出: 123.56 2456.3,7 撇号和 H 编辑描述符 格式:nHh1h2hn h1h2.hn,功能:输出字符型常量,例: PRINT 10 10 FORMAT (1X,3HNO.,5X,4HNAME),输出结果: NO. NAME,格式语句亦可写成: 10 FORMAT (1X,12HNO. NAME) 或 10 FORMAT (1X,NO.,5X,NAME) 或 10 FORMAT (1X,NO. NAME),说明: 1.这两种编辑描述符只能用于输出语句中 2.n为无符号整常数,其值为H后的字符常数个数 3.h1h2hn是一个长度为n的字符串常数(含空白),注: 若字符常数中含有一个撇号,在使用撇号描述符时则将一个撇号写成两个撇号. 例: ITS A BOOK.的格式语句应为: 10 FORMAT (1X,ITS A BOOK.),8.斜线编辑描述符 斜线编辑描述符在格式说明中均作为分隔符使用 功能: 指出当前记录上数据信息传输的结束,例1: 输入语句: READ 5,N,X 5 FORMAT(I4/F7.2) 输入: 1 2 3 4 5 6 7 8 9 10 11 3 2 7 4 2 . 5 5 9 4 . 3 5 结果: N=327 X=597.35 例2: 输出: PRINT 6,N,X 6 FORMAT (1X,I4/1X,F7.2) 结果:1 2 3 4 5 6 7 8 9 10 11 12 3 2 7 5 9 4 . 3 5,例3: PRINT 6,N,X 6 FORMAT (1X,I4/1X,F7.2) 结果: 1 2 3 4 5 6 7 8 9 10 11 3 2 7 5 9 7 . 3 5 例4: PRIINT 4 4 FORMAT (1X,/) 结果: 输出五个空行,四 纵向走纸控制,FORTRAN77规定输出格式记录的第一个字符起纵向控制作用,其控制符的作用如下:,例1: PRINT 5,I,J 5 FORMAT (1X,2I3),0 打印记录前走纸两行 1 打印记录前走到下一页的第一行 + 打印记录前不走纸 其他字符 一般起空格作用,例2: 巧用纵向控制语句 PRINT 6,K PRINT 7 6 FORMAT( Y,I3) 7 FORMAT(+=),注: 在输出方式下记录中的首字符是纵向走纸控制数据信息不能占用,否则出现不应有的错误.,例3: PRINT 4,L,K 4 FORMAT(I4,I6),结果: = 100,五 格式控制应用例解,1. PRINT 10 M,N,L 10 FORMAT(1X,I4),7. 将格式语句改为 9 FORMAT (2F5.0) 输入: 7.23-3.52 0.15 结果: A=7.23 B=-3.52 C=0.15,3. READ 9,A,B,C 9 FORMAT(F5.0),5. PRINT 12,M,N,L 12 FORMAT ( REPORT/(1X,I4),7. 若 A=3.5 ,B=0.4 , C=5.8, D=1.7 PRINT 3,A,B,C,D 3 FORMAT(0,37(*)/2(5X,F5.1) 结果: 1. 2.* (共37次) 3. 7. 3.5 0.4 5. 5.8 1.7,注: 1.输入时,输入表和格式说明相互作用的结果,不能从一 个输入记录中要求获得多于该记录所包含的字符 2.输出时一条记录的字符个数不能超过外设所规定的 个数.例如,显示器: 80 打印机: 80或132 3.打印输出时格式控制返回将产生一个新纪录,不能忘 掉给出纵向控制字符. 7.纵向格式控制字符只对打印机,不对显示器.,7.4 含简单控制信息表的输入/输出,格式: READ (u,f) 输入表列 WRITE (u,f) 输出表列,功能:对用户指定的输入输出设备进行数据信息传递 说明: 1.u是设备号(通道号) 2.f是格式标识符 3.带控制信息表的输出语句只能用于WRITE,不能用 于PRINT,例1: READ (*,*) A,B,C READ *,A,B,C WRITE (*,*) A,B,C PRINT *,A,B,C,(WRITE语句中括弧内有两个“*”,第一个“*”表示在系统隐含指定的输出设备上输出,第二个“*”表示按隐含的指定格式输出),例2: READ (05,*) A,B,C 终端键盘输入数据 WRITE (07,*) A,B,C 打印机上输出A,B,C数据,例3: READ (*,10) A,B,C 10 FORMAT (3F7.1) 在系统指定的设备上 WRITE (*,20) A,B,C 20 FORMAT (1X,3F7.1),例4: READ (05,10) A,B,C 10 FORMAT (3F7.1) 在指定的设备上 WRITE (07,20) A,B,C 20 FORMAT (1X,3F7.1),WRITE语句和FORMAT语句的相互作用.,打印或显示出来的记录或信息来源于两个方面: WRITE语句数出表列的值 FORMAT语句中提供的字符常数 其相互作用,1.WRITE语句中输出量的个数和FORMAT语句中编辑符(如:I, F, E,D,L等)的个数可以相等也可以不相等. 如果输出量的个数少于编辑符的个数(不包括H编辑符、撇号编辑符、X编辑符,),则多余的编辑符不起作用。,如: WRITE(*,200)A,I,K 200 FORMAT(1X,F6.2, I6,2X,I7, I8),或 200 FORMAT(1X,F6.2,I6,2X,I7,END,I8,2X),2.如果输出量的个数多于编辑描述符个数,即输出表列中还有未输出的元素,而格式说明中编辑描述符已用完,则重新使用该格式说明,但产生一个新的记录.,如: WRITE(*,110)A,B,C,D 110 FORMAT(1X, 2F6.2),它相当于用了: 110 FORMAT(1X,2F6.2/1X,2F6.2),不等同于: 110 FORMAT(2(1X,2F6.2),它产生如下结果: 12.34 1.00 2.00 3.54,两个记录,3.如果在格式说明语句中包含有重复使用编辑描述符组,则当格式说明用完后再重复使用时,只有最后一个描述符组(包括其重复系数)和它右面的编辑符被重复使用.,如: WRITE(*,100)K, S, J,H 100 FORMAT(1X, 2(I3,F6.2),如: WRITE(*,100)A,B,C,D,E,F,G,H,X 100 FORMAT(1X,2(F6.2,2X),F7.2,2X,2(F8.2,2X),F10.4),7.如果有输出量而格式说明中无相应的编辑描述符(非X,H 型),则有如下错误信息: run-time F6202:WRITE(CON),5.在执行格式输出时,系统对输出表列和格式说明同时扫描.按格式说明中各字段编辑描述符的次序输出各值,X、H型编辑符不要求输出表中有相应的输出量,而I,F,E编辑描述符则要求必须有相应的输出量才能输出。,6.可以有“空格说明”,如FORMAT()。用来输出一个空行。,7.遇格式说明的右括号或斜杠时,结束本行打印.但只要输出表列中还有未输出量,将重复使用格式说明或按斜杠后面的格式说明组织输出.,8.FORMAT语句可以与WRITE语句相邻,也可以放在程序中任一位置.,不用FORMAT语句的格式输出.,例如: WRITE(*,100)X,Y,Z,I 100 FOR

温馨提示

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

评论

0/150

提交评论