,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第七章,输入和输出,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,是整型数据允许的最多位数即宽度,例,1:,READ 5,I,J,K,L,5 FORMAT(I3,I5,I4,I4),输入记录,-12-973 214 69,I3 I5 I4 I4,例,2:PRINT 10,I,J,K,L,10 FORMAT(1X,I6,I7,I8,I8),输出记录,:-12 -973 214 69,I6 I7 I8 I9,注,:,若输出数据的实际位数超过所给定宽度时,则产生,溢出,此时将输出满字段宽度的,*,(,随计算机不同,),例,3:PRINT 20,I,J,KK,20 FORMAT(1X,I4,I5,I6),若,I=128,J=7142,K=1234567,输出记录,:,128 7142*,I4 I5 I6,2.F,编辑描述符,格式,:FW.d,功能,:,用于实型数据的描述,说明,:,1.F,说明被编辑的数据为实型,2.W,说明字段的总宽度,3.d,说明小数点占的宽度,例,:PRINT 6,A,B,C,6 FORMAT(1X,F6.2,F6.2,F7.4),若,A=21.1,B=96.32,C=0.46,输出记录,:,21.10 96.32 0.4600,F6.2 F6.2 F7.4,例,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*10,36,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*10,15,C=7.14*10,-10,(3)E,前的,11-4,位从右向左截取,d,的位数,在其前面打小数点,(4),将这值赋给输出变量表列中的第一项以后各项以此类推,.,计算机赋值过程,:,(1),根据,w,取前,11,位字符数字,(2),将,E,后的数字字符作为指数部分,*指数形式输出,指数形式用标准形式输出即输出的整数位为,0,小数点后是一非零的数,说明,:,1.,负号是必需的,正号可任选,2.,小数点前为零,3.Z,1,Z,2,前的符号必需,7.X,1,X,d,是小数位,有效数据从左开始取,d,位,(d+1),位四舍五入,5.Z1Z2,是,00-99,的整数,标准形式,:,0.X,1,X,2,X,d,E,Z,1,Z,2,*指数形式输出,指数形式用标准形式输出即输出的整数位为,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,编辑描述符,格式,:nHh1h2,hn,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.h1h2,hn,是一个长度为,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