5.1.N88BASICの演算
数値定数・変数と文字定数・変数との混合演算はできない
演算の優先順位は以下のとおり。また各演算は上の方の実行が優先する。
| 演算子 | 内容 | 例 |
|---|---|---|
| ^ | 指数(べき乗)演算 | 2^16 |
| - | 負号 | -5 |
| *,/ | 乗算,実数の除算 | A*5,A/5 |
| \ | 整数の除算 | A\10 |
| MOD | 整数の剰余(余り) | A MOD 2 |
| +,- | 加算,減算 | A+5,A-5 |
| 演算子 | 内容 | 例 |
|---|---|---|
| = | 等しい | X=Y |
| <>,>< | 等しくない | X<>Y,X><Y |
| < | 小さい | X<Y |
| > | 大きい | X>Y |
| <=,=< | 小さいか等しい | X<=Y,X=<Y |
| >=,=> | 大きいか等しい | X>=Y,X=>Y |
| 演算子 | 内容 | 例 |
|---|---|---|
| NOT | 否定 | NOT X |
| AND | 論理積 | X AND Y |
| OR | 論理和 | X OR Y |
| XOR | 排他的論理和 | X XOR Y |
| IMP | 包含 | X IMP Y |
| EQV | 同値 | X EQV X |
文字列の連結は(+)を使います。
1000 A$="abcd":B$="1234" 1010 C$=A$+B$ 1020 PRINT C$ abcd1234
5.2.perlの演算
数値と文字との混合演算はできる(後述)
| 演算子 | 内容 | 例 |
|---|---|---|
| ++,-- | インクリメント,デクリメント | $a++,$a-- |
| - | 負号 | -5 |
| ** | 指数(べき乗)演算 | 2**16 |
| *,/,% | 乗算,実数の除算,整数の剰余(余り) | $a * 5,$a / 5,$a % 2 |
| +,- | 加算,減算 | $a + 5,$a - 5 |
| 数値演算子 | 文字演算子 | 内容 | 例 |
|---|---|---|---|
| == | eq | 等しい | $x == $y,$x eq $y |
| != | ne | 等しくない | $x != $y,$x ne $y |
| < | lt | 小さい | $x < $y,$x lt $y |
| > | gt | 大きい | $x > $y,$x gt $y |
| <= | le | 小さいか等しい | $x <= $y,$x le $y |
| >= | ge | 大きいか等しい | $x >= $y,$x ge $y |
| 演算子 | 内容 | 例 |
|---|---|---|
| !,~ | 論理否定,ビット否定 | !$x,~$x |
| <<,>> | ビットシフト | <<$x,>>$x |
| & | ビット論理積 | $x & $y |
| |,^ | ビット論理和,ビット排他的論理和 | $x | $y,$x ^ $y |
| && | 論理積 | $x && $y |
| || | 論理和 | $x || $y |
文字列の連結はピリオド(.)を使います。
文字列の繰り返しはxを使います。
$a = "abcd"; $b = "1234"; $c = $a . $b; #$c = "$a$b";と同じ print "$c\n"; $a = "123" x 3; print "$a\n"; abcd1234 123123123
| "123" | 123 |
| " 123" | 123 |
| "12.3abcd" | 12.3 |
| "abcd" | 0 |
| "abcd123" | 0 |
| "1abcd123" | 1 |
"00005"などを"5"に換えるには,0を加えます。
$a = "00005"; print "$a\n"; $a = $a + 0; #$a += 0; print "$a\n"; 00005 5
5.3.標準入出力
N88BASICでは,入力はINPUTとLINE INPUT文,出力はPRINT文です。
1000 INPUT A$,B,C$ 1010 PRINT A$,B,C$ 1020 LINE INPUT A$ 1030 PRINT A$ abc,10,xyz abc 10 xyz Hamamatsu, Japan Hamamatsu, Japan
perlでは,入力は<STDIN>,出力はPRINT文です。
$x = <STDIN>; chop($x); #$xの最後の(0A)を除く ($a,$b,$c) = split(/,/, $x); #,で分離する print "$a*$b*$c\n"; abc,10,xyz abc*10*xyz
Copyright (c)1996 GOMASUKE
Since 09/14/1996, Last Updated 09/18/1996