算術文には,COMPUTE文,ADD文,SUBTRACT文,MULTIPLY文,およびDIVIDE文があります。各文の説明を,次に示します。
なお,例中のtemp,quot,rem-tmp,およびremは,任意の一時的な記憶場所を示します。
COMPUTE文は,算術式の値を一つ以上のデータ項目に収めます。
COMPUTE文による演算の例を次に示します。なお,A~Dは整数項目を表します。
COMPUTE A = B + C. ←BにCを加算し,その結果をAに収める
COMPUTE A = B - C. ←BからCを減算し,その結果をAに収める
COMPUTE A = B * C. ←BにCを乗算し,その結果をAに収める
COMPUTE A = B / C.※ ←BをCで除算し,その結果をAに収める
COMPUTE A = B ** C. ←BをC乗し,その結果をAに収める
COMPUTE A = B / C ←BをCで除算し,その商をAに収める
COMPUTE D = B - C * A ←商Aを使って剰余を求め,Dに収める
ADD文は,幾つかの数字作用対象の和を一つ以上のデータ項目に収めます。
ADD文による演算の例を次に示します。
ADD A TO B
*COMPUTE B = A + B
ADD A B C TO D
*COMPUTE D = A + B + C + D
ADD A B TO C D
*COMPUTE temp = A + B
*COMPUTE C = temp + C
*COMPUTE D = temp + D
ADD A B TO C GIVING D
*COMPUTE D = A + B + C
ADD A B GIVING C D ROUNDED
*COMPUTE temp = A + B
*COMPUTE C = temp
*COMPUTE D ROUNDED = temp
05 A.
10 D1 PIC S9(6).
10 D2 PIC S9(3)V9(2) USAGE COMP.
05 B.
10 D1 PIC S9(5)V9 USAGE COMP.
10 D2 PIC 9(5)V9(5).
:
ADD CORRESPONDING A TO B ROUNDED
* COMPUTE D1 OF B = D1 OF A + D1 OF B
* COMPUTE D2 OF B = D2 OF A + D2 OF B
SUBTRACT文は,幾つかの数字作用対象の和を,一つ以上のデータ項目から減じ,その結果を一つ以上のデータ項目に収めます。
SUBTRACT文による演算の例を次に示します。
SUBTRACT A FROM B
*COMPUTE B = B - A
SUBTRACT A B C FROM D
*COMPUTE D = D - (A + B + C)
SUBTRACT A B FROM C D
*COMPUTE temp = A + B
*COMPUTE C = C - temp
*COMPUTE D = D - temp
SUBTRACT A FROM B GIVING C
*COMPUTE C = B - A
SUBTRACT A B C FROM D GIVING E
*COMPUTE E = D - (A + B + C)
SUBTRACT A B FROM C GIVING D E ROUNDED
*COMPUTE temp = C - (A + B)
*COMPUTE D = temp
*COMPUTE E ROUNDED = temp
05 A.
10 D1 PIC S9(6).
10 D2 PIC S9(3)V9(2) USAGE COMP.
05 B.
10 D1 PIC S9(5)V9 USAGE COMP.
10 D2 PIC 9(5)V9(5).
:
SUBTRACT CORRESPONDING A FROM B
*COMPUTE D1 OF B = D1 OF B - D1 OF A
*COMPUTE D2 OF B = D2 OF B - D2 OF A
MULTIPLY文は,数字作用対象同士の積を計算し,その結果を一つ以上のデータ項目に収めます。
MULTIPLY文による演算の例を次に示します。
MULTIPLY A BY B ROUNDED C D
*COMPUTE temp = A
*COMPUTE B ROUNDED = temp * B
*COMPUTE C = temp * C
*COMPUTE D = temp * D
MULTIPLY A BY B GIVING C D ROUNDED E
*COMPUTE temp = A * B
*COMPUTE C = temp
*COMPUTE D ROUNDED = temp
*COMPUTE E = temp
DIVIDE文は,一つの作用対象をほかの数字作用対象で割り,その商と剰余を一つ以上のデータ項目に収めます。
DIVIDE文による演算の例を次に示します。
DIVIDE A INTO B ROUNDED A C
*COMPUTE temp = A
*COMPUTE B ROUNDED = B / temp
*COMPUTE A = A / temp
*COMPUTE C = C / temp
DIVIDE A INTO B GIVING C D ROUNDED
*COMPUTE temp = B / A
*COMPUTE C = temp
*COMPUTE D ROUNDED = temp
DIVIDE A BY B GIVING C D ROUNDED
*COMPUTE temp = A / B
*COMPUTE C = temp
*COMPUTE D ROUNDED = temp
DIVIDE A INTO B GIVING C ROUNDED REMAINDER D
*COMPUTE quot = B / A
*COMPUTE rem-tmp = quot.
*COMPUTE rem = B - A * rem-tmp.
*COMPUTE C ROUNDED = quot
*COMPUTE D = rem
DIVIDE A BY B GIVING C ROUNDED REMAINDER D
*COMPUTE quot = A / B
*COMPUTE rem = A - B * quot
*COMPUTE C ROUNDED = quot
*COMPUTE D = rem