Rational Developer for System z
COBOL for Windows バージョン 7.5 言語解説書


DIVIDE ステートメント

DIVIDE ステートメントは、1 つの数字データ項目と他の数字データ項目 (複数可) との間で除算を行い、商と剰余をデータ項目に保管します。

フォーマット 1
構文図を読む構文図をスキップする                                 .-------------------.  
                                 V                   |  
>>-DIVIDE--+-ID-1-------+--INTO----ID-2--+---------+-+---------->
           '-リテラル-1-'                '-ROUNDED-'    
 
>--+------------------------------------------+----------------->
   '-+----+--SIZE ERROR--命令ステートメント-1-'  
     '-ON-'                                      
 
>--+-----------------------------------------------+------------>
   '-NOT--+----+--SIZE ERROR--命令ステートメント-2-'  
          '-ON-'                                      
 
>--+------------+----------------------------------------------><
   '-END-DIVIDE-'  
 

フォーマット 1 では、ID-1 またはリテラル-1 の値で ID-2 の 値を割り、その商を ID-2 に保管します。 ID-2 は複数指定可能で、左から右へ順に除算が行われ、商はそれぞれの ID-2 に保管されます。 (ID-2 ÷ ID-1 = ID-2)

フォーマット 2
構文図を読む構文図をスキップする>>-DIVIDE--+-ID-1-------+--INTO--+-ID-2-------+----------------->
           '-リテラル-1-'        '-リテラル-2-'  
 
           .-------------------.  
           V                   |  
>--GIVING----ID-3--+---------+-+-------------------------------->
                   '-ROUNDED-'    
 
>--+------------------------------------------+----------------->
   '-+----+--SIZE ERROR--命令ステートメント-1-'  
     '-ON-'                                      
 
>--+-----------------------------------------------+------------>
   '-NOT--+----+--SIZE ERROR--命令ステートメント-2-'  
          '-ON-'                                      
 
>--+------------+----------------------------------------------><
   '-END-DIVIDE-'  
 

フォーマット 2 では、ID-1 またはリテラル-1 の 値で ID-2 またはリテラル-2 の値を割ります。その商は ID-3 のそれぞれに保管されます。 (ID-2 ÷ ID-1 = ID-3)

フォーマット 3
構文図を読む構文図をスキップする>>-DIVIDE--+-ID-1-------+--BY--+-ID-2-------+------------------->
           '-リテラル-1-'      '-リテラル-2-'  
 
           .-------------------.  
           V                   |  
>--GIVING----ID-3--+---------+-+-------------------------------->
                   '-ROUNDED-'    
 
>--+------------------------------------------+----------------->
   '-+----+--SIZE ERROR--命令ステートメント-1-'  
     '-ON-'                                      
 
>--+-----------------------------------------------+------------>
   '-NOT--+----+--SIZE ERROR--命令ステートメント-2-'  
          '-ON-'                                      
 
>--+------------+----------------------------------------------><
   '-END-DIVIDE-'  
 

フォーマット 3 では、ID-1 またはリテラル-1 の値 を ID-2 またはリテラル-2 の値で割ります。その商は ID-3 のそれぞれに保管されます。 (ID-1 ÷ ID-2 = ID-3)

フォーマット 4
構文図を読む構文図をスキップする>>-DIVIDE--+-ID-1-------+--INTO--+-ID-2-------+----------------->
           '-リテラル-1-'        '-リテラル-2-'  
 
>--GIVING--ID-3--+---------+--REMAINDER--ID-4------------------->
                 '-ROUNDED-'                   
 
>--+------------------------------------------+----------------->
   '-+----+--SIZE ERROR--命令ステートメント-1-'  
     '-ON-'                                      
 
>--+-----------------------------------------------+------------>
   '-NOT--+----+--SIZE ERROR--命令ステートメント-2-'  
          '-ON-'                                      
 
>--+------------+----------------------------------------------><
   '-END-DIVIDE-'  
 

