添字付け

添字は、個別にデータ名が指定されていない同種の要素のリストまたは表の中の、個々の要素を参照するためにのみ使用できる (「OCCURS(反復)句」トピックを参照)。

添字として使用できるのは、整数である数字定数、データ名、後ろに「+」または「-」演算子が続くデータ名、または符号なしの整数数字定数が続くデータ名のいずれかである。データ名を使用する場合、このデータは数字基本項目で整数とする。添字全体は、左かっこと右かっこが対になった分離符で区切る必要がある。

添字に使用するデータ名には符号を指定できる (正符号のみ)。添字が取り得る最小値は 1 である。この値は、テーブルの最初の要素を指す。表の要素の 2 番目以降を指す添字の値は、2、3、...と続く。添字が取り得る最大値は、どのような場合であれ、OCCURS 句で指定した項目の反復回数の最大値である。

表の要素を一意に識別する添字または添字の組は、対象とする表要素のデータ名の後ろに、一対の左かっこと右かっこで囲んで付けて区切られる。表要素のデータ名に添字を付けたものを、添字付きデータ名または一意名と呼ぶ。複数の添字を指定する必要がある場合は、データ構造の階層の上位のものから書く。添字は 3 個まで指定できる。

ANS85 添字は 7 個まで指定できる。

MF 添字は 16 個まで指定できる。

一般形式


*

構文規則

  1. データ名-1、または条件名-1 に関連付けられたデータ名を含むデータ記述項には、OCCURS 句が含まれていなければならない。または、それらのデータ記述項は、OCCURS 句を含むデータ記述項の下位に属さなければならない。
  2. 表要素を参照する場合、指定する添字の数は、参照対象の表要素の記述中の OCCURS 句の数と一致している必要がある。ただし、構文規則 7 に規定された場合は例外とする。複数個の添字を指定する必要がある場合は、表の次元の上位のものから順に書く。
  3. ANS85 添字 ALL を使えるのは、関数の引数として添字付きの一意名を使用する場合のみである。条件名-1 を指定した場合、添字 ALL は使用できない (「引数」トピックを参照)。
  4. 整数-1 には符号を指定できる (正符号のみ)。
  5. データ名-2 は修飾が可能で、整数を表わす数字基本項目にする必要がある。
  6. 指標名-1 は、参照対象の表の階層系列中にあり、その指標名を指定する INDEXED BY を含むデータ記述項と対応させる必要がある。

    OSVSVSC2MF  または、他の表を記述する指標を代わりに使用できる。ただし、2 つの表に含まれる要素の数が同じである場合に限る。

  7. 以下の場所を除き、表要素を参照する場合は必ず添字を指定する必要がある。
    1. USE FOR DEBUGGING 文
    2. SEARCH 文または SORT 文の対象
    3. REDEFINES 句
    4. OCCURS 句内の KEY IS 句
  8. OSVS 同じ一意名の中で、添字と指標を併用することはできない。

    ANS85 同じ一意名の中で、添字と指標は併用できる。

一般規則

  1. 添字の値は、正の整数とする。添字が取り得る最小の出現番号は 1 である。表の任意の次元の最初の要素は、出現番号 1 で参照される。表のその次元内の連続する各要素は、反復回数 2、3、... で順次参照される。表のどの次元でも、添字が取る最大値は、対応する OCCURS 句で指定した項目の出現番号の最大値である。

    MF 添字が浮動小数点項目の場合、その値は最も近い整数に丸められるか、端数が切り捨てられる。

    算術式-1 が指定され、算術式の最終結果が整数でない場合、最終結果の端数は切り捨てられる。中間結果は切り捨てられない。

    算術式-1 が指定され、算術式の最終結果または中間結果が負の場合、その影響は予測不可能となる。

  2. 指標名-1 を用いて参照する指標の値は、関連付けられた表中の要素の出現番号に対応する。
  3. 指標名-1 を用いて参照する指標の値は、添字として使用する前に初期化しておく必要がある。指標に初期値を与える方法には、PERFORM 文に VARYING 句を指定する方法、SEARCH 文に ALL 句を指定する方法、および SET 文を指定する方法の 3 通りがある。指標の値を変更できる文は PERFORM、SEARCH、および SET のみである。
  4. たとえば、

    ANS85 整数-2 または

    整数-3 を指定した場合、添字の値は次のようにして決定される。演算子「+」を指定した場合は、

    ANS85 整数-2 または

    整数-3 の値が追加される。演算子「-」を指定した場合は、

    ANS85 整数-2 または

    整数-3 の値が差し引かれる。

    ANS85 次のどちらかが該当する。

    出現番号は、指標名-1 が参照する指標の値によって表される。

    ANS85 出現番号は、データ名-2 が参照するデータ項目の値によって表される場合もある。

説明:

MF NOBOUND コンパイラ指令を指定した場合は、この一般規則は実行時に適用されない。