5章.式と演算

5.1.N88BASICの演算

数値定数・変数と文字定数・変数との混合演算はできない

演算の優先順位は以下のとおり。また各演算は上の方の実行が優先する。

  1. カッコで囲まれた式
  2. 関数
  3. 算術演算
  4. 関係演算
  5. 論理演算
  1. 算術演算

    演算子内容
    ^指数(べき乗)演算2^16
    -負号-5
    *,/乗算,実数の除算A*5,A/5
    \整数の除算A\10
    MOD整数の剰余(余り)A MOD 2
    +,-加算,減算A+5,A-5

  2. 関係演算

    演算子内容
    =等しいX=Y
    <>,><等しくないX<>Y,X><Y
    <小さいX<Y
    >大きいX>Y
    <=,=<小さいか等しいX<=Y,X=<Y
    >=,=>大きいか等しいX>=Y,X=>Y

  3. 論理演算

    演算子内容
    NOT否定NOT X
    AND論理積X AND Y
    OR論理和X OR Y
    XOR排他的論理和X XOR Y
    IMP包含X IMP Y
    EQV同値X EQV X

  4. 文字列演算

    文字列の連結は(+)を使います。

    1000 A$="abcd":B$="1234"
    1010 C$=A$+B$
    1020 PRINT C$
    
    abcd1234
    

5.2.perlの演算

数値と文字との混合演算はできる(後述)

  1. 算術演算

    演算子内容
    ++,--インクリメント,デクリメント$a++,$a--
    -負号-5
    **指数(べき乗)演算2**16
    *,/,%乗算,実数の除算,整数の剰余(余り)$a * 5,$a / 5,$a % 2
    +,-加算,減算$a + 5,$a - 5

  2. 関係演算(真:1,偽:0)

    数値演算子文字演算子内容
    ==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

  3. 論理演算

    演算子内容
    !,~論理否定,ビット否定!$x,~$x
    <<,>>ビットシフト<<$x,>>$x
    &ビット論理積$x & $y
    |,^ビット論理和,ビット排他的論理和$x | $y,$x ^ $y
    &&論理積$x && $y
    ||論理和$x || $y

  4. 文字列演算

    文字列の連結はピリオド(.)を使います。
    文字列の繰り返しはxを使います。

    $a = "abcd"; $b = "1234";
    $c = $a . $b; #$c = "$a$b";と同じ
    print "$c\n";
    $a = "123" x 3;
    print "$a\n";
    
    abcd1234
    123123123
    
数値演算のとき文字列は10進の数値として扱われます。
文字列は,先頭から空白を除いた数字で始まる部分を数値に換えます。

"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

[HOME]

Copyright (c)1996 GOMASUKE
Since 09/14/1996, Last Updated 09/18/1996