配列エレメントの参照方法は、配列の上限と下限によって決まります。 例えば、次のようなデータ項目があるとします。
20 5 10 30 630 150 310 70
上記データ項目を、前述で宣言した List という配列に割り当てたとします。 さまざまなエレメントが、次のように参照されます。
LIST のあとに書かれている括弧内の数字を添え字 といいます。 添え字を括弧で囲んで配列名のあとに書くと、その配列内の特定のデータ項目を指すことになります。 LIST(4) のように、添え字付きの名前を参照すると、1 つのエレメントを参照することになります。これは要素変数です。 添え字が付いていない配列名 (例えば、LIST) を書けば、 配列全体を参照することができます。
前述で宣言した List_A と List_B に 同じデータを割り当てることができます。 この場合は、次のように参照します。
| 参照 | エレメント | 参照 |
|---|---|---|
| LIST_A (4) | 20 | LIST_B (-4) |
| LIST_A (5) | 5 | LIST_B (-3) |
| LIST_A (6) | 10 | LIST_B (-2) |
| LIST_A (7) | 30 | LIST_B (-1) |
| LIST_A (8) | 630 | LIST_B (0) |
| LIST_A (9) | 150 | LIST_B (1) |
| LIST_A (10) | 310 | LIST_B (2) |
| LIST_A (11) | 70 | LIST_B (3) |
同じデータを TABLE (2 次元の配列として宣言されている) に割り当てたとします。 TABLE は、次のように 4 行 2 列の行列として表せます。
| TABLE(m,n) | (m,1) | (m,2) |
|---|---|---|
| (1,n) | 20 | 5 |
| (2,n) | 10 | 30 |
| (3,n) | 630 | 150 |
| (4,n) | 310 | 70 |
TABLE のエレメントを参照するときは、コンマで区切った 2 つの添え字を括弧で囲んで、配列名のあとに書きます。 例えば、TABLE(2,1) は、2 行目の最初の項目 (この例では 10 というデータ項目) を指します。
TABLE を図示するのに行列を使用したのは、概念的にその方がわかりやすいためで、 実際にはデータ項目はストレージでそのように編成されているわけではありません。 データ項目は、行を主体とした順序で割り当てられます。 つまり列を表す添え字がまず変化するということを意味します。 例えば、TABLE への割り当て順序は、TABLE(1,1)、TABLE(1,2)、TABLE(2,1)、TABLE(2,2) というようになります。
添え字を使用して配列を参照するときは、添え字の数は配列の次元の数と同じでなければなりません。
有効な算術値が得られる式であれば、添え字として使うことができます。 必要に応じて、値は (CMPAT コンパイラー・オプションに対応した精度で) FIXED BINARY に変換されます。 例えば、TABLE(I,J*K) を使用し、I、J、K の値を変えていけば、TABLE の個々のエレメントを参照できます。