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

COBOLのCOMPUTE文と算術演算子の基本を完全ガイド!初心者でもわかる数値計算の仕組み

COMPUTE文と算術演算子の基本を解説
COMPUTE文と算術演算子の基本を解説

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

生徒

「先生、COBOLで足し算や引き算をしたいときって、どうやって書くんですか?」

先生

「COBOLでは、COMPUTE(コンピュート)文を使うと、簡単に数値の計算ができますよ。」

生徒

「へえ!なんか英語っぽい単語ですね。どんなふうに使うんですか?」

先生

「では、基本的な使い方から一緒に見ていきましょう。」

1. COMPUTE文とは?

1. COMPUTE文とは?
1. COMPUTE文とは?

COBOLのCOMPUTE文は、数値を計算して変数に代入するための文です。英語の「計算する(compute)」という意味そのままで、電卓のように計算をしてくれる便利な命令です。

例えば、「売上 − 原価 = 利益」のような式をCOBOLで表現するとき、COMPUTE文を使います。プログラミング初心者でも理解しやすい文法で、四則演算(足し算、引き算、掛け算、割り算)が簡単に書けます。

基本的な書き方は次の通りです。


COMPUTE 結果変数 = 式

このの部分に、数値や変数、演算子(+、−、×、÷)を入れて計算します。

2. COMPUTE文の基本的な使い方

2. COMPUTE文の基本的な使い方
2. COMPUTE文の基本的な使い方

では、実際にCOBOLで足し算や掛け算をしてみましょう。以下のサンプルでは、商品の価格と個数を掛け算して合計金額を求めています。


IDENTIFICATION DIVISION.
PROGRAM-ID. COMPUTE-SAMPLE.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 PRICE        PIC 9(4) VALUE 500.
01 QUANTITY     PIC 9(2) VALUE 3.
01 TOTAL        PIC 9(6).
PROCEDURE DIVISION.
    COMPUTE TOTAL = PRICE * QUANTITY
    DISPLAY "合計金額は " TOTAL " 円です。"
    STOP RUN.

合計金額は 1500 円です。

このように、COMPUTE TOTAL = PRICE * QUANTITYの形で書くだけで、掛け算の結果がTOTALに入ります。難しい計算式でも1行で表現できるのがCOMPUTE文の魅力です。

3. 算術演算子(+ − × ÷)の意味を理解しよう

3. 算術演算子(+ − × ÷)の意味を理解しよう
3. 算術演算子(+ − × ÷)の意味を理解しよう

COBOLで使える主な算術演算子(さんじゅつえんざんし)を一覧で見てみましょう。算術演算子とは、「数値を計算するための記号」です。算数の記号と同じなので、初心者でもすぐに覚えられます。

演算子 意味 結果
+足し算5 + 38
-引き算5 - 23
*掛け算4 * 28
/割り算10 / 25

COBOLでは、これらの記号を使って自由に数値を計算できます。また、括弧(かっこ)を使うと計算の順番を変えることも可能です。


COMPUTE RESULT = (5 + 3) * 2

結果:16

このように括弧をつけることで、「5 + 3」を先に計算してから「×2」を行うようになります。もし括弧がないと、掛け算が先に実行されて結果が変わることがあります。算数と同じルールですね。

4. 複数の演算をまとめて行う

4. 複数の演算をまとめて行う
4. 複数の演算をまとめて行う

COMPUTE文では、複雑な計算も一行でまとめて書けます。例えば「売上 = (価格 × 個数) − 割引額」のような計算も簡単にできます。


COMPUTE TOTAL = (PRICE * QUANTITY) - DISCOUNT

このように書くと、括弧の中が先に計算され、最後に割引が引かれます。COBOLのCOMPUTE文は、日常の電卓操作と同じ感覚で使えるのが特徴です。

さらに、計算結果をそのまま表示することもできます。


COMPUTE TOTAL = (PRICE * QUANTITY) - DISCOUNT
DISPLAY "お支払い金額は " TOTAL " 円です。"

お支払い金額は 2700 円です。

5. COMPUTE文とADD・SUBTRACTとの違い

5. COMPUTE文とADD・SUBTRACTとの違い
5. COMPUTE文とADD・SUBTRACTとの違い

COBOLでは、数値を計算する方法としてADD(足し算)、SUBTRACT(引き算)などの専用文もありますが、COMPUTEを使うとそれらを一つにまとめて書けます。

例えば、次の2つの書き方は同じ意味になります。


ADD PRICE TO TOTAL.

COMPUTE TOTAL = TOTAL + PRICE.

COMPUTE文を使うと、複数の演算をまとめて一行で書けるため、可読性(読みやすさ)が高くなります。最近のCOBOLプログラムでは、COMPUTE文のほうがよく使われています。

6. 0で割るとどうなる?エラー処理に注意

6. 0で割るとどうなる?エラー処理に注意
6. 0で割るとどうなる?エラー処理に注意

割り算(/)を使うときに注意が必要なのが、「0で割ってはいけない」というルールです。数学と同じで、0で割ると計算ができません。

COBOLでは、0で割ると「ゼロ除算エラー(Zero Divide)」が発生してプログラムが止まってしまうことがあります。安全に計算するためには、事前に分母が0でないことを確認しておくとよいでしょう。


IF DENOMINATOR NOT = 0
    COMPUTE RESULT = NUMERATOR / DENOMINATOR
    DISPLAY "計算結果:" RESULT
ELSE
    DISPLAY "0では割り算できません。"
END-IF

7. COMPUTE文をマスターすればCOBOLの数値演算は怖くない!

7. COMPUTE文をマスターすればCOBOLの数値演算は怖くない!
7. COMPUTE文をマスターすればCOBOLの数値演算は怖くない!

COMPUTE文は、COBOLの中でも特によく使われる命令のひとつです。業務システムでは売上や税金、在庫数などの計算が多く登場するため、数値演算の基本を理解しておくととても役に立ちます。

「難しい数式を書かなきゃ」と思うかもしれませんが、COBOLのCOMPUTE文は英語の文のように自然な形で書けるのがポイントです。慣れてくると、読みやすくエラーの少ないコードが書けるようになります。

カテゴリの一覧へ
新着記事
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句の使い方を完全ガイド!初心者でもわかる共通部品の再利用方法