5.2.2 算術文
算術文には,COMPUTE文,ADD文,SUBTRACT文,MULTIPLY文,およびDIVIDE文があります。各文の説明を,次に示します。
なお,例中のtemp,quot,rem-tmp,およびremは,任意の一時的な記憶場所を示します。
(1) COMPUTE文
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文を組み合わせます。
COMPUTE A = B / C ←BをCで除算し,その商をAに収める COMPUTE D = B - C * A ←商Aを使って剰余を求め,Dに収める
(2) ADD文
ADD文は,幾つかの数字作用対象の和を一つ以上のデータ項目に収めます。
ADD文による演算の例を次に示します。
- (例1)
-
ADD文は,続く注記行のCOMPUTE文と同じです。
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
- (例2)
-
ADD文は,続く注記行のCOMPUTE文と同じです。
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
- (例3)
-
ADD文は,続く注記行の二つのCOMPUTE文を合わせたものと同じです。
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
(3) SUBTRACT文
SUBTRACT文は,幾つかの数字作用対象の和を,一つ以上のデータ項目から減じ,その結果を一つ以上のデータ項目に収めます。
SUBTRACT文による演算の例を次に示します。
- (例1)
-
SUBTRACT文は,続く注記行のCOMPUTE文と同じです。
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
- (例2)
-
SUBTRACT文は,続く注記行のCOMPUTE文と同じです。
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
- (例3)
-
SUBTRACT文は,続く注記行の二つのCOMPUTE文を合わせたものと同じです。
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
(4) MULTIPLY文
MULTIPLY文は,数字作用対象同士の積を計算し,その結果を一つ以上のデータ項目に収めます。
MULTIPLY文による演算の例を次に示します。
- (例1)
-
MULTIPLY文は,続く四つのCOMPUTE文を合わせたものと同じです。
MULTIPLY A BY B ROUNDED C D *COMPUTE temp = A *COMPUTE B ROUNDED = temp * B *COMPUTE C = temp * C *COMPUTE D = temp * D
- (例2)
-
MULTIPLY文は,続く四つのCOMPUTE文を合わせたものと同じです。
MULTIPLY A BY B GIVING C D ROUNDED E *COMPUTE temp = A * B *COMPUTE C = temp *COMPUTE D ROUNDED = temp *COMPUTE E = temp
(5) DIVIDE文
DIVIDE文は,一つの作用対象をほかの数字作用対象で割り,その商と剰余を一つ以上のデータ項目に収めます。
DIVIDE文による演算の例を次に示します。
- (例1)
-
DIVIDE文は,続く注記行のCOMPUTE文の組と同じです。
DIVIDE A INTO B ROUNDED A C *COMPUTE temp = A *COMPUTE B ROUNDED = B / temp *COMPUTE A = A / temp *COMPUTE C = C / temp
- (例2)
-
DIVIDE文は,続く注記行のCOMPUTE文と同じです。
DIVIDE A INTO B GIVING C D ROUNDED *COMPUTE temp = B / A *COMPUTE C = temp *COMPUTE D ROUNDED = temp
- (例3)
-
DIVIDE文は,続く注記行のCOMPUTE文と同じです。
DIVIDE A BY B GIVING C D ROUNDED *COMPUTE temp = A / B *COMPUTE C = temp *COMPUTE D ROUNDED = temp
- (例4)
-
DIVIDE文は,続く注記行のCOMPUTE文の組と同じです。
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
- (例5)
-
DIVIDE文は,続く注記行のCOMPUTE文と同じです。
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