バージョン 6.3.3
 —  ステートメント  —

ADD

ADD ステートメントを使用して、複数のオペランドを追加します。

このドキュメントでは、次のトピックについて説明します。

関連ステートメント:COMPRESS | COMPUTE | DIVIDE | EXAMINE | MOVE | MOVE ALL | MULTIPLY | RESET | SEPARATE | SUBTRACT

関連機能グループ:「算術演算とデータ移動操作


機能

ADD ステートメントを使用して、複数のオペランドを追加します。

注意:

  1. ADD ステートメント実行時、算術演算に使用される各オペランドは、有効な値を持っている必要があります。
  2. 配列を含む加算については、「配列の算術演算」を参照してください。
  3. オペランドのフォーマットについては、「フォーマット混合式のパフォーマンスについて」を参照してください。

Top of page

構文説明

このステートメントには、2 つの異なる構造が可能です。

構文図で使用されている記号については、「構文記号」を参照してください。

構文 1

ADD [ROUNDED] operand1../graphics/dot3.gif TO operand2

オペランド定義テーブル(構文 1):

オペランド 構文要素 フォーマット ステートメント参照 ダイナミック定義
operand1 C S A   N       N P I F   D T         不可
operand2   S A   M       N P I F   D T        

構文要素の説明:

operand1 operand1 は加数です。
ROUNDED キーワード ROUNDED を使用すると、結果が四捨五入されます。 四捨五入のルールについては、「演算割り当てのルール」を参照してください。
TO operand2 operand2 は、結果フィールドです。 結果フィールドも加算され、加算結果もこの結果フィールドに保存されます。

構文 2

ADD [ROUNDED] operand1../graphics/dot3.gif GIVING operand2

オペランド定義テーブル(構文 2):

オペランド 構文要素 フォーマット ステートメント参照 ダイナミック定義
operand1 C S A    N       N P I F   D T       可  不可
operand2   S A    M   A U N P I F B* D T        可

*operand3 のフォーマット B は、4 以下の長さでのみ使用できます。

構文要素の説明:

operand1 operand1 は加数です。
ROUNDED キーワード ROUNDED を使用すると、結果が四捨五入されます。 四捨五入のルールについては、「演算割り当てのルール」を参照してください。
GIVING operand2 operand2 は結果フィールドですが、構文 1 とは異なり、結果の保存のみに使用されます。

operand2 を英数字フィーマットで定義した場合、結果は英数字フォーマットに変換されます。

データベースフィールドを結果フィールドとして使用しても、ADD 演算は、プログラム内で使用する内部値だけを更新します。 データベースのフィールド値は変わりません。

Top of page

** Example 'ADDEX1': ADD                                                
************************************************************************
DEFINE DATA LOCAL                                                       
1 #A      (P2)                                                          
1 #B      (P1.1)                                                        
1 #C      (P1)                                                          
1 #DATE   (D)                                                           
1 #ARRAY1 (P5/1:4,1:4) INIT (2,*) <5>                                   
1 #ARRAY2 (P5/1:4,1:4) INIT (4,*) <10>                                  
END-DEFINE                                                              
*                                                                       
ADD +5 -2 -1 GIVING #A
WRITE NOTITLE 'ADD +5 -2 -1 GIVING #A' 15X '=' #A                       
*                                                                       
ADD .231 3.6 GIVING #B
WRITE       / 'ADD .231 3.6 GIVING #B' 15X '=' #B                       
*                                                                       
ADD ROUNDED 2.9 3.8 GIVING #C
WRITE       / 'ADD ROUNDED 2.9 3.8 GIVING #C' 8X '=' #C 
*                                                  
MOVE *DATX TO #DATE                                
ADD 7 TO #DATE
WRITE       / 'CURRENT DATE:'     *DATX (DF=L) 13X 
              'CURRENT DATE + 7:' #DATE (DF=L)     
*                                                  
WRITE       / '#ARRAY1 AND #ARRAY2 BEFORE ADDITION'
            / '=' #ARRAY1 (2,*) '=' #ARRAY2 (4,*)  
ADD #ARRAY1 (2,*) TO #ARRAY2 (4,*)
WRITE       / '#ARRAY1 AND #ARRAY2 AFTER ADDITION' 
            / '=' #ARRAY1 (2,*) '=' #ARRAY2 (4,*)  
*                                                  
END

プログラム ADDEX1 の出力:

ADD +5 -2 -1 GIVING #A               #A:   2                             
                                                                         
ADD .231 3.6 GIVING #B               #B:  3.8                            
                                                                         
ADD ROUNDED 2.9 3.8 GIVING #C        #C:  7                              
                                                                         
CURRENT DATE: 2005-01-10             CURRENT DATE + 7: 2005-01-17        
                                                                         
#ARRAY1 AND #ARRAY2 BEFORE ADDITION                                      
#ARRAY1:      5      5      5      5 #ARRAY2:     10     10     10     10
                                                                         
#ARRAY1 AND #ARRAY2 AFTER ADDITION                                       
#ARRAY1:      5      5      5      5 #ARRAY2:     15     15     15     15

Top of page