파이(원주율)을 구하는중에 문제가..ㅠㅠ[fortran]
program pi
implicit double precision(a-h,o-z)
implicit integer*4(i-n)
double precision a(2)
common/seed/iseed
open(unit=10,file='pi.txt')
iseed=irtc()
do i=0, 10000, 500
carea=0.
do j=1, i
a(1)=ranf()*10-5
a(2)=ranf()*10-5
write(*,*) a(1),a(2)
len=length(a(1),a(2))
write(*,*) len
if(len.lt.5) carea=carea+1
enddo
write(10,*) carea
write(10,*) 'pi=', carea*4/i
enddo
stop
end
real function length(a,b)
double precision a,b
length=sqrt(a**2+b**2)
return
end
이렇게 만들어 봤는데요..function을 사용하니까 갑자기 값이 나오지를 않네요..function 사용하지 않고 식을 main 에 바로 쓰면 잘 되는데...왜 이런거죠??
메인 부분에 double
메인 부분에
를 넣어줘야 하고, function의 변수형도 real에서 double precision으로 바꿔줘야겠네요. 위 프로그램대로라면 len은 자동으로 정수형이 됩니다. 그리고 implicit하게 변수형을 정해주는 것은 편리하긴 하지만 추천하지 않습니다.
를 이용하시고 C처럼 일일히 선언해 주는 것이 좋습니다.
--
feel the gravity
feel the gravity
댓글 달기