2015-10-19 55 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