カテゴリ: COBOL 更新日: 2025/11/04

COBOLのMULTIPLY・DIVIDE文を完全ガイド!初心者でもわかる掛け算と割り算の基本と活用例

MULTIPLY・DIVIDE文の基本と活用例
MULTIPLY・DIVIDE文の基本と活用例

先生と生徒の会話形式で理解しよう

生徒

「先生、COBOLで掛け算や割り算をするにはどうすればいいですか?」

先生

「COBOLでは、掛け算にはMULTIPLY文、割り算にはDIVIDE文を使います。英語の単語の意味そのままで、とてもわかりやすいですよ。」

生徒

「なるほど!でも実際にはどんなふうに書くんですか?」

先生

「それでは、COBOLでの掛け算と割り算の基本的な書き方と注意点を、わかりやすく見ていきましょう。」

1. MULTIPLY文とは?

1. MULTIPLY文とは?
1. MULTIPLY文とは?

COBOLのMULTIPLY文は、掛け算(乗算)を行うための命令です。英語の「multiply(掛ける)」という意味の通り、数値を掛け合わせて結果を変数に格納します。

基本形は次のようになります。


MULTIPLY 数値1 BY 数値2.

これは「数値2に数値1を掛ける」という意味です。つまり「数値2 × 数値1」の計算になります。結果は、BYの後にある変数に上書きされます。

▶ 簡単な例


IDENTIFICATION DIVISION.
PROGRAM-ID. MULTIPLY-SAMPLE.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 PRICE    PIC 9(4) VALUE 120.
01 QUANTITY PIC 9(3) VALUE 3.
PROCEDURE DIVISION.
    MULTIPLY PRICE BY QUANTITY.
    DISPLAY "合計金額は " QUANTITY " 円です。"
    STOP RUN.

合計金額は 360 円です。

このプログラムでは、120 × 3を計算して、QUANTITYに結果の「360」が代入されます。

2. GIVINGを使って結果を別の変数に入れる

2. GIVINGを使って結果を別の変数に入れる
2. GIVINGを使って結果を別の変数に入れる

MULTIPLY文で結果を別の変数に入れたい場合は、GIVINGを使います。これは「結果を〜に与える」という意味です。


MULTIPLY 数値1 BY 数値2 GIVING 結果変数.

▶ 実際の例


IDENTIFICATION DIVISION.
PROGRAM-ID. MULTIPLY-GIVING.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 PRICE    PIC 9(4) VALUE 150.
01 QUANTITY PIC 9(3) VALUE 2.
01 TOTAL    PIC 9(5).
PROCEDURE DIVISION.
    MULTIPLY PRICE BY QUANTITY GIVING TOTAL.
    DISPLAY "合計金額は " TOTAL " 円です。"
    STOP RUN.

合計金額は 300 円です。

GIVINGを使うことで、もとの変数を変更せずに計算結果だけを新しい変数に保存することができます。実務でも安全でおすすめの書き方です。

3. DIVIDE文とは?

3. DIVIDE文とは?
3. DIVIDE文とは?

次に、COBOLのDIVIDE文を使って割り算をしてみましょう。DIVIDEは「divide(割る)」という英語の通り、数値を割る命令です。

基本形は次の通りです。


DIVIDE 数値1 INTO 数値2.

これは「数値2 ÷ 数値1」という意味になります。INTOの前にある数値で割るので、語順に注意しましょう。

▶ 簡単な例


IDENTIFICATION DIVISION.
PROGRAM-ID. DIVIDE-SAMPLE.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 TOTAL   PIC 9(4) VALUE 100.
01 PEOPLE  PIC 9(2) VALUE 5.
PROCEDURE DIVISION.
    DIVIDE PEOPLE INTO TOTAL.
    DISPLAY "一人あたり " TOTAL " 円です。"
    STOP RUN.

一人あたり 20 円です。

このプログラムでは、「100 ÷ 5 = 20」を計算しています。INTOの位置を間違えると結果が逆になってしまうので注意しましょう。

4. DIVIDE文のGIVINGを使う方法

4. DIVIDE文のGIVINGを使う方法
4. DIVIDE文のGIVINGを使う方法

DIVIDE文でも、GIVINGを使うことで結果を別の変数に格納できます。


DIVIDE 数値1 INTO 数値2 GIVING 結果変数.

または、次のように書くと「数値1 ÷ 数値2」の形になります。


DIVIDE 数値1 BY 数値2 GIVING 結果変数.

このように、INTOBYのどちらを使うかで割る方向が変わります。

▶ 実際の例


