演算子はデータとデータを結合する記号です。
「1+1」という式があれば「+」が演算子です。
演算子はいくつかの種類があり、用途によって使い分けます。
足し算や引き算などの計算・・・算術演算子
どちらがおおきいか比較・・・関係演算子
変数にデータを代入するための演算子。
右辺のデータを左辺の変数に代入します。
コロンとイコール(:=)で表現、以下の例ではxに右辺の式の結果が代入されます。
例 x:=5*y+20;
算術演算子(+,-,/,*・・・)
整数や実数などの数値を計算するための演算子です。
演算子 | 意味 | 使用例 | 結果 | 備考 |
+ | 加算 | 2+5 | 7 | |
- | 減算 | 8-6 | 2 | |
* | 乗算 | 6*8 | 48 | |
**又は^ | 指数演算 | 9^2 | 81 | |
/ | 除算 | 1.5/2 | 0.75 | 実数のみ |
DIV | 除算の商 | 20DIV3 | 6 | 整数のみ |
MOD | 除算の余剰 | 20MOD3 | 2 | 整数のみ |
※除算は、実数(REAL型の変数)同士のみに使う事ができます。
また除算の商・余剰は整数(INTEGER、LONGINT)でのみ使う事ができます。
演算の優先順位
データと演算子は連続して並べることができます。
その場合、演算子の持つ優先順位によって計算の順番が決まります。
1位 ** ^
2位 / * DIV MOD
3位 + -
例 1+2*5+8/4 → 1+10+2 = 13
同じ順位の場合左から順に計算されます。
()括弧を使うと優先順位を無視して括弧内から計算されます。
例 (1+2)*(5+8)/4 → 3*13/4 = 9.75
論理値(BOOLEAN型)を計算するための演算子です。
AND 2つの論理値がともに「TRUE」の場合にのみ結果が「TRUE」になります。
値 1 | 値 2 | 結 果 |
FALSE | FALSE | FALSE |
FALSE | TRUE | FALSE |
TRUE | FALSE | FALSE |
TRUE | TRUE | TRUE |
OR 2つの論理値のどちらかが「TRUE」の場合に結果が「TRUE」になります。
値 1 | 値 2 | 結 果 |
FALSE | FALSE | FALSE |
FALSE | TRUE | TRUE |
TRUE | FALSE | TRUE |
TRUE | TRUE | TRUE |
& 2つの論理値がともに「TRUE」の場合にのみ結果が「TRUE」になります。
演算の結果は「AND」と一緒ですが、「&」を使うと、最初の論理値を評価した時点で結果がわかった場合、そこで計算が打ち切られます。
たとえば、
「Value1」&「Value2」のとき「Value1」がFALSEの場合「Value2」がTRUE・FALSEどちらでも結果はFALSEになるので、「Value2」の評価を行わずに計算を打ち切ります。
¦ 2つの論理値のどちらかが「TRUE」の場合に結果が「TRUE」になります。
上記の「&」と同仕様。
NOT 論理値を反転させます。
計算の優先順位
算術演算子と同様 データと演算子は連続して並べる事ができます。
その場合、演算子の持つ優先順位によって計算の順番が決まります。
1位 NOT
2位 AND &
3位 OR ¦
同じ順位の場合左から順に計算されます。
()括弧を使うと優先順位を無視して括弧内から計算されます。
2つの値を比較するための演算子です。
条件式(IF THEN FLSE文)やBOOLEAN型変数への代入の時に使います。
演算子 | 意味 | 使用例 | 例の結果 |
= | 等しい | a=b | aとbは等しい |
<> | 等しくない | a<>b | aとbは等しくない |
< | 小さい | a<b | aはbより小さい |
> | 大きい | a>b | aはbより大きい |
<= | 小さいか等しい | a<=b | aはbより小さいか等しい |
>= | 大きいか等しい | a>=b | aはbより大きいか等しい |
関係演算子の対象となる値の型は 数値ならば整数と実数が混在してもかまわない。
数値と論理値 数値と文字列 の 比較はできない。
悪い例
TRUE<20 論理値と数値は比較できない
150>='100' 数値と文字列は 比較できない
論理値の比較
FALSEかTRUEどちらしかもたない論理値は TRUEをFALSEよりも大きい値として比較します。??
FALSEを0、TRUEを1 として置き換えてみるとわかりやすいでしょう?
文字列の比較
数値や論理値は一目で比較できますが、文字列は以下の順番でどちらかが大きい値として判断します。
1 2つの文字列の最初の文字を取り出す。
2 2つの文字列をASCIIコードで比較し、値の大きい方の文字列を大きいと評価する。
3 2つの文字列のASCIIコードが同じならば 次の文字を比較する。
4 一方の文字列が終わりに達したら その文字列は他方より小さいと評価する。
5 両方の文字列が終わりに達したら 2つの文字列は等しいと評価する。