24小时热门版块排行榜    

查看: 546  |  回复: 3
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

1312758691

新虫 (小有名气)

[求助] 输出格式已有1人参与

程序为:
PROGRAM least_squares_fit
IMPLICIT NONE
! 数据字典,声明常量
INTEGER,PARAMETER :: LU=18  ! I/O unit for disk I/O
! 数据字典,声明变量类型、定义和单位
CHARACTER(len=24) :: filename
INTEGER :: ierror
INTEGER :: n=0
REAL :: slope
REAL :: sum_x=0.
REAL :: sum_x2=0.
REAL :: sum_xy=0.
REAL :: sum_y=0.
REAL :: sum_y2=0.
REAL :: x
REAL :: x_bar
REAL :: y
REAL :: y_bar
REAL :: y_int
! 提示用户输入并获得输入文件名
WRITE (*,1000)
1000 FORMAT (1x,'This program performs a least-squares fit of an ',/,&
             1x,'input data set to a straitght line. Enter the name',/&
                         1x,'of the file containing the input (x,y) pairs: ')
READ (*,1010) filename
1010 FORMAT (A)
! 打开输入文件
OPEN (UNIT=LU,FILE=filename,STATUS='OLD',IOSTAT=ierror )
! 查看OPEN操作是否失败
errorcheck: IF (ierror>0) THEN
            WRITE (*,1020) filename
            1020 FORMAT(1x,'ERROR: File ',A,'does not exist! ')
                        ELSE
                        !如果文件成功打开,就从文件中读取数据对(x,y)。
                        DO
                          READ (LU,*,IOSTAT=ierror) x,y   !获得数据对
              IF (ierror/=0) EXIT
                          n=n+1
                          sum_x=sum_x+x
                          sum_y=sum_y+y
                          sum_x2=sum_x2+x**2
                          sum_xy=sum_xy+x*y
                END DO
                ! 现在计算斜率和截距。
                x_bar=sum_x/real(n)
                y_bar=sum_y/real(n)
                slope=(sum_xy-sum_x*y_bar)/(sum_x2-sum_x*x_bar)
                y_int=y_bar-slope*x_bar
                ! 告知用户
                WRITE (*,1030) slope,y_int,N
                1030 FORMAT ('0','Regression coefficients for the least-squares line:',&
                /,1x,'slope(m)=',F12.3,&
                /,1x,'Intercept(b)=',F12.3,&
                /,1X,'No of points=',I12)
                ! 关闭输入文件并退出。
                CLOSE (UNIT=LU)
END IF errorcheck
END PROGRAM least_squares_fit
运行结果为图片所示,为什么运行后图片箭头所指的“0”还在?这跟“1030 FORMAT ('0','Regression coefficients for the least-squares line:',&
                /,1x,'slope(m)=',F12.3,&
                /,1x,'Intercept(b)=',F12.3,&
                /,1X,'No of points=',I12)”这个语句的意思不符合啊!
不懂,赐教!我用的CVF6.6的编译器!

输出格式
1.jpg
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

1312758691

新虫 (小有名气)

引用回帖:
2楼: Originally posted by baobiao007 at 2014-05-07 16:43:27
直接把0当字符输出了,这有啥奇怪的

在Fortran 控制符中,FORMAT('0',....................)语句中“0”不是表示双行间距么?
3楼2014-05-07 19:26:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 4 个回答

baobiao007

木虫 (职业作家)

中国特色

【答案】应助回帖

感谢参与,应助指数 +1
直接把0当字符输出了,这有啥奇怪的
我同意叔本华的观点,人们投身艺术和科学领域的强烈愿望之一就是逃离痛苦、残酷和枯燥无味的现实生活,逃离自己飘忽不定的七情六欲的桎梏。--爱因斯坦
2楼2014-05-07 16:43:27
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

baobiao007

木虫 (职业作家)

中国特色

引用回帖:
3楼: Originally posted by 1312758691 at 2014-05-07 19:26:39
在Fortran 控制符中,FORMAT('0',....................)语句中“0”不是表示双行间距么?...

用引号括起来就是字符
我同意叔本华的观点,人们投身艺术和科学领域的强烈愿望之一就是逃离痛苦、残酷和枯燥无味的现实生活,逃离自己飘忽不定的七情六欲的桎梏。--爱因斯坦
4楼2014-05-07 19:32:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见