2015-10-19 54 views
3

如何在Prolog中計算球體體積?在Prolog中計算球體積

我有這樣的代碼:

area(R,P):-P is 3.14 * R *R. 
vol(R,P,V):-V is 4/3 * R * area(R,P). 

我得到這樣的錯誤嘗試編譯上面的代碼:

fatal error: unknown operation in arithmetic expression (area/2) 
compilation failed 

什麼的這段代碼是錯的,這是否意味着我可以」在另一箇中使用一個謂詞?我正在使用gprolog

回答

1

你會得到這個錯誤,因爲gnu-prolog不允許添加新的算術函數(除非你重新編譯它的內核)。

無論如何,您可以通過首先計算面積然後使用該面積來計算體積來計算體積。即:

area(R,P):-P is 4.0 * 3.14 * R *R. 

vol(R,V):- 
    area(R,P), 
    V is 1/3 * R * P. 
+2

的Prolog代碼是好的,但在[區域](https://en.wikipedia.org/wiki/Sphere)應該是'4 * PI * R * R' – CapelliC

+0

@CapelliC:謝謝,修正答案以反映適當的區域公式。 – gusbro