K-Prolog Compiler Version 6.0

算術演算
算術演算は、算術演算を行う述語の引数として、算術式が現れたときに行わ
れます。算術演算の結果は、必ず整数または浮動小数点数になりますが、その
値を算術式の値と呼ぶことにします。
算術演算が行われる述語は、以下で述べる2引数述語、
is、
=:=、
=\=、
=/=、
<、
=<、
>、
>=
と、前述の入出力関係の述語の一部で引
数として値が整数になる算術式が書ける場合の2種類です。
算術式の評価の途中でエラーが発生した場合は、次のエラーをシグナルします。
- 2
- 不正算術式
- 3
- ゼロ除算
次の形の項が算術式です。以下、X、Y等は算術式とします。[]の中は、
評価した結果の値の型を表します。[-]は、その式のX、Y等がすべて整数
ならば、値も整数であり、そうでなければ、値は浮動小数点数であることを表
します。
また、小整数とは、32ビットで表せる整数を意味するものとします。
- 整数
- その整数自身の値。[整数]
- 浮動小数点数
- その浮動小数点数自身の値。[浮動小数点数]
-
X + Y
- XとYの値の和。[-]
-
X - Y
- XとYの値の差。[-]
-X
- Xの値の符号を反転した値。[-]
-
X * Y
- XとYの値の積。[-]
-
X / Y
- Xの値をYの値で割った商。[-]
-
X // Y
- Xの値をYの値で割った商。[整数]
-
X rem Y
-
X mod Y
- Xの値をYの値で割った剰余(切捨て)。[-]
-
X ** Y
- XのY乗。[-]
-
X / Y
X and Y - X,Yの値のビットごとの論理積。
X,Yは小整数でなければなりません。[小整数]
-
X / Y
X or Y - X,Yの値のビットごとの論理和。
X,Yは小整数でなければなりません。[小整数]
-
X >< Y
- X,Yの値のビットごとの排他論理和。
X,Yは小整数でなければなりません。[小整数]
-
X
-
~X
- Xの値のビットごとの反転。
X,Yは小整数でなければなりません。[小整数]
-
X << Y
- XをYビット左シフトした値。
X,Yは小整数でなければなりません。[小整数]
-
X >> Y
- XをYビット右シフトした値。
X,Yは小整数でなければなりません。[小整数]
-
[X]
- Xの値。[-]
("A"は、[1333]ですから値は1333です)
-
(X)
- Xの値。[-]
-
toascii(X)
- Xの値が漢字コードならば、ASCIIコードに変換した値です。Xは小整数でなければなりません。[小整数]
-
tokanji(X)
- Xの値が ASCIIコードならば、漢字コードに変換した値です。Xは小整数でなければなりません。[小整数]
-
maxint
- 最大の小整数。[小整数]
-
minint
- 最小の小整数。[小整数]
-
max(X,…,Z)
- X,…,Zの値の最大値。[-]
-
min(X,…,Z)
- X,…,Zの値の最小値。[-]
-
gcd(X,Y)
- X,Yの最大公約数。[-]
-
int(X)
- Xの値を整数化した値。[整数]
-
float(X)
- Xの値を浮動小数点数化した値。[浮動小数点数]
-
ceiling(X)
- Xの値より小さくない最小の整数。[整数]
-
round(X)
- Xの値を丸めた整数。[整数]
-
truncate(X)
- Xの値を切捨てた整数。[整数]
-
floor(X)
- Xの値より大きくない最大の整数。[整数]
-
ceil(X)
- Xの値より小さくない最小の整数。[整数]
-
abs(X)
- Xの絶対値。[-]
-
rand
- 乱数。[小整数]
-
time
- 現在の時刻。[浮動小数点数]
-
pi
- 円周率。[浮動小数点数]
-
e
- 自然対数の底。[浮動小数点数]
-
exp(X)
- Xの指数。[浮動小数点数]
-
log(X)
- Xの自然対数。[浮動小数点数]
-
sqrt(X)
- Xの平方根。[浮動小数点数]
-
sin(X)
- Xの正弦。[浮動小数点数]
-
cos(X)
- Xの余弦。[浮動小数点数]
-
tan(X)
- Xの正接。[浮動小数点数]
-
asin(X)
- Xの逆正弦。[浮動小数点数]
-
acos(X)
- Xの逆余弦。[浮動小数点数]
-
atan(X)
- Xの逆正接。[浮動小数点数]
-
atan2(X,Y)
- Y/Xの逆正接。[浮動小数点数]
-
sinh(X)
- Xの双曲線正弦。[浮動小数点数]
-
cosh(X)
- Xの双曲線余弦。[浮動小数点数]
-
tanh(X)
- Xの双曲線正接。[浮動小数点数]
-
epsilon
- 1.0より大きい最小の数と1.0の差。[浮動小数点数]
[注意]
いずれの場合も、引数の値が変域を外れたり、関数の値が計算できな
いときは、エラー2番をシグナルするか、または意味のない値を返します。
エラーをシグナルできるケースは、matherr()関数をそのOSがサポートしているか
どうかによって違いますので、機種に依存します。
算術演算述語
算術計算と算術式の値の比較を行なう機能が用意されています。
算術計算を行なうにはis/2を使用します。また、値の比較には
=:=、=/=、==、<、=<、>、>=が使用できます。
算術式Xを評価し、その値を Value と単一化します。この述語は、
算術式の値を計算するために用います。
エラー
| instantiation_error |
| type_error |
算術式Xの値がYの値と等しければ成功し、等しくなければ失敗します。
エラー
| instantiation_error |
| type_error |
算術式Xの値がYの値と等しくなければ成功し、等しければ失敗します。
エラー
| instantiation_error |
| type_error |
算術式Xの値がYの値とより小さければ成功し、小さくなければ失敗します。
エラー
| instantiation_error |
| type_error |
算術式Xの値がYの値以下であれば成功し、より大きければ失敗します。
エラー
| instantiation_error |
| type_error |
算術式Xの値がYの値より大きければ成功し、大きくなければ失敗します。
エラー
| instantiation_error |
| type_error |
算術式Xの値がYの値以上ならば成功し、より小さければ失敗します。
エラー
| instantiation_error |
| type_error |
一つ上に戻る
目次に戻る