- 序言教程
- 序言 - 主页
- Prolog - 简介
- Prolog - 环境设置
- Prolog - 你好世界
- Prolog - 基础知识
- Prolog - 关系
- Prolog - 数据对象
- Prolog - 运算符
- 循环与决策
- 连接词和析取词
- Prolog - 列表
- 递归和结构
- Prolog - 回溯
- Prolog - 不同与不同
- Prolog - 输入和输出
- Prolog - 内置谓词
- 树数据结构(案例研究)
- Prolog - 示例
- Prolog - 基本程序
- Prolog - 剪切示例
- 河内塔问题
- Prolog - 链接列表
- 猴子和香蕉问题
- Prolog 有用资源
- Prolog - 快速指南
- Prolog - 有用的资源
- Prolog - 讨论
Prolog - 运算符
在下面的部分中,我们将了解 Prolog 中有哪些不同类型的运算符。比较运算符和算术运算符的类型。
我们还将看到它们与任何其他高级语言运算符有何不同,它们在语法上有何不同,以及它们在工作中有何不同。我们还将看到一些实际演示来了解不同运算符的用法。
比较运算符
比较运算符用于比较两个方程或状态。以下是不同的比较运算符 -
操作员 | 意义 |
---|---|
X > Y | X 大于 Y |
X < Y | X 小于 Y |
X >= Y | X 大于或等于 Y |
X =< Y | X 小于或等于 Y |
X =:= Y | X 和 Y 值相等 |
X =\= Y | X 和 Y 值不相等 |
您可以看到“=<”运算符、“=:=”运算符和“=\=”运算符在语法上与其他语言不同。让我们看一些实际的演示。
例子
| ?- 1+2=:=2+1. yes | ?- 1+2=2+1. no | ?- 1+A=B+2. A = 2 B = 1 yes | ?- 5<10. yes | ?- 5>10. no | ?- 10=\=100. yes
这里我们可以看到 1+2=:=2+1 返回 true,但 1+2=2+1 返回 false。这是因为,第一种情况是检查 1 + 2 的值是否与 2 + 1 相同,另一种情况是检查两个模式 '1+2' 和 '2+1' 是否相同或不是。由于它们不相同,因此返回 no (false)。在 1+A=B+2 的情况下,A 和 B 是两个变量,它们会被自动分配给一些与模式匹配的值。
Prolog 中的算术运算符
算术运算符用于执行算术运算。有几种不同类型的算术运算符,如下所示 -
操作员 | 意义 |
---|---|
+ | 添加 |
- | 减法 |
* | 乘法 |
/ | 分配 |
** | 力量 |
// | 整数除法 |
模组 | 模数 |
让我们看一段实用的代码来了解这些运算符的用法。
程序
calc :- X is 100 + 200,write('100 + 200 is '),write(X),nl, Y is 400 - 150,write('400 - 150 is '),write(Y),nl, Z is 10 * 300,write('10 * 300 is '),write(Z),nl, A is 100 / 30,write('100 / 30 is '),write(A),nl, B is 100 // 30,write('100 // 30 is '),write(B),nl, C is 100 ** 2,write('100 ** 2 is '),write(C),nl, D is 100 mod 30,write('100 mod 30 is '),write(D),nl.
注意- nl 用于创建新行。
输出
| ?- change_directory('D:/TP Prolog/Sample_Codes'). yes | ?- [op_arith]. compiling D:/TP Prolog/Sample_Codes/op_arith.pl for byte code... D:/TP Prolog/Sample_Codes/op_arith.pl compiled, 6 lines read - 2390 bytes written, 11 ms yes | ?- calc. 100 + 200 is 300 400 - 150 is 250 10 * 300 is 3000 100 / 30 is 3.3333333333333335 100 // 30 is 3 100 ** 2 is 10000.0 100 mod 30 is 10 yes | ?-