数据有格式输入输出
更新时间:2023-05-22 23:41:01 阅读量: 实用文档 文档下载
第八讲 数据有格式输入、输出1. 数据有格式输入输出概述 2. 格式说明与格式编辑符 3. 整数有格式输入输出 4. 实数有格式输入输出 5. 复数有格式输入输出 6. 字符串有格式输入输出 7. 逻辑值有格式输入输出 8. 二、八、十六进制数据有格式输入输出 9. 任意类型数据有格式输入输出 10.不可重复编辑符 11.纵向走纸控制 12.有格式输入输出应用举例 13.作业
第八讲
数据有格式输入、输出
8.1 数据有格式输入输出概述 输入输出数据是否简洁、直观、醒目、规范,是反映程序质量的一项重要指标。
示例:某程序需输入3个学生4门课成绩数据,共输入12个数据,有两种输入方式:
①78.5 ②
85
58
98
75
88.5
99 数学
45.5 物理 85.0 88.5 69.5
84.5 化学 58.0 99.0 77.0
69.5 英语 98.0↙ 45.5↙ 82.0↙
77
82↙ 输入分类 输入提示
输入第1位同学四门课成绩:78.5 输入第2位同学四门课成绩: 75.0 输入第3位同学四门课成绩: 84.5
示例:某程序要输出3个学生4门课成绩数据,共输出12个数据,有两种输出方式:
①
8.1 数据有格式输入输出概述 78.50000 85.00000
58.0000045.50000 化学 58.0 99.0 77.0 英语 98.0 45.5 82.0
98.0000084.50000
75.0000069.50000
88.50000 77.00000 ②
99.00000 82.00000 数学 物理 85.0 88.5 69.5
第1位同学成绩: 78.5 第2位同学成绩: 75.0 第3位同学成绩: 84.5 第八讲 数据有格式输入、输出
简洁直观 醒目规范
8.2 格式说明与格式编辑符
示例 格式说明 ① READ(*,100) m,n WRITE(*,200) m+n,m-n 100 FORMAT(I3,I3)
编辑符
200 FORMAT(1X, m+n= ,I4, m-n= ,I4)END ② READ(*,"(I3,I3)") m,n 8.2 格式说明与格式编辑符
WRITE(*,"(1X, m+n= ,I4, m-n= ,I4)") m+n,m-nEND 输入:987432↙。 输出:m+n=1419m-n= 555。
第八讲
数据有格式输入、输出
8.2 格式说明与格式编辑符
示例 格式说明
数据有格式输入输出需要给出相关的格式说明。 FORMAT语句提供输入输出数据的格式说明信息。
编辑符
FORMAT语句既不是执行语句,也不是说明语句。 FORMAT语句可出现在说明语句之后,END语句之前任何位置。 格式说明表是关键字FORMAT之后的括号部分。
格式说明表由若干格式编辑符组成,编辑符由“,”分隔。 格式说明表可嵌入到输入输出语句中,取代FORMAT语句。 格式说明一般使用FORMAT语句,简单格式使用嵌入方式。8.2格式说明与格式编辑符/格式说明
FORMAT语句语法描述:
<FORMAT语句>→<语句标号> FORMAT <格式说明表> <格式说明表>→(<格式说明>{[,∣/]<格式说明>})
第八讲
数据有格式输入、输出
8.2 格式说明与格式编辑符 FORTRAN
90提供了24个格式编辑符,如:I、F、E、A等。
示例 格式说明
格式编辑符分
为两类:可重复编辑符、不可重复编辑符。 可重复编辑符可指定重复系数,与I/O表中的一个I/O项对应。
编辑符
不可重复编辑符不可指定重复系数,不与输入输出项相对应。
如:I、F、E、A等编辑符为可重复编辑符。 如:X、Q、/、\等编辑符为不可重复编辑符。 READ(*,100) num1, num2, price1, price28.2格式说明与格式编辑符/编辑符
100 FORMAT(2I3, F7.1, E8.2) WRITE(*,200) num1*price1+num2*price2 200 FORMAT(1X,'total prices=',E14.7)
END输入:125 2195234.57.52E+04↙。 输出:total prices= 1.3483512E+07。
第八讲
数据有格式输入、输出
表6-1 可重复编辑符格式 [r]Im[.n] [r]Bm[.n] [r]Om.[n] [r]Zm.[n] [r]Fm.d 名称 整型编辑符 二进制编辑符 八进制编辑符 16进制编辑符 小数型实型编辑符 功能 将整数按指定域宽输入输出 将2进制数按指定域宽输入输出 将8进制数按指定域宽输入输出 将16进制数按指定域宽输入输出 将实数按指定域宽输入输出 输入 √ √ √ √ √ 输出 √ √ √ √ √
[r]Em.d[Ee][r]Dm.d [r]ENm.d[Ee]
指数型实型编辑符双精度实型编辑符 工程计数法编辑符
将实数按指定域宽输入输出将双精度数按指定域宽输入输出 将实数按工程计数法输入输出
√√ √
√√ √
[r]ESm.d[Ee][r]A[m] [r]Lm [r]Gm.d[Ee] 第八讲
科学计数法编辑符字符型编辑符 逻辑型编辑符 通用编辑符
将实数按科学计数法输入输出将字符串按指定域宽输入输出 将逻辑值按指定域宽输入输出 将任意类型数据按域宽输入输出
√√ √ √
√√ √ √
数据有格式输入、输出
表6-2 不可重复编辑符格式 ‘ √ ’或“ ” 名称 撇号编辑符 功能 输入 输出 将字符串输出
nHQ Tc, TLc, TRc
H编辑符字符计数编辑符 位置编辑符
将H后n个字符输出获到输入记录中剩余字符数 指定输入输出记录中的位置 √ √
√
√
nXSP, SS, S / \ $ : kP BN, BZ 第八讲
位置编辑符+号编辑符 斜杠编辑符 反斜杠编辑符 $编辑符 格式控制编辑符 比例因子编辑符 空格替代编辑符 数据有格式输入、输出
指定输入输出记录中的位置控制+号输出 终止本记录,开始下一记录 下一记录接上一记录输出 下一记录接上一记录输出 无输出数据终止格式控制 设置F和E编辑符指数比例因子 指定数字串中空格意义
√
√√
√
√ √ √ √
√ √
√
8.3 整数有格式输入输出I 编辑符可用于整数的有格式输入输出,一般格式是:
格式 输入
[r]Iw[.m] 其中:r为I编辑符重复次数。
输出
即:[r]Iw[.m]等价于Iw[.m],Iw[.m],…,Iw[.m]。w为整数输入输出域宽,即整数占连续字符个数。 m为输出最少位数。
[.m]项只对整数输出有效,对输入无效。程序示例: INTEGER(2) i,j,k8.3 整数
有格式输入输出
READ(*,100) i,j,k100 FORMAT(I4,2I5) !等价于FORMAT(I4,I5,I5) WRITE(*,"(1X, 'i+j+k=',I5)") i+j+k
END第八讲 数据有格式输入、输出
8.3 整数有格式输入输出
格式 输入
输入数据间可按规定域宽紧密输入,也可用逗号间隔输入,不用空格。 在域宽内,数字前后,数字之间可出现空格,这些空格一般被视为空。 在域宽内,全为空格,输入整数为0。 在域宽内,输入数据不能超出范围,不能是非十进制整数。
输出
I编辑符要求输入表中对应变量的类型一般是整型,否则会产生错误。 示例:
INTEGER(2) i,j,k READ(*,100) i,j,k 100 FORMAT(I4,2I5) END8.3 整数有格式输入输出/输入
!等价于FORMAT(I4,I5,I5)
WRITE(*,"(1X, 3I5)") i,j,k
第八讲
数据有格式输入、输出
8.3 整数有格式输入输出
格式 输入
输入数据: 输入数据间可按规定域宽紧密输入 ,也可用逗号间隔输入,不用空格。 i=1234,j=12345,k=-6789 1234123456789↙ 在域宽内 ,数字前后 ,数字之间可出现空格 ,这些空格一般被视为空。 。 i=12,j=12345,k=-6789 12,123456789↙ 在域宽内 ,全为空格 ,输入整数为0 , i=12,j=34,k=5678 在域宽内 ,输入数据不能超出范围 不能是非十进制整数。 12,34, 56789↙
i、j、k 值:
输出
I编辑符要求输入表中对应变量的类型一般是整型 ,否则会产生错误。 i=1234,j=0,k=5678 1234, 56789↙ 示例: 1 2 123 - 78 ↙8.3 整数有格式输入输出/输入/示例 INTEGER(2) i,j,k 1 ,12 34 -6789↙ READ 10,i,j,k 1 ,12 3456789↙
i=12,j=123,k=-78 i=1,j=1234,k=-678 产生数据转换错误
10
!等价于FORMAT(I4,I5,I5) i=12,j=0,k=-78 PRINT "(1X, 'i+j+k=',I5)",i+j+k 产生数据转换错误,超出最大范围 123454321-6789↙ END 产生数据转换错误,非十进制整数。 2#1112345-6789↙ 1 2 - 78 ↙
FORMAT(I4,2I5)
1234543.2-6789↙
产生数据转换错误,域宽内为实数。
第八讲
数据有格式输入、输出
8.3 整数有格式输入输出 若域宽等于整数位数,则在域宽内输出该整数,与后一数据无空格间隔。
格式 输入
若域宽大于整数位数,则在域宽内按右对齐输出该整数,前补空格。 若域宽小于整数位数,则表明域宽不足,无法输出数据,域宽内填充
“*”。 对于Iw.m格式,m表示输出最小位数。位数小于m,补前导0至m位。 示例:
输出
Integer I,j,k READ(*,*) i,j,k 8.3 整数有格式输入输出/输出 200 FORMAT(1X, 'i=',I4, 'j=',I4, 'k=',I4) WRITE(*,200) i,j,k 输入: END 1234,-123,4567↙ 10,-12,1234↙ 12345,-12,1234↙
输出:
i=1234j=-123k=4567 i= 10j= -12k=1234
i=****j= -12k=1234i= 008j=-012k=1234
8,-12,1234↙
第八讲
数据有格式输入、输出
8.4 实数有格式输入输出
格式F 输出F
F 编辑符可用于小数型实数的有格式输入输出,一般格式是:
[r]Fw.d其中:r为F编辑符重复次数。 即:[r]Fw.d 等价于Fw.d,Fw.d,…,Fw.d。
格式E输入E 输出E
w为小数型实数输入输出域宽,即实数占连续字符个数。8.4 实数有格式输入输出 d为小数位数。对于输入 ,无小数点,小数点由d确定,有小数 点,小数点由域宽内实际位置确定。对于输出,输出数据域 宽包括一个小数点。
格式D
格式EN
格式ES
程序示例:READ(*,*) a,b WRITE(*,10) a,b 10 FORMAT(1X,'a=',F7.3,'b=',F7.3) END
第八讲
数据有格式输入、输出
8.4 实数有格式输入输出
对正数,若w=t+d+1,对负数,若w=t+d+2,且d=s,则在域宽内输出该实数。 对正数,若w=t+d+1,对负数,若w=t+d+2,且d>s,则在域宽内左对齐输出 该实数,小数部分后续补d-s个0。 对正数,若w=t+d+1,对负数,若w=t+d+2,且d<s,则在域宽内左对齐输出 该实数,小数部分保留d位,多余部分按“四舍五入”处理 。 对正数,若w>t+d+1,对负数,若w>t+d+2,则在域宽内右对齐输出该实数, 整数前补w-(t+d+1)或w-(t+d+2)个空格,小数部分按前面3种情况处理, 占d位 。
格式F 输出F
格式E输入E 输出E
对正数,若w<t+d+1,对负数,若w<t+d+2,则域宽不足,在域宽内填充 8.4 实数有格式输入输出/输出F “*”。 输出: 格式EN 示例: 输入: a=125.511b=-12.233 125.511,12.233↙ READ(*,*) a,b 格式ES a=125.500b=-12.230 125.5,12.23↙a,b WRITE(*,10) 格式D a=125.523b=-12.234 125.5234,12.233567↙ 10 FORMAT(1X,'a=',F7.3,'b=',F7.3) 1.234, a= 1.234b= -2.234 END 2.233567↙ 1111.23,-112.23↙ a=*******b=******* 设:输出数据的整数部分位数为 t,小数部分位数为 s。
第八讲
数据有格式输入、输出
8.4 实数有格式输入输出
格式F 输出F
E 编辑符可用于指数型实数的有格式输入输出,一般格式是:
[r]Ew.d[Ee]其中:r为E编辑符重复次数。 即:[r]Ew.d[Ee] 等价于Ew.d[Ee],Ew.d[Ee],…,Ew.d[Ee]。
格式E输入E 输出E
w为指数型实数输入输出域宽,即实数占连续字符个数。d为小数位数,其含义同F编辑符。8.4 实数有格式输入输出/格式E
格式D
e为指数位数,缺省为2,不包括E和符号,指数域宽e+2。 程序示例:输入: READ(*,*) a,b 12.543,122.33↙ WRITE(*,10)
格式EN
格式ES
输出: a=.12543E+02b=-.12233E+03
a,b
a=.12500E+02b=-.12230E+03 10 12.5,-FORMAT(1X,'a=',E10.5,'b=',E11.5) 122.3↙ 12.53456,122.3344↙ END a=.12535E+02b=-.12233E+03
第八讲
数据有格式输入、输出
8.4 实数有格式输入输出 对于输入,E编辑符功能类似F编辑符。
格
式F 输出F
在规定域宽内,可按小数型实数输入,也可按指数型实数输入。
示例:
格式E输入E 输出E
READ(*,11) a, b, c 11 FORMAT(E5.2,E8.3,E8.3E3)
WRITE(*,"(1X,'a+b+c=',E12.3)") a+b+cEND8.4 实数有格式输入输出/输入E
格式D
格式EN输入: 123454321E +2123E +12↙
格式ES
a,b,c 值: a=123.45,
b=432.1, c=1.23 1011
第八讲
数据有格式输入、输出
8.4 实数有格式输入输出
对正数,若w=d+5,对负数,若w=d+6,且d=t,则在域宽内输出该实数。 对正数,若w=d+5,对负数,若w=d+6,且d>t,则在域宽内左对齐输出该实 数,小数部分后续补d-t个0。 对正数,若w=d+5,对负数,若w=d+6,且d<t,则在域宽内左对齐输出该实 数,小数部分保留d位,多余部分按“四舍五入”处理 。 对正数,若w>d+5,对负数,若w>d+6,则在域宽内右对齐输出该实数,整 数前补w-(d+5)-1或w-(d+6)-1个空格,小数部分按前面3种情况处理。 对正数,若w<d+5,对负数,若w<d+6,则域宽不足,在域宽内填充“*”。 对双精度实数 ,指数有3位,指数部分的E字母省略,保持3位指数。 8.4 实数有格式输入输出/输出E 示例:
格式F 输出F
格式E输入E 输出E
格式D
格式EN
格式ES
READ(*,*) a,b 输出: 输入: WRITE(*,10) a,b a=.12543E+02b=-.12233E+03 12.543,-122.33↙ 10 FORMAT(1X,'a=',E10.5,'b=',E11.5) a=.12500E+02b=-.12230E+03 12.5,-122.3↙ END 12.53456,-122.3344↙ a=.12535E+02b=-.12233E+03 设:输出实数的有效位数为t。 数据有格式输入、输出
第八讲
8.4 实数有格式输入输出D编辑符用于双精度数据的输出。其一般形式为:
格式F 输出F
[r]Dw.d 其中:r为F编辑符重复次数。 使用方法与E编辑符相仿,只是把字母“E”换成“D”。 程序示例:
格式E输入E 输出E
格式D 格式EN 格式ES
real(8) a,b输入: WRITE(*,10)
8.4 实数有格式输入输出/格式D
READ(*,*) a,b a,b输出: a=.12543D+02b=-.12233D+03 a=.12500D+02b=-.12230D+03 a=.12535D+02b=-.12233D+03
10
12.543,-122.33↙ 12.5,-122.3↙
FORMAT(1X,'a=',D10.5,'b=',D11.5) END
12.53456,-122.3344↙
第八讲
数据有格式输入、输出
8.4 实数有格式输入输出
格式F 输出F
格式E输入E 输出E
格式D 格式EN 格式ES
工程计数法 (EN) 和科学计数法 (ES) 也是 F90 新增的 x=-12345.6789 编辑描述符。 y=0.456789 EN的一般形式为:ENw.d[Ee]。EN和E编辑描述符基 z=7.89123e23 本类似,区别在于 EN输出数据的非指数部分的绝对值 write(*,"(3(1x,en13.5 ))") x,y,z write(*, (3(1x,en13.2e4)) ") x,y,z 强制在 1到" 1000 的范围内,且指数可以被 3整除。包括 write(*,"(3(1x,es13.5 ))") x,y,z 指数的区域的宽度是 w个字符,小数点后 d个字符,指 write(*,"(3(
1x,es13.2e4)) ") x,y,z 数宽度 end e是可选的。8.4 实数有格式输入输出/格式EN/ES
ES的一般形式为:ESw.d[Ee]。它和E编辑描述符也 输出结果如下: 基本类似,区别在于 ES输出数据的非指数部分的绝对 -12.34568E+03 456.58899E-03 789.12303E+21 值强制在 l到10的范围内,而非 0到1的范围。 -12.35E+0003 456.59E-0003E的 789.12E+0021
-1.23457E+04 4.56789E-01 7.89123E+23第八讲 数据有格式输入、输出
-1.23E+0004
4.57E-0001
7.89E+0023
8.5 复数有格式输入输出
概述
复数编辑符是通过两个实型编辑符实现的,第一个对应实部, 第二个对应虚部。 程序示例: COMPLEX c1,c2 READ(*,23) c1,c2 23 FORMAT(F5.2,E5.2,F8.3,E8.3) 8.5 复数有格式输入输出 输入:12345123E24321.5,1234E-1 ↙。 WRITE(*,*) C1 c1和c2值:c1=(123.45,123.0),c2=(4321.5,1.234 10-1)。 WRITE(*,*) C2 输出: WRITE(*,"(1X,'c1+c2=', F7.2,E10.3)") c1+c2 (123.4500,123.0000) END (4321.500,0.1234000) c1+c2=4444.95 0.123E+03。 c1+c2输出首尾无括号,中间无逗号
第八讲
数据有格式输入、输出
8.6 字符串有格式输入输出A 编辑符可用于字符串的有格式输入输出,一般格式是:
格式 输入
[r]A[w] 其中:r为A编辑符重复次数。
输出
即:[r]A[w]等价于A[w],A[w],…,A[w]。w为字符串输入输出域宽,即字符串占连续字符个数。 缺省w,域宽为输入和输出表中对应字符型变量的长度。8.6 字符串有格式输入输出 程序示例:
CHARACTER str1*5,str2*4,str3*3,str4*3 READ(*,24) str1,str2,str3,str4
24
FORMAT(A5,A4,2A3)WRITE(*,*) str1//str2//str3//str4 END
第八讲
数据有格式输入、输出
8.6 字符串有格式输入输出
格式 输入
域宽等于变量长度,按域宽依次截取字符串,赋予变量,不足补空格。 域宽小于变量长度,按域宽依次截取字符串,补足空格后赋于变量。 域宽大于变量长度,按域宽依次截取字符串,取后部字符赋于变量。
输出
s1,s2,s3,s4 值: 输入: 缺省域宽,域宽默认取输入表对应字符型变量长度。 s1='ABCDE',s2='FGHI',s3='JKL',s4='MNO ABCDEFGHIJKLMNO↙ 输入字符串不能加引号。引号、逗号和空格按一般字符对待。 s1='ABCDE',s2='FGHI',s3='JKL',s4='M ' ABCDEFGHIJKLM↙ 示例: ABCDEFGHIJKLMNOPQR↙ s1='ABCDE',s2='FGHI',s3='JKL',s4='MNO
CHARACTER s1*5,s2*4,s3*3,s4*3 FORMAT改写成 FORMAT(4A4) s1='ABCD ',s2='EFGH',s3='JKL',s4='NOP' ABCDEFGHIJKLMNOPQRST↙ READ(*,24) s1,s2,s3,s4 s1='ABCDE',s2='FGHI',s3='JKL',s4='MNO' ABCDEFGHIJKLMNOPQRST↙ 'china','xian','new','pen'↙
8.6 字符串有格式输入输出/输入
24
FORMAT改写成FORMAT(4A)
FORMAT(A5,A4,2A3) END s1="
WRITE(*,*) s1//s2//s3//s4'chin",s2="a',' ",s3="xia",s4="n',"
第八讲
数据有格式输入、输出
正在阅读:
数据有格式输入输出05-22
东亚文化交流史教学大纲12-20
二期反渗透膜离线清洗技术协议04-17
Coreldraw9.0从入门到精通教程06-01
2018年中国互联网约租车市场未来发展前景报告目录06-06
观《正阳门下》有感精选3篇12-11
雷锋精神心得范文103-19
非车险部上半年工作总结04-02
- 教学能力大赛决赛获奖-教学实施报告-(完整图文版)
- 互联网+数据中心行业分析报告
- 2017上海杨浦区高三一模数学试题及答案
- 招商部差旅接待管理制度(4-25)
- 学生游玩安全注意事项
- 学生信息管理系统(文档模板供参考)
- 叉车门架有限元分析及系统设计
- 2014帮助残疾人志愿者服务情况记录
- 叶绿体中色素的提取和分离实验
- 中国食物成分表2020年最新权威完整改进版
- 推动国土资源领域生态文明建设
- 给水管道冲洗和消毒记录
- 计算机软件专业自我评价
- 高中数学必修1-5知识点归纳
- 2018-2022年中国第五代移动通信技术(5G)产业深度分析及发展前景研究报告发展趋势(目录)
- 生产车间巡查制度
- 2018版中国光热发电行业深度研究报告目录
- (通用)2019年中考数学总复习 第一章 第四节 数的开方与二次根式课件
- 2017_2018学年高中语文第二单元第4课说数课件粤教版
- 上市新药Lumateperone(卢美哌隆)合成检索总结报告
- 输出
- 输入
- 格式
- 数据
- 2010版GMP文件目录
- 塑料挤出机的维护与保养
- 2014春节后复工方案
- 2007北京国际钱币博览会钱币(章)精品专场拍卖会成交一览表
- 持续膀胱冲洗护理常规
- 高中英语易混易错单词辨析
- 曲靖招聘网谈大学生求职技能
- 城市轨道交通票务收益安全管理体系
- 08汽车发动机构造与维修A
- 舞台监督及舞台监督的职责
- 2015中考函数第一轮复习复习
- solidworks 应用技巧242例(中)
- 浙江省2012年10月高等教育自学考试中国古代文学史试题
- 手术室数字视频对讲应用系统
- 修改注册码权限正强对木马病毒防范
- 网络营销实训——示范作业
- 最小二乘配置的QR分解解法_鲁铁定
- 2014年中国地方(各省市)财政收入构成_税收收入构成
- 精品 机器装配工艺基础 机械制造
- SWOT分析方法在农业产业发展战略研究中的应用——以湖南农产品加工业发展战略研究为例