Fortran Coder

查看: 4631|回复: 4
打印 上一主题 下一主题

[通用算法] 还是找不出错误,这是用秦九韶算法求多项式解简单程序

[复制链接]

1967

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1370 元
贡献
581 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

楼主
发表于 2016-4-7 08:32:13 | 显示全部楼层
1.请描述你遇到的问题
2.屏幕输入输出,请直接用 * ,而不要用 5 和 6!!!语法并没有规定 5 和 6 的具体含义。
3.你为什么要写入文件再读进来?

1967

帖子

12

主题

5

精华

论坛跑堂

臭石头雪球

F 币
1370 元
贡献
581 点

美女勋章热心勋章星光勋章新人勋章贡献勋章管理勋章帅哥勋章爱心勋章规矩勋章元老勋章水王勋章

沙发
发表于 2016-4-8 09:12:59 | 显示全部楼层
我让你描述你的问题,而不是描述你的需求。我已经知道你要应用秦九昭算法。
我需要知道的是,你遇到的什么问题?是编译错误?运行错误?还是结果不对?如果遇到错误,请给出错误的现象描述或错误提示。这些都是求助的基本信息。

关于你的代码,文件读写为什么要放在函数里呢?多次调用就会多次写入文件,再读文件。你不觉得浪费吗?还有为什么 poly 要调用两次?
poly 已经是单变量的结果了,就不需要再用一个数组来接收了。

以下是我的修改版,简化了很多东西。

[Fortran] 纯文本查看 复制代码
Program mytp16
  implicit none
  integer n , i
  Real(Kind=8) :: x , y
  Real(Kind=8) , allocatable::cf(:)
  write(*,*)'input the nombre n'
  read(*,*)n
  write(*,*)'input the x'
  read(*,*)x
  allocate( cf(0:n) )
  open(15,file='the coefficient of npoly.txt')
  Do i=0,n
    cf(i) = 2.d0 * i + 1.d0
    write(15,*) cf(i)
  End Do
  close(15)    
  y = poly ( cf , x )
  write(*,'("y=",es13.6)') y

contains

  Real(Kind=8) Function poly( cf , x ) result( y )
    integer i , n
    Real(Kind=8) :: cf(0:) , x
    n = size( cf ) - 1
    y = cf(n) * x + cf( n - 1 )
    Do i = 2 , n
      y = y * x + cf(n-i)
    End Do
  End Function poly

End Program mytp16
您需要登录后才可以回帖 登录 | 极速注册

本版积分规则

捐赠本站|Archiver|关于我们 About Us|小黑屋|Fcode ( 京ICP备18005632-2号 )

GMT+8, 2024-5-13 13:24

Powered by Tencent X3.4

© 2013-2024 Tencent

快速回复 返回顶部 返回列表