有懂fortran语言的吗,小弟Fortran结课考试了,要编个小程序,家底上..
希望各位大大能帮帮忙,小弟家当都上了题目如下:编写外部函数子程序,计算SINX=X-(X^3)/3!+(X^5)/5!-(X^7)/7!+......的值,直到最后一项的...
希望各位大大能帮帮忙,小弟家当都上了
题目如下:
编写外部函数子程序,计算SIN X=X -(X^3)/3! + (X^5)/5!-(X^7)/7! +......的值,直到最后一项的绝对值小于10^-6为止。再编写主程序,从键盘读入X,调用该外部函数并输出S的计算结果。
FROM:《fortran95程序设计与数据结构基础教程》天津大学出版社,178页习题3
额 我试了 怎么输入数字没反应... 你试了吗 是不是哪里有点问题啊
输入0,2说什么不是内部文件,就输入1有个结果,0.8XXXXX的
求助啊 高手 展开
题目如下:
编写外部函数子程序,计算SIN X=X -(X^3)/3! + (X^5)/5!-(X^7)/7! +......的值,直到最后一项的绝对值小于10^-6为止。再编写主程序,从键盘读入X,调用该外部函数并输出S的计算结果。
FROM:《fortran95程序设计与数据结构基础教程》天津大学出版社,178页习题3
额 我试了 怎么输入数字没反应... 你试了吗 是不是哪里有点问题啊
输入0,2说什么不是内部文件,就输入1有个结果,0.8XXXXX的
求助啊 高手 展开
展开全部
呵呵,我忘记考虑整型变量范围的问题。程序已改:
program sin_taylor
implicit none
real x,s,sintaylor
read(*,*)x ! 从键盘读入X
s=sintaylor(x) ! 调用外部函数sintaylor
print*,s
pause
end program sin_taylor
!!!!!!!!!!!!!!!!!!!!!!!!!!
real function sintaylor(x)
real eps,term,x
integer i,j
eps=1.e-6
sintaylor=0.
i=1
term=1.
do while (abs(term)>eps) ! 最后一项的绝对值小于10^-6
term=1.
do j=1,i
term=term*x/j
end do
if (mod(i,4)==3) then
term=-term
end if
sintaylor=sintaylor+term
i=i+2
end do
end function sintaylor
program sin_taylor
implicit none
real x,s,sintaylor
read(*,*)x ! 从键盘读入X
s=sintaylor(x) ! 调用外部函数sintaylor
print*,s
pause
end program sin_taylor
!!!!!!!!!!!!!!!!!!!!!!!!!!
real function sintaylor(x)
real eps,term,x
integer i,j
eps=1.e-6
sintaylor=0.
i=1
term=1.
do while (abs(term)>eps) ! 最后一项的绝对值小于10^-6
term=1.
do j=1,i
term=term*x/j
end do
if (mod(i,4)==3) then
term=-term
end if
sintaylor=sintaylor+term
i=i+2
end do
end function sintaylor
展开全部
! 此程序已经通过调试,请放心使用
PROGRAM MAIN
IMPLICIT NONE
REAL :: X,MY_SIN
WRITE(*,*) '请输入 x 的值 :'
READ(*,*) X
WRITE(*,*) 'MY_SIN(X)=', MY_SIN(X)
END PROGRAM
!----------------------------
FUNCTION MY_SIN(X)
REAL :: X,MY_SIN,T,EPS
INTEGER::N
EPS=1.0/10**6
N=1
T=X
MY_SIN=T
DO WHILE(ABS(T)>=EPS)
N=N+2
T=-T*X*X/N/(N-1)
MY_SIN=MY_SIN+T
ENDDO
END FUNCTION MY_SIN
PROGRAM MAIN
IMPLICIT NONE
REAL :: X,MY_SIN
WRITE(*,*) '请输入 x 的值 :'
READ(*,*) X
WRITE(*,*) 'MY_SIN(X)=', MY_SIN(X)
END PROGRAM
!----------------------------
FUNCTION MY_SIN(X)
REAL :: X,MY_SIN,T,EPS
INTEGER::N
EPS=1.0/10**6
N=1
T=X
MY_SIN=T
DO WHILE(ABS(T)>=EPS)
N=N+2
T=-T*X*X/N/(N-1)
MY_SIN=MY_SIN+T
ENDDO
END FUNCTION MY_SIN
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询