2013-11-20 83 views
-3

我是一名Fortran 77學習者,我是新成員,所以對Fortran知之甚少。 我們的教授給了我們一份功課。我們假設編寫一個計算cos(x ** 2)的程序。 它具有泰勒展開,所以我試着寫一些東西,但它給了我這個錯誤:FORTRAN 77'錯誤:在(1)'不可分類的語句'

term = term*((-1)**i)*x**2*i)/fac(2*i)       
    1 

Error: Unclassifiable statement at (1)

孔程序是:

 PROGRAM COSX_SQUARE 
     IMPLICIT NONE 
     INTEGER x, n, i 
     REAL partial_sum, term 

20  PRINT*, 'INPUT THE DEGREE' 
     READ*, x 
     x = x*180/3.1415 

     PRINT*, 'INPUT THE CORRECTION VALUE ' 
     PRINT*, 'AS A NATURAL NUMBER' 

     READ*, n 

     i= -1 
     term = 1 
     partial_sum = term 

10  i=i+1 
     term = term*((-1)**i)*x**2*i)/fac(2*i) 

     partial_sum = partial_sum + term 

     IF (i .LT. n) THEN 
     GO TO 10 
     ELSE 
     PRINT*, 'COS', x, 'SQUARE IS = ', partial_sum 
     END IF 

     GO TO 20 

     END 

我在哪裏弄錯?而且這個計劃能否運作良好?提前致謝。

+0

錯誤不符合您的源代碼!順便說一句:在你的代碼中有一些錯誤,我認爲這些只是複製和粘貼錯誤! –

+0

我想'fac'是一個返回階乘的外部函數?或者是別的什麼? –

+1

我倒下了這個問題。 OP已經承認所發佈的內容並不能準確代表導致問題的代碼。別浪費我們的時間和你的時間。 –

回答

1

您的表情中缺少一個括號!

它也許應該閱讀:

term = term*(((-1)**i)*x**2*i)/fac(2*i) 
+0

我同意。一旦代碼被糾正以拆分兩個未拆分語句,編譯器也會發現這個錯誤。 –

+0

謝謝,我更正了括號,但現在它給了我這個錯誤:collect2:ld返回1退出狀態 – animetrk

+0

這與一些缺少的庫有關......但是這是一個不同的故事;-)你需要提供更多的細節。但請 - 在新的問題中發佈! –