整數I,n
a=1
do i=1,n
a=a*i
結束do
結束子程序
程序主!b是精度,即誤差不超過b。
整數I,c
實數::x,b
讀(*,*)x,b
i=1
打電話給cf(我,a)!a是我!用於錯誤判斷,error =/x/* *(n+1)/(n+1)!
if(abs(x)>=1)然後!如果X & gt=1,取的項數越多,誤差越大,所以只取sinx=x,否則分不清什麽時候停止循環。
s=x
否則!如果x
do while((ABS(x))* *(I+1)/a & gt;=b)誤差=/x/**(n+1)/(n+1)!隨著I的增加,項數增加,變得越來越小,所以當誤差小於B時,可以停止循環,達到要求的精度。
i=i+1
致電cf(i+1,a)
結束do
C=i i因為下面的循環變量有I,這裏我們用壹個變量C代替n的最大值I。
s=0!Sum sinx=x-x**3/3!+x**5/5!+...+(-1)* *(n-1)*(x * *(2n-1))/(2n-1)!c是n的最大值,
do i=1,c,2!我每次加2,就是n每次加2。
呼叫cf(i,a)
s = s+(-1)* *(I-1)*(x * *(2 * I-1))/a
結束do
endif
寫(*,*)s
結束程序主程序
試試看。我試過了。請給我點意見。我整個下午都沒有研究我的論文。謝謝妳。
祝您好運