SWI-Prolog的算术运算

时间:2024-10-13 21:26:28

Prolog主要不是用于完成数值计算的,因此不应该用它开发包括复杂塥骈橄摆计算的程序。然而算术运算也是Prolog语言的一个方面,而这又随所用的Prolog版本而异。本经验中采用的是SWI-Prolog,支持实数运算,如果读者采用不同的Prolog版本,可能在算术方面会存在差异,特别是对于除法运算。比如,对于具有实数运算的版本,5除以2结果为2.5,而对于只有整数运算的版本结果为2。

SWI-Prolog的算术运算

工具/原料

电脑

SWI-Prolog

算术运算

1、Prolog给用户提供了一些预先定义的运算符,这些运算符可用于完成基本的算术运算,它们是:+ 加 - 减 * 乘 / 除div 整除mod 整数的余数is 令表达式求值

SWI-Prolog的算术运算

2、下面会话实例用于表明Prolog中算术表达式的求解方式 ,仔细研究询问和Prolog对询问的答复后,可使我们进一步了解上述运算符的含义。

SWI-Prolog的算术运算

3、运算符is的目标的一般形式是:对象 is 表达式其中对象是一个简单的Prolog目标,表达式是任意一个有效的算术漉胜衲仰表达式。当Prolog遇到这样一个目标时,算术表达式会被求值,左边的对象例示为计算结果,Prolog以下述法则对算术表达式求值:1.乘、除法的运算优先于加减法,即先完成乘除法的运算;2.优先度相当的运算从左到右求值;3.圆括号可用来改变求值次序,圆括号内的表达式优先求值。下图是运算优先度是一个例子。

SWI-Prolog的算术运算

比较运算

1、Prolog还为用户提供了一些用于比较算术运算值的运算符,它们是:X > Y X大于YX < Y X小于YX >= Y X大于或等于YX =< Y X小于或等于YX = Y X等于YX \= Y X不等于Y

SWI-Prolog的算术运算

2、下图是一小段示例代码,用于判断年龄大小。

SWI-Prolog的算术运算

3、下图是分别执行询问后的运行结果。

SWI-Prolog的算术运算
© 手抄报圈