IDENTIFICATION DIVISION.
PROGRAM-ID. DIVIDE-GIVING.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 TOTAL   PIC 9(4) VALUE 500.
01 PEOPLE  PIC 9(2) VALUE 4.
01 EACH    PIC 9(3).
PROCEDURE DIVISION.
    DIVIDE TOTAL BY PEOPLE GIVING EACH.
    DISPLAY "一人あたり " EACH " 円です。"
    STOP RUN.

一人あたり 125 円です。

DIVIDE文も、GIVINGを使うことで結果を安全に管理できます。

5. 割り算の余りを求める(REMAINDER)

5. 割り算の余りを求める(REMAINDER)
5. 割り算の余りを求める(REMAINDER)

COBOLでは、割り算の余り(あまり)を求めたい場合、REMAINDERを使います。これは「残り」という意味で、割り算の結果の余りを別の変数に格納できます。


DIVIDE 数値1 BY 数値2 GIVING 商変数 REMAINDER 余り変数.

▶ 実際の例


IDENTIFICATION DIVISION.
PROGRAM-ID. DIVIDE-REMAINDER.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 TOTAL     PIC 9(4) VALUE 103.
01 PEOPLE    PIC 9(2) VALUE 10.
01 QUOTIENT  PIC 9(3).
01 REM       PIC 9(2).
PROCEDURE DIVISION.
    DIVIDE TOTAL BY PEOPLE GIVING QUOTIENT REMAINDER REM.
    DISPLAY "一人あたり " QUOTIENT " 個、余りは " REM " 個です。"
    STOP RUN.

一人あたり 10 個、余りは 3 個です。

このようにして、商(割った結果)と余りを同時に求めることができます。

6. MULTIPLY・DIVIDE文を使うときの注意点

6. MULTIPLY・DIVIDE文を使うときの注意点
6. MULTIPLY・DIVIDE文を使うときの注意点

COBOLの数値演算は非常に厳密に管理されています。いくつかの注意点を覚えておきましょう。

① 桁あふれ(オーバーフロー)に注意

結果が変数に入りきらない場合、値が壊れたり、プログラムがエラーになることがあります。PIC句の桁数を十分に確保しておきましょう。

② 小数点を扱うときはVを使う

金額や割合など小数を使いたい場合は、Vを使って小数点位置を定義します。


01 PRICE   PIC 9(3)V9(2) VALUE 12.50.
01 TAX     PIC 9(2)V9(2) VALUE 1.08.
01 RESULT  PIC 9(4)V9(2).
MULTIPLY PRICE BY TAX GIVING RESULT.

これで「12.50 × 1.08 = 13.50」のような小数計算も正しく行えます。

③ INTOとBYを混同しない

DIVIDE文では、「INTO」と「BY」で計算の方向が変わります。INTOは「割られる数 ÷ 割る数」、BYは「割る数 ÷ 割られる数」になります。混同すると結果が全く違ってしまいます。

④ GIVINGを使って安全に結果を保存

元の値を残したいときは、GIVINGで結果を別の変数に入れるようにしましょう。業務プログラムでは、データを壊さない設計がとても大切です。

7. 実務での活用例

7. 実務での活用例
7. 実務での活用例

MULTIPLYDIVIDEは、売上計算・平均値計算・税金の計算などで頻繁に使われます。たとえば「商品の単価×数量=合計金額」「合計÷人数=一人あたり金額」など、日常の計算をそのままプログラムに書けるのがCOBOLの魅力です。

また、COBOLは金融システムや給与計算システムなど、数値の正確さが求められる分野で長く使われてきた言語です。だからこそ、MULTIPLYDIVIDEのような数値演算をしっかり理解することが、COBOLを使いこなす第一歩になります。

カテゴリの一覧へ
新着記事
C#で複数ファイルをまとめて操作する方法(foreach・LINQ)をやさしく解説!
C#のインターフェースとは?クラス設計を柔軟にする基本技術
C#のコンストラクタの役割と使い方!オブジェクト初期化の基本
COBOLでデータベース接続を理解しよう!初心者でもわかる基本の考え方
人気記事
No.1
Java&Spring記事人気No1
C#のpartialクラスとは?初心者でも理解できるクラス分割の基本
No.2
Java&Spring記事人気No2
C#で型を調べる方法!GetType()・typeof演算子の違いと使い方
No.3
Java&Spring記事人気No3
C#の数値型をマスターしよう!int・double・decimalの違いと使い方
No.4
Java&Spring記事人気No4
COBOLのCOPY句の使い方を完全ガイド!初心者でもわかる共通部品の再利用方法