COBOLでプログラムを書いていると、「数値を足したい」場面は思ったよりも早くやってきます。
そんなとき登場するのが、COBOLの算術命令 ADD(アド)。でも、書き方が少し独特で、「ADD TO」「ADD GIVING」など、初心者にはちょっとややこしく感じるかもしれません。
「ただ足すだけなのに、なぜ2種類あるの?」
そんなモヤモヤを、この記事でスッキリさせましょう。
COBOL初心者でも安心。意味・使い方・注意点まで、ゆるっと解説します。読み終える頃には、ADD命令が“こわくない存在”になっているかもしれません。
この記事で学べること
・ADD命令の基本構文と使い方
・「ADD TO」と「ADD GIVING」の違い
・エラーを防ぐためのポイント
・よくある失敗例とその回避法
・実行結果がひと目でわかるサンプルプログラム
ちょっとしたコツを知るだけで、COBOLがぐっと身近に感じられますよ。
COBOL 算術命令 ADD とは? ~足し算の基本~
COBOLのADD命令は、名前のとおり「数を足す」ための命令です。
たとえば「100円の商品を3つ買ったら、合計はいくら?」というような場面で、ADD命令が使えます。プログラムの中で「数を増やす」作業があるときは、ほぼ登場します。
COBOLには、計算を行う命令がいくつかありますが、ADDはその中でも最もシンプルな命令のひとつです。
「算術命令」と呼ばれるカテゴリに属していて、加算(足し算)を担当します。
難しく考える必要はありません。「数字をAにBだけ足すよ!」という指示を、COBOLの文法で表すだけです。
ちょっと算数に戻った気分で、楽しく覚えていきましょう。
なぜ COBOL プログラムで ADD 命令が重要なのか?
COBOLは、会社の業務システムや銀行などの基幹処理で今も使われています。
例えば…
- 毎月の売上を合計するとき
- 商品の在庫数を更新するとき
- 交通費や経費をまとめるとき
どれもADD命令がピタッとはまる場面です。
「数字を正しく足す」ことは、ビジネスにおいて超基本。
ミスが許されない計算処理をするには、ADD命令の理解が欠かせません。
最初は戸惑うかもしれませんが、ADD命令を覚えるとできることがどんどん広がります。
COBOLで役立つ技術を身につける第一歩として、しっかりマスターしていきましょう!
COBOL 算術命令 ADD の基本的な書き方(構文)
COBOLのADD命令は、「数を足す」ための命令です。書き方はとてもシンプルです。
基本構文は、次のようになります。
ADD A TO B.
Aは加える数、Bは足される数です。
この命令を実行すると、Aの値がBに加算されて、Bの中身が変わります。
行末にはピリオド(.)が必要です。うっかり忘れると、エラーになります。
予約語(ADD、TOなど)は、大文字で書くのが一般的です。変数(AやB)は、事前に定義しておく必要があります。
では、よく使われる2つの書き方を紹介していきます。
「ADD TO」の使い方と具体例
「ADD TO」は、1つまたは複数の数値を、1つの変数にまとめて足すときに使います。
ADD 5 TO TOTAL.
この場合、TOTALに5を加えます。
変数の値が変化する様子を見てみましょう。
初期状態: TOTAL = 10 実行後 : TOTAL = 15
複数の数を一気に足すこともできます。
ADD A B TO TOTAL.
この命令は、AとBの合計をTOTALに加算します。
TOTALがカウント役として使われるようなイメージです。
「ADD GIVING」の使い方と具体例
「ADD GIVING」は、合計結果を新しい変数に入れたいときに使います。
ADD A B GIVING C.
AとBを足した結果をCに入れます。AとBはそのままで、Cだけが変わるのがポイントです。
A = 10 B = 20 実行後 → C = 30(AとBは変化なし)
元の値を保ったまま計算したいときには、「ADD GIVING」が便利です。
TO形式とのちがいを意識しながら使い分けると、ミスが減ります。
COBOL 算術命令 ADD を使う際の注意点
ADD命令は簡単そうに見えますが、うっかりミスも起こりやすいです。
とくに多いのが、変数の定義ミスと桁あふれ(オーバーフロー)です。
この2つに気をつけておけば、安心して使えます。
データ項目(変数)の定義に注意しよう
足し算をするには、変数が数値として正しく定義されていなければいけません。
DATA DIVISION で、PICTURE句を使って数値型にしておきましょう。
01 A PIC 9(3). 01 B PIC 9(3).
たとえば、AとBを文字型で定義してしまうと、エラーになります。
01 A PIC X(3). ←これは文字型なので、ADD命令では使えません。
また、結果を入れる変数の桁数が足りないと、正しく計算できません。
結果を格納する変数は、少し余裕をもって定義しておくのがおすすめです。
桁溢れ(オーバーフロー)を防ぐには?
オーバーフローとは、計算結果が変数の上限を超えてしまう状態のことです。
例を見てみましょう。
01 A PIC 99. 01 B PIC 99. 01 C PIC 99. A = 50 B = 60 ADD A TO B.
この場合、Bに60、Aに50なので合計110になります。
でもBは2桁(99)までしか入らないので、オーバーフローが発生します。
結果は「10」になってしまい、100の位が消えます。
大きな数を扱うときは、変数の桁数をしっかり確認することが大事です。
予防策として「ON SIZE ERROR」句を使うこともできます。
ADD A TO B ON SIZE ERROR DISPLAY "オーバーフローしました".
これを入れておくと、桁あふれ時にエラー処理が実行されます。
ミスを防ぎつつ、安心してプログラムを動かすための工夫です。
実践!COBOL 算術命令 ADD のサンプルプログラムここまでの説明を見てきたら、実際に動くCOBOLプログラムで試してみたくなりませんか?
ここでは、ADD TOとADD GIVINGの両方を使ったサンプルを紹介します。
表示も取り入れて、値の変化をしっかり確認できるようにしています。
算術命令「ADD」のサンプルプログラム
IDENTIFICATION DIVISION. PROGRAM-ID. ADD-SAMPLE. DATA DIVISION. WORKING-STORAGE SECTION. 01 NUM1 PIC 9(4) VALUE 100. 01 NUM2 PIC 9(4) VALUE 50. 01 TOTAL-A PIC 9(5) VALUE 0. *> ADD TO用(結果格納) 01 TOTAL-B PIC 9(5) VALUE 0. *> ADD GIVING用(結果格納) PROCEDURE DIVISION. MAIN-PROCEDURE. *> ADD TO の例:NUM1 に NUM2 を加算(結果は NUM1 に格納される) DISPLAY "--- ADD TO START ---". DISPLAY "BEFORE ADD TO: NUM1 = " NUM1. ADD NUM2 TO NUM1. DISPLAY "AFTER ADD TO : NUM1 = " NUM1. DISPLAY "--- ADD TO END ---". DISPLAY " ". *> ADD GIVING の例:NUM1(加算後) と NUM2 を加算し、結果を TOTAL-B に格納 DISPLAY "--- ADD GIVING START ---". DISPLAY "NUM1 = " NUM1 ", NUM2 = " NUM2. ADD NUM1 NUM2 GIVING TOTAL-B. DISPLAY "RESULT (TOTAL-B) = " TOTAL-B. DISPLAY "--- ADD GIVING END ---". STOP RUN.
実行結果
--- ADD TO START --- BEFORE ADD TO: NUM1 = 0100 AFTER ADD TO : NUM1 = 0150 --- ADD TO END --- --- ADD GIVING START --- NUM1 = 0150, NUM2 = 0050 RESULT (TOTAL-B) = 00200 --- ADD GIVING END ---
(※表示の桁数やスペースは処理系によって多少変わる場合があります)
サンプルプログラムの解説
IDENTIFICATION DIVISIONでは、プログラム名を定義しています。
DATA DIVISIONでは、4つの変数を定義しています。
- NUM1:初期値100(4桁)
- NUM2:初期値50(4桁)
- TOTAL-A:ADD TO用(5桁で初期値0)
- TOTAL-B:ADD GIVING用(5桁で初期値0)
次に、PROCEDURE DIVISIONの内容を見ていきましょう。
まず最初の
ADD NUM2 TO NUM1.
ここでNUM1にNUM2の値50を足して、NUM1の値が100から150に変化します。
そのあとに出てくるのが
ADD NUM1 NUM2 GIVING TOTAL-B.
この部分ではNUM1(150)とNUM2(50)を足して、結果(200)をTOTAL-Bに入れるという動作になります。
NUM1やNUM2の値は変化せず、その合計だけがTOTAL-Bに反映されます。
「加算元の値を変えるなら TO」「変えずに合計だけ使いたいなら GIVING」
この違いを体験できる内容になっています。
【まとめ】COBOLの算術命令ADDを使いこなそう
ここまでで、ADD命令の基本と使い方のコツがしっかり掴めたはずです。
- ADD命令はCOBOLで数を足す命令
- 「ADD TO」は、結果を元の変数に上書き
- 「ADD GIVING」は、別の変数に結果を格納
- 変数の定義や桁数に気をつける
- オーバーフロー対策にはON SIZE ERRORも活用できる
基本さえ押さえれば、COBOLの数値処理はぐっと身近になります。
これでADD命令マスターへの第一歩はバッチリ!
どんどん書いて、COBOLプログラミングに慣れていきましょう!
【関連記事】
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。