フォーマット 4 では、ID-1 またはリテラル-1 の値で ID-2 またはリテラル-2 の値を割ります。その商は ID-3 に、剰余は ID-4 に保管されます。 (ID-2 ÷ ID-1 = ID-3 … ID-4)

フォーマット 5
構文図を読む構文図をスキップする>>-DIVIDE--+-ID-1-------+--BY--+-ID-2-------+------------------->
           '-リテラル-1-'      '-リテラル-2-'  
 
>--GIVING--ID-3--+---------+--REMAINDER--ID-4------------------->
                 '-ROUNDED-'                   
 
>--+------------------------------------------+----------------->
   '-+----+--SIZE ERROR--命令ステートメント-1-'  
     '-ON-'                                      
 
>--+-----------------------------------------------+------------>
   '-NOT--+----+--SIZE ERROR--命令ステートメント-2-'  
          '-ON-'                                      
 
>--+------------+----------------------------------------------><
   '-END-DIVIDE-'  
 

フォーマット 5 では、ID-1 またはリテラル-1 の値を ID-2 または リテラル-2 の値で割ります。その商は ID-3 に、剰余は ID-4 に保管されます。 (ID-1 ÷ ID-2 = ID-3 … ID-4)

すべてのフォーマット全部に関して次のことが言えます。

ID-1ID-2
基本数字データ項目である必要があります。 ID-1 および ID-2 は日付フィールドにはできません。
ID-3ID-4
基本数字項目または数字編集項目を指定する必要があります。

ID-3 または ID-4 が日付フィールドである場合、商または剰余が ID-3 にどのように保管されるかについては、日付フィールドに関連する算術演算結果の保管を参照してください。

リテラル-1リテラル-2
これは、数字リテラルでなければなりません。

フォーマット 1、2、および 3 の場合、数字データ項目またはリテラルを指定できる場所であれば、 浮動小数点データ項目およびリテラルを使用することができます。

フォーマット 4 および 5 では、浮動小数点データ項目またはリテラルは使用できません。

ROUNDED 句

フォーマット 1、2、および 3 については、ROUNDED 句を参照してください。

フォーマット 4 および 5 の場合は、剰余を計算するために使用される商は、 中間フィールドにあります。中間フィールドの値は、丸めが行われるのではなく切り捨てが行われます。

 

REMAINDER 句

商と除数の積を被除数から減じた結果が、ID-4 に保管されます。 ID-3 が、数字編集項目であれば、剰余を計算するために使用される商は、 編集されていない商を含む中間フィールドです。

REMAINDER 句は、受け取りフィールドまたはオペランドのいずれかが浮動小数点項目の場合は無効です。

REMAINDER 句の中で ID-4 に添え字が付いていると、その添え字は、 除算結果が GIVING 句の ID-3 に入れられた後で評価されます。

SIZE ERROR 句

フォーマット 1、2、および 3 については、SIZE ERROR 句を参照してください。

フォーマット 4 および 5 の場合、商にサイズ・エラーが起こると、 剰余の計算は意味がありません。 したがって、商フィールド (ID-3) と剰余フィールド (ID-4) の内容は変わりません。

剰余にサイズ・エラーが起こると、剰余フィールド (ID-4) の内容は変わりません。

上記のいずれの場合も、実際にどの状態が起こったかを判別するために、 結果を分析する必要があります。

NOT ON SIZE ERROR 句の詳細については、SIZE ERROR 句を参照してください。

 

END-DIVIDE 句

この明示的範囲終了符号は、DIVIDE ステートメントの範囲を区切るために使用されます。 END-DIVIDE では、 条件付き DIVIDE ステートメントを命令ステートメントにして、 別の条件ステートメントにネストすることができます。 END-DIVIDE は、命令 DIVIDE ステートメントと共に使用できます。

詳しくは、範囲区切りステートメントを参照してください。


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

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