7数据的输入、输出.ppt_第1页
7数据的输入、输出.ppt_第2页
7数据的输入、输出.ppt_第3页
7数据的输入、输出.ppt_第4页
7数据的输入、输出.ppt_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

1、1,第八章 常用算法的程序设计举例,第一章 算法,第二章 计算机和计算机程序,第四章 逻辑运算和选择结构,第五章 循环结构的实现,第六章 Fortran的数据结构,第七章 数据的输入、输出,第三章 Fortran语言程序设计初步,2,一、格式输出,Fortran规定用指定的“格式编辑符”来实现有格式输入输出。,1. I编辑符,Iw或Iw.m(w字宽,m最少字位),write(*,100) 100,-30,12 100format(1x,i3,i5,i5.4) end,format语句为非执行语句,可出现在程序单位语句 (program, function)之后和end语句之前的任何位置。 (但

2、为阅读方便,一般统一放在程序最后),输出 100-300012,用于整型数据的输入输出,Integer,3,说明: (1)数字在指定区域内向右靠齐; (2)如果输出的列数超过字宽,字宽内充满“*”; (3)m不包括负号所占列,输出列数超过m,按实际列输出。,4,2. F编辑符,Fw.d(w字宽,d小数位数),write(*,100) 7.42,-194.31,0.12 100format(1x,f6.3,f10.2,f4.1) end,输出 7.420-194.310.1,用于实数编辑, Fixed point number,5,说明: (1)小数点占一列,数字在指定区域内向右靠齐; (2)数

3、据的小数部分字宽若小于d则右端补0,大于d则多出的下一位按“四舍五入”处理; (3)如果输出的列数超过字宽,字宽内充满“*”; (4)容易“大数印错,小数印丢”。,6,3. E编辑符,Ew.d(w字宽,dE前数字部分小数位数),write(*,100) 7.42,-194.31,0.12 100format(1x,e11.3,e10.2,e8.1) end,输出 .742e+01 -.19e+03.1e+00,用于实数编辑,以标准指数形式输出,Exponent,7,说明: (1)指数部分含e占4列,数字在指定区域内向右靠齐; (2)小数点及前面的负号各占一列(有的系统还有0); (3)小数部分

4、字宽若小于d则右端补0,大于d则多出的下一位按“四舍五入”处理; (4)如果输出的列数超过字宽,字宽内充满“*”; (5)要有足够字宽。,8,实数输出既可用F编辑符,也可用E编辑符号,但整 数输出只能用I编辑符。,复数格式输出需要两个实数编辑符。,write(*,100) (2.2,3.4),(0.0,-5.8) 100format(1x,f6.3,f6.3,e10.2,e10.2) end,输出 2.200 3.400 .00e+00-.58e+01,9,4. G编辑符,Gw.d(w字宽,d有效位数),在 用F格式,F格式后4列留空。,G编辑符虽然可以避免F格式“大数印错、小数印 丢”和E格

5、式不直观的弊病,但其输出时无法事先获知 F输出的小数位数,输出样式也零乱无规律,故不推荐 使用。,根据实数大小决定用F型或E型格式输出,10,5. D编辑符,Dw.d(w字宽,d小数位数),write(*,100) 1.378675893D+02,1784.5D-03 100format(1x,d18.10,f11.7) end,输出 .1378675893d+031.7845000,双精度数编辑符,使用方法与E编辑符相仿。双 精度数也可以用F编辑符输出。,6. L编辑符,Lw(w字宽),write(*,100) .true.,.false. 100format(1x,l4,l7) end,输

6、出 TF,用于双精度数据的输出,Double Precision,用于逻辑型数据的输出,Logical,11,7. A编辑符,Aw(w字宽,无w按实际长度输出),write(*,100) China,NewYork,Fortran 100format(1x,a6,a3,a) end,输出 ChinaNewFortran,8. 撇号编辑符,write(*,100) 3,5.6,Limin 100format(1x,x=,i3,y=,f6.3,a,student) end,输出 x=3y=5.600Liminstudent,用于字符型数据输出,用来插入所需的字符串,12,9. H编辑符,用来输出字

7、符常量(不推荐使用)。,write(*,100) 3,5.6,Limin write(*,200) 100format(1x,2Hx=,i3,2Hy=,f6.3,a,8Hstudent) 200format(1x,Hello,15HHappy New Year!) end,输出 x=3y=5.600Liminstudent Hello,HappyNewYear!,nH(n字串长度,n要准确无误),10. X编辑符,用来在输出时产生空格。,nX(n空格个数),write(*,100) 3,5.6,-0.23 100format(1x,i3,2x,f3.1,3x,f6.2) end,输出 35.6

