足し算しましょ!

=Perl, =結果


足し算よりご飯だよ”このページでは足し算・引き算・掛け算・割り算、硬くいえば加減乗除(四則演算)についてです。+, -, *, / を演算子と呼びます。Perlでどのようにしてこれら、演算子を扱うか説明していきたいと思っています。

  • 四則演算の演算子
    足し算+
    引き算-
    掛け算*
    割り算/
    Perlだけでなくプログラムでは掛け算や割り算には×や÷は使いませんね。

  • 四則演算式
    簡単な式を書いてみましょう。
    $tashizan = 200 + 50;
    $hikizan = 200 - 50;
    $kakezan = 200 * 50;
    $wari = 200 / 50;
    

    200 + 50 = $tashizan はだめです。
    Perlで =(イコール) は代入を意味しています。右辺の値を左辺に代入するのです。

    $マークを付けると変数をあらわします。ここでは $tashizan としましたが、$ に続く文字は自分の好きなように決めてください(aからzのアルファベットや数字, _(アンダースコア)で表現してください)。他の変数と重複しなければ構いません。
    【→Perl Reference: $

  • 演算結果の表示
    これで式は完成です。でも、これでは折角計算ができても画面に表示ができません。前のページ「画面に文字を表示しよう」で説明した print 文を使って画面に表示させましょう。
    #!/usr/local/bin/perl
    
    $tashizan = 200 + 50;
    $hikizan = 200 - 50;
    $kakezan = 200 * 50;
    $wari = 200 / 50;
    
    print "Content-type: text/html\n\n";
    print "$tashizan<br>\n";
    print "$hikizan\n<br>";
    print "$kakezan\n<br>";
    print "$wari<br>\n";
    
    exit;
    

     CGIを実行しますl_add_1.cgi

      250
      150
      10000
      4
      

  • 浮動小数点
    割り算で、割り切れないときはどうなるでしょうか。
    $wari = 200 / 17;
    

      11.7647058823529
      
      このように浮動小数点で計算されます。

  • ゼロによる除算
    ゼロで割るとエラーとなってしまいます。

  • int
    【→Perl Reference: int
    それでは整数部のみ取り出すにはどうしたらいでしょうか。
    $wari2 = int(200 / 17);
    $wari3 = int(200 / 17 + 0.5);
    
    int は整数部を切り出す関数です。小数点以下を切り捨ててくれます。
    小数点以下四捨五入するには 0.5を加えてから関数intを使います。

    小数点以下2桁で切り捨てるにはこのようにします。
    $wari4 = int(200 / 17 * 100) / 100;
    

    余り(剰余)を求めるには % を使います。
    $wari5 = 200 % 17;
    

    200 % 0 のように、余りをゼロと指定するとエラーになります。

  • 累乗
    ** を使うと累乗の計算になります。5の3乗なら下のようになります。
    $wari6 = 5 ** 3;
    

  • ++, --
    足し算と引き算には特殊な使い方があります。++ は +1, -- は -1 の意味です。
    $i = 1200;
    $i++;
    

    ++ は変数の値に1を加え、-- は変数の値から1を引く意味となります。
    今までの式をまとめておきます。
    #!/usr/local/bin/perl
    
    $wari1 = 200 / 17;
    $wari2 = int(200 / 17);
    $wari3 = int(200 / 17 + 0.5);
    $wari4 = int(200 / 17 * 100) / 100;
    $wari5 = 200 % 17;
    $wari6 = 5 ** 3;
    $i = 1200;
    $i++;
    
    print "Content-type: text/html\n\n";
    print "200 / 17 = $wari1<br>\n";
    print "int(200 / 17) = $wari2<br>\n";
    print "int(200 / 17 + 0.5) = $wari3<br>\n";
    print "int(200 / 17 * 100) / 100 = $wari4<br>\n";
    print "200 % 17 = $wari5<br>\n";
    print "5 ** 3 = $wari6<br>\n";
    print "\$i = 1200<br>\n";
    print "\$i++ = $i<br>\n";
    
    exit;
    

     CGIを実行しますl_add_2.cgi

      200 / 17 = 11.7647058823529
      int(200 / 17) = 11
      int(200 / 17 + 0.5) = 12
      int(200 / 17 * 100) / 100 = 11.76
      200 % 17 = 13
      5 ** 3 = 125
      $i = 1200
      $i++ = 1201


| Back | Coco's Home | ココと Perl で遊びませんか |

Copyright 2001-2002 Coco's Home. All rights reserved.

[PR]sg儿洌H:SV