導入
レッスン1で見た ADD PRICE TO TOTAL を覚えていますか。COBOLの算術演算は、記号ではなく英単語の命令文として書きます。この章で四則演算のひととおりを押さえましょう。
説明
01 WS-A PIC 9(3) VALUE 10.
01 WS-B PIC 9(3) VALUE 3.
01 WS-RESULT PIC 9(5).
PROCEDURE DIVISION.
ADD WS-A TO WS-B GIVING WS-RESULT.
DISPLAY WS-RESULT.
*> 結果: 00013(値は13。WS-RESULT は PIC 9(5) なので5桁ゼロ詰めで表示される)
SUBTRACT WS-B FROM WS-A GIVING WS-RESULT.
DISPLAY WS-RESULT.
*> 結果: 00007(値は7。10−3)
MULTIPLY WS-A BY WS-B GIVING WS-RESULT.
DISPLAY WS-RESULT.
*> 結果: 00030(値は30。10×3)
DIVIDE WS-A BY WS-B GIVING WS-RESULT.
DISPLAY WS-RESULT.
*> 結果: 00003(値は3。10÷3の商。WS-RESULT に小数桁がないので切り捨て)
四則演算の命令とその基本形は次のとおりです。
| 命令 | 意味 | 書き方の例 |
|---|---|---|
ADD | 足し算 | ADD A TO B … B = B + A(B自体に加算) |
ADD ... GIVING | 足し算の結果を別の変数へ | ADD A TO B GIVING C … C = A + B |
SUBTRACT | 引き算 | SUBTRACT A FROM B … B = B − A |
MULTIPLY | 掛け算 | MULTIPLY A BY B … B = A × B |
DIVIDE | 割り算 | DIVIDE A INTO B … B = B ÷ A |
GIVING を付けない形(例: ADD A TO B)は、計算結果を送り先の変数自身に書き戻す点に注意してください。GIVING を付けると、計算結果を第三の変数に格納できます。
DIVIDE にはさらに、割り算の余りを求める書き方もあります。
DIVIDE WS-A BY WS-B GIVING WS-RESULT REMAINDER WS-REM.
*> WS-RESULT に商、WS-REM に余りが入る
ADD・SUBTRACT・MULTIPLY・DIVIDEはそれぞれ英語の文としてそのまま読めるのが特徴です。次のレッスンで、これらをもっと簡潔にまとめて書ける COMPUTE 文を紹介します。
試すには
ADD と SUBTRACT を使って、消費税込みの合計金額を求める簡単な計算(ADD WS-TAX TO WS-PRICE GIVING WS-TOTAL のような形)を、PICTURE句付きの変数宣言から自分で書いてみましょう。