# ADD文

説明書の該当箇所: 6.5.3 ADD文

  ADD文-書き方1.cob    ADD a b TO c d          加える先に足し込む
  ADD文-書き方2.cob    ADD a b TO c GIVING d   結果を別の項目に入れる
  ADD文-書き方3.cob    ADD CORRESPONDING       同じ名前の項目どうしを足す

すべて Standard 版で動きます。正しく動くと OK だけが並びます。

# 書き方1 と 書き方2 の違い

  ADD i j 3 TO k m.              k と m そのものが増える
  ADD i j TO k GIVING k2 m2.     k は変わらず、k2 と m2 に結果が入る

書き方2 では、TO の後ろの項目が読むだけになる点を IF文 で確かめています。

# ROUNDED と ON SIZE ERROR

どちらの書き方でも、次の2つを併せて確かめています。

  ROUNDED          小数の桁が足りないときの丸め
                   同じ加算を ROUNDED 付きと無しで並べ、結果の違いを見ます

  ON SIZE ERROR    入れ先の桁があふれたときの分岐
                   NOT ON SIZE ERROR や、入れ子にした END-ADD も出てきます

PIC 9(3) の項目に 999 + 1 を入れるとあふれます。そのときに何も起きないのではなく
ON SIZE ERROR 側へ進むことを、実際に走らせて確かめられます。

# 書き方3(CORRESPONDING)について

集団項目 X と Y の中で、同じ名前を持つ項目どうしだけが足されます。
名前が片方にしか無い項目、FILLER、REDEFINES された項目はどう扱われるかを
X と Y の定義と結果の照合(y = "B111210")から読み取ってください。
