COBOLで四則演算・算術式(COMPUTE)を解説!余りと繰上の方法も解説

COBOL-compute

今回は、COMPUTEを使用して演算子を使って計算する方法を説明します。
前回までは「ADD」や「SUBTRACT」など足し算しかできない、引き算しかできないなど、制限の多い方法を説明しました。今回は演算子を演算子を使った計算方法について解説します。
また、累乗・べき乗の方法についても解説します。

COMPUTEの使い方

COMPUTEを使用することで、演算子を使った方法で計算することが可能。もちろん、足し算や引き算、掛け算、割り算などを組み合わせて計算することができるため、より複雑な計算をすることができる。なにより、コードの可読性が良くなるので、計算する際には基本的に「COMPUTE」を使用すると良いと思う。

COMPUTEでは算術式を使用するため、計算する際の優先順位を知っていないと間違った計算結果になる場合がある。今回は優先順位についても同時に解説する。

足し算(加算)

足し算をする際には、演算子「+」を使う。
ADD A TO B.
これを「COMPUTE」で計算すると、以下のようになる

COMPUTE B = A + B.

解説すると「A+B」の計算結果は変数Bに代入される。

異なる変数に計算結果を代入するときは、以下のようにする。

COMPUTE C = A + B.

「ADD」について詳しくはこちら

COBOL足し算ADDCOBOLで加算(足し算)する方法を解説!(GIVING指定についても)

引き算(減算)

引き算をする際には、演算子「-」を使う。
SUBTRACT A FROM B.
これを「COMPUTE」で計算すると、以下のようになる

COMPUTE B = B - A.

解説すると「B-A」の計算結果は変数Bに代入される。

異なる変数に計算結果を代入する時は、以下のようにする。

COMPUTE C = B - A.

「SUBTRACT」について詳しくはこちら

COBOLで引き算COBOLで減算する方法を解説(SUBTRACTで引き算)

掛け算(乗算)

掛け算をする際には、「×」ではなく、演算子「*」を使う。
MULTIPLY A BY B.
これを「COMPUTE」で計算すると、以下のようになる

COMPUTE B = A * B.

解説すると、「A×B」の計算結果は変数Bに代入される。

異なる変数に計算結果を代入すには、以下のようにする。

COMPUTE C = A * B.

「MULTIPLY」について詳しくはこちら

COBOLで掛け算COBOLで乗算(掛け算)する方法について解説する

割り算(除算)

割り算をする際には、「÷」ではなく、演算子「/」を使う。
DIVIDE A INTO B.
これを「COMPUTE」で計算すると、以下のようになる

COMPUTE B = B / A.

解説すると、「B÷A」の計算結果は変数Bに代入される。

異なる変数に計算結果を代入するには、以下のようにする。

COMPUTE C = B / A.

「DIVIDE」について詳しくはこちら

COBOLで割り算COBOLでDIVIDE(割り算)余りの求め方も解説

累乗・べき乗

累乗・べき乗については、「×」を意味する「*」を二連続で記述することで表します。
2の3乗を表すには、「2 ** 3」と記述する。
COBOLですると以下のような感じ

COMPUTE ANSWER = 2 ** 3.

ANSWER変数に「2 ** 3」の計算結果が代入され、累乗・べき乗を計算することができる。

四捨五入

計算結果を四捨五入するには、「ROUNDED」指定をする。

四捨五入する際には、計算結果代入先の変数が整数なのか、少数第一位まであるのかなどによって変化してくる。

COMPUTE C ROUNDED = B + A.

足し算では上記のようになったが、引き算や他の演算子でも、代入先変数の後ろに「ROUNDED」を置けば四捨五入することができる。

四捨五入については下記で説明しています。

四捨五入COBOLの四捨五入の方法を解説する

演算子の優先順位

演算子の優先順位

算術式の中に、カッコがある場合には、カッコ内の部分が優先して計算される。
次に優先されるのは、べき乗「**」、つづいて累乗「×」、除算「/」。最後に加算「+」と減算「-」となる。

演算子の優先順位

例1
A × (B + C)

1位、B + C
2位、A ×

例2
A ** B × C  + (D + E × (F + G))

1位、F + G
2位、E ×
3位、D +
4位、A **
5位、B ×
6位、C +

こんな感じで優先順位が決まっている。
同じ優先順位の演算子の場合には、左から優先されていくことを覚えると良い。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA