我正在做一个代码在Fortran的阿基米德近似的Pi。当我在终端中编译代码时,发送Unclassifiable语句错误。
这是代码。
implicit none
real*8 n,P0,P,F,G,H,I,J,pi,L,x
open(10,file='valordepi.out',status='unknown')
P0=2.d0*(2.d0**(0.5d0))
P=P0
do
n=1,100
pi=acos(x)
x=-1
P(n)=P/2.d0**n
F=-P(n)**2.d0
G=(1.d0-F)**0.5d0
H=1.d0-G
I=(2.d0*H)**0.5d0
J=I*2.d0**n
P=J
L=(J-pi)/pi
write(10,*) n,J,L
end do
close(10)
这个想法是检查阿基米德解的近似值,并获得数据来做图形。错误就在我写n= 1100
的那行您好,谢谢您的帮助。
我检查了几次代码,现在我得到了这样的代码。
implicit none
integer n
real*8 P0,P,F,G,H,I,J,pi,L,x
open(10,file='valordepi.out',status='unknown')
P0=2.d0*(2.d0**(0.5d0))
P=P0
x=-1.d0
pi=acos(x)
do n=2,50
P=P/2.d0**n
F=P**2.d0
G=(1.d0-F)**0.5d0
H=1.d0-G
I=(2.d0*H)**0.5d0
J=I*2.d0**n
P=J
L=abs(J-pi)
write(10,*) n,J,L
write(*,*) n,J,L
end do
close(10)
这段代码没有错误,并做了我所要求的。感谢大家的回复。我所犯的错误是n=2,50
不在do
行中。