Rational Developer for System z
Enterprise COBOL for z/OS バージョン 4.1 プログラミング・ガイド


算術結果の割り当て (MOVE または COMPUTE)

データ項目に数値を割り当てるときには、MOVE ステートメントではなく COMPUTE ステートメントを使用することを考慮してください。

Move w to z
Compute z = w

上記の例では、ほとんどの場合、2 つのステートメントは同じ効果があります。 ただし、MOVE ステートメントは割り当て時に切り捨てを行います。 DIAGTRUNC コンパイラー・オプションを使用して、数値受け取り側で切り捨てが起こる可能性のある MOVE ステートメントについてコンパイラーが警告を出すように要求することができます。

ただし、実行時に左側の有効数字が失われる場合、COMPUTE ステートメントを使用するとこの条件を検出し、それに対処することができます。COMPUTE ステートメントの ON SIZE ERROR 句を使用すると、コンパイラーはサイズ・オーバーフロー条件を検出するコードを生成します。条件が起こると、ON SIZE ERROR 句内のコードが実行され、z の内容は未変更のままになります。ON SIZE ERROR 句を指定しないと、割り当て時に切り捨てが行われます。 MOVE ステートメントの ON SIZE ERROR サポートはありません。

COMPUTE ステートメントを使用して、算術式 または組み込み関数 の結果をデータ項目に割り当てることもできます。以下に例を示します。

Compute z = y + (x ** 3)
Compute x = Function Max(x y z)

言語環境プログラムの呼び出し可能サービスを使用すれば、日付、時刻、数値その他の計算の結果をデータ項目に割り当てることができます。 言語環境プログラムのサービスは、標準の COBOL CALL ステートメントを介して使用することができ、それらが戻す値は CALL ステートメントのパラメーターに入れて渡されます。 例えば、次のステートメントをコーディングして、データ項目の絶対値を見つけるために言語環境プログラムのサービス CEESIABS を呼び出すことができます。

Call 'CEESIABS' Using Arg, Feedback-code, Result.

この呼び出しの結果、データ項目 Result には、データ項目 Arg の値の絶対値が割り当てられます。データ項目 Feedback-code には、サービスが正常に完了したかどうかを示す戻りコードが入ります。 特定の呼び出し可能サービスの要件に従って、正しい記述を使用してすべてのデータ項目を DATA DIVISION で定義しなければなりません。 上記の例の場合は、データ項目を次のように定義することができます。

77 Arg            Pic s9(9)  Binary.
77 Feedback-code  Pic x(12)  Display.
77 Result         Pic s9(9)  Binary.

関連参照
DIAGTRUNC  
組み込み関数 (Enterprise COBOL 言語解説書)  
言語環境プログラム プログラミング・リファレンス (呼び出し可能サービス)


ご利用条件 | フィードバック

このインフォメーション・センターでは Eclipse テクノロジーが採用されています。(http://www.eclipse.org)