Boolean OperatorsJ

print

ブール演算子


 条件付き分岐では真偽の判定が必要になりますが、これに関する演算がブール演算です。この節では、ブール演算について解説します。

挿入演算子

等しい: <expr1> == <expr2>



説明: この演算子は、2つの式の評価結果が等しいかどうかを調べます。演算の結果は true または false です。


等しくない: <expr1> != <expr2>



説明: この演算子は、2つの式の評価結果が等しくないかどうかを調べます。演算の結果は true または false です。 == の否定です。


より大: <expr1> > <expr2>



説明: この演算子は、式 が、式 より大きい かどうかを調べ、 値を返します。比較は2つのものだけが行えます。ともに 実数であれば、通常の大小関係です。ともに 文字列であれば、辞書順に比較します。 それ以外は(比較できない値の場合) ___ が返されます。



より小: <expr1> < <expr2>




説明: この演算子は より小 であることを除けば > と同じです。


大きいか等しい: <expr1> >= <expr2>



説明: この演算子は 大きいか等しい であることを除けば > と同じです。


小さいか等しい: <expr1> <= <expr2>



説明: この演算子は 小さいか等しい であることを除けば > と同じです。



ファジー(あいまい)な比較 ~==, ~!=, ~<, ~>, ~>=, ~<= :


説明: CindyScript は、比較を ファジー(あいまい) におこなう演算子を持っています。この演算子では、条件がεの限界内かどうかを調べます。したがって、 a~==0 は、値 a から -ε+の範囲にあるかどうかを調べます。 小さな値 ε は -+0.0000000001に設定されます。この演算子は、数値計算における誤差を吸収するのに時々役に立ちます。たとえば、多くの表計算ソフトなどでは、8.2ー7.2 の値に誤差があり、if(8.2-7.2 >=1 , A, B ) という判断が正しくできません。Cinderellaでも同様ですが、このようなとき、if(8.2-7.2 ~>=1 , A, B ) とすると正しく実行できます。

ファジー演算子の正確な意味は次の図から読み取れるでしょう。ここでは、演算子が真であると評価する b の値の範囲を赤で表示しています。





論理積: <bool1> & <bool2>



説明: 2つのブール値の 論理積 は次の真理表で定義されます。
ABA & B
falsefalsefalse
falsetruefalse
truefalsefalse
truetruetrue


2つの引数のうちひとつでもブール表現でない場合は、演算子は___を返します。



論理和: <bool1> % <bool2>




説明: 2つのブール値の 論理和 は次の真理表で定義されます。

ABA % B
falsefalsefalse
falsetruetrue
truefalsetrue
truetruetrue


2つの引数のうちひとつでもブール表現でない場合は、演算子は___を返します。



否定: !<bool>




説明: 1つのブール値の 否定 は次の真理表で定義されます。

A!A
falsetrue
truefalse


引数がブール表現でない場合は、演算子は___を返します。




関数型演算子



論理積: and(<bool1>,<bool2>)



説明: and(x,y)x & yと同等です。




論理和: or(<bool1>,<bool2>)



説明: or(x,y)x % yと同等です。




否定: not(<bool>)



説明: not(x)!xと同等です。




排他的論理和: xor(<bool1>,<bool2>)



説明: 2つのブール値の 排他的論理和 は次の真理表で定義されます。

ABxor(A,B)
falsefalsefalse
falsetruetrue
truefalsetrue
truetruefalse


2つの引数のうちひとつでもブール表現でない場合は、演算子は___を返します。




型の判定


次の関数は、式が特定の型であるかどうかを調べます。これらの関数は、入力値の型に依存する関数を定義する際に重要です。さらに、プログラム内において、引数の型を確かめられるのでデバッグに有効です。





整数か: isinteger(<expr>)



説明: この関数は <expr> が整数かどうかを調べます。




実数か: isreal(<expr>)



説明: この関数は <expr> が実数かどうかを調べます。 なお、整数は実数です。




複素数か: iscomplex(<expr>)



説明: この関数は<expr> iが複素数かどうかを調べます。 なお、実数は複素数でもあります。





偶数か: iseven(<expr>)



説明: この関数は <expr> が偶数かどうかを調べます。




奇数か: isodd(<expr>)



説明: この関数は <expr> が奇数かどうかを調べます。




リストか: islist(<expr>)



説明: この関数は <expr> がリストかどうかを調べます。




行列か: ismatrix(<expr>)



説明: この関数は <expr> が行列かどうかを調べます。 これは、リストの成分が、すべて同じ長さのリストになっているかを意味します。もし n 個の成分が m の長さであれば n × m 行列です。




数ベクトルか: isnumbervector(<expr>)



説明: この関数は <expr>が、すべて数(整数、実数または複素数)からなるベクトルかどうかを調べます。



数の行列か: isnumbermatrix(<expr>)



説明: この関数は <expr>が、成分がすべて数(整数、実数または複素数)の行列かどうかを調べます。




文字列か: isstring(<expr>)



説明: この関数は <expr> が文字列かどうかを調べます。




幾何学要素か: isgeometric(<expr>)



説明: この関数は <expr> が幾何学要素かどうかを調べます。




選択されているか: isselected(<expr>)



説明: この関数は <expr> が選択された幾何学要素かどうかを調べます。




点か: ispoint(<expr>)



説明: この関数は <expr> が幾何の点かどうかを調べます。




直線か: isline(<expr>)



説明: この関数は <expr> が幾何の直線かどうかを調べます。




円か: iscircle(<expr>)



説明: この関数は <expr> が幾何の円かどうかを調べます。




円錐曲線か: isconic(<expr>)



説明: この関数は <expr> が幾何の円錐曲線かどうかを調べます。




質点か: ismass(<expr>)



説明: この関数は <expr>CindyLab の質点かどうかを調べます。




恒星か: issun(<expr>)



説明: この関数は <expr>CindyLab の恒星かどうかを調べます。




バネか: isspring(<expr>)



説明: この関数は <expr>CindyLab のバネかどうかを調べます。




未定義要素か: isundefined(<expr>)



説明: この関数は <expr> が未定義要素 (___)を返すかどうかを調べます。


Contributors to this page: Akira Iritani and Kortenkamp .
Page last modified on Monday 05 of March, 2012 [09:20:03 UTC] by Akira Iritani.

The content on this page is licensed under the terms of the License.


Menu