8、-.23,13,11. 纵向走纸控制,Fortran规定将 输出的第一个字符作 为纵向走纸标记,用 来控制行与行之间的 间隔,打印从第二个 字符开始。,write(*,100) 246,1234,14,12. 重复系数,使用重复系数来规定重复使用的编辑符。,下面的format语句等价:,format(1x,i3,i3,i3,f6.2,f6.2) format(1x,3i3,2f6.2),format(1x,i3,2x,f6.2,2x,i3,2x,f6.2,2x) format(1x,2(i3,2x,f6.2,2x),13. 斜杠编辑符,用于结束本行记录输出,开始下一行记录输出。,write(*

9、,100) 5,4.2,6,7.8 100format(1x, i3, f6.2/1x,i3,f6.2/),输出 54.20 67.80 (空一行),中间空一行需用 两个连续斜杠,15,二、write和format语句的相互作用,1. 如果输出项的个数少于输出量编辑符个数,多余的 编辑符不起作用,但紧邻的非输出量编辑符除外, 输出直到下一个输出量编辑符之前为止。,write(*,100) 5,4.2 100format(1x,i3,f6.2,2x,end,i3,f6.2) end,输出 54.20end,2. 如果输出项的个数多于输出量编辑符个数,重新使 用格式说明,但开始新记录。,write

10、(*,100) 5,4.2,2,7.8 100format(1x,i3,f6.2),输出 54.20 27.80,同format(1x,i3,f6.2/1x,i3,f6.2),但不同format(2 (1x,i3,f6.2),16,3. 如果在格式说明中含有重复编辑符组,当格式说明 用完后,只有最后一个编辑符组(含重复系数)及 其后面的编辑符被重复使用。,write(*,100) 5,6,4.2,7.8,2,9.3,9.2,3 100format(1x,2(i2,2x),2(f4.1,2x),i3) end,输出 564.27.82 9.39.2 3,4. 如果有输出量,但在格 式说明中无相应

11、编辑符, 则输出永不停止。,write(*,100) 5 100format(1x,i=),输出不停的“I=”,5. 可以用format()输出空行, 相应write语句应无输出量。,6. 右边两对write和 format作用相同。,write(*,100) i=,5 write(*,200) 5 100format(1x,a,i3) 200format(1x,i=,i3) end,17,Tc(把输出的位置移动到本行的第c个字节),write (*, ”(T3, I3)”) 100 write (*, ”(10X, T3, I3)”) 100,TLc(输出位置向左移动c个字节,不常使用),w

12、rite (*, ”(1X, A10, TL3, I3)”) ”CALL 119”, 110,TRc(输出位置向右移动c个字节),Bw.m(把整数转换成二进制数输出,输出占w个字符宽, 固定输出m个数字,m值可以不给定),Fortran 90 新添加:,write (*,”(1X, B6.5)”) 3,18,三、格式输入,Fortran用read和format语句的联合来实现格式输入。各编辑符含义与输出时相同,但输入时不必考虑 纵向走纸控制。,1. 整数的输入,read(*,100) i, j 100format(i4, i5),输入 34-56 结果 i=34, j=-56,注意:在字段宽度

13、内, 空格按0处理。(错误!),2. 实数、复数和双 精度数的输入,read(*,100) x,y,z 100format(2f4.2,e6.2),输入 1346-5.17843e3 结果 x=13.46,y=-5.1,z=78430,注意:输入数据可带可不带 小数点,自带小数点优先, 但输入数据小数点占列。,19,complex x read(*,100) x 100format(2f4.2),输入 134617.4 结果 x=(13.46,17.4),复数输入两实数,real*8 x,y read(*,100) x,y 100format(f12.10,d12.10),输入 13.4617

14、445d14.57d2 结果 x=134.617445, y=457,D, E, F, G编辑符作用相同,3. 逻辑型数据的输入,logical a,b,c read(*,100) a,b,c 100format(l6,2l4),输入 .true.ttfcftt 结果 a=.true.,b=.true.c=.false.,注意 数据可以是.true.、.false., 也可以是T、F开头的任 何字符串。,20,4. 字符型数据的输入,(1)格式输入字符不用带撇号,字符串常量间没有分隔 标记。,(2)输入字串与字符变量长度不同时。字串短时右补空 格,字串长时向右看齐,左边截去。,(3)推荐使用不

15、带长度说明的A编辑符,此时变量根据 长度自动选值。,character*4 w,x,y,z*5 read(*,100) w,x,y,z 100format(a5,a3,2a),输入 chinanewwanghello 结果hinaw, newx, wangy,hellz,21,5. 其他说明,(1)X编辑符表示在读输入 记录时向右跳过若干列。,(2)如果格式说明符已用完, 但还有未输入变量,则重复 使用编辑符,但应重开一行 记录。,(3)斜杠编辑符表示本记录 输入结束,并接着输入第二 个记录。,read(*,100) i, j 100format(1x,i3,2x,i3),输入 1234567890 结果 i=234, j=789,read(*,100) i, j read(*,200) m,n 100format(i3) 200format(i3/i3),输入 1234567890 1234567890 1234567890 1234

温馨提示

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

评论

0/150

提交评论