論理演算子
ブール演算子¶
条件付き分岐では真偽の判定が必要になりますが、これに関する演算がブール演算です。この節では、ブール演算について解説します。
挿入演算子¶
等しい: <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つのブール値の 論理積 は次の真理表で定義されます。
A |
B |
A & B |
|---|---|---|
false |
false |
false |
false |
true |
false |
true |
false |
false |
true |
true |
true |
2つの引数のうちひとつでもブール表現でない場合は、演算子は___を返します。
論理和: <bool1> % <bool2>¶
説明: 2つのブール値の 論理和 は次の真理表で定義されます。
A |
B |
A % B |
|---|---|---|
false |
false |
false |
false |
true |
true |
true |
false |
true |
true |
true |
true |
2つの引数のうちひとつでもブール表現でない場合は、演算子は___を返します。
否定: !<bool>¶
説明: 1つのブール値の 否定 は次の真理表で定義されます。
A |
!A |
|
false |
true |
|
true |
false |
引数がブール表現でない場合は、演算子は___を返します。
関数型演算子¶
論理積: 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つのブール値の 排他的論理和 は次の真理表で定義されます。
A |
B |
xor(A,B) |
|---|---|---|
false |
false |
false |
false |
true |
true |
true |
false |
true |
true |
true |
false |
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> が未定義要素 (___)を返すかどうかを調べます。