SORTA (配列の分類)

自由形式構文 SORTA 配列名
SORTA %SUBARR(配列名 : 開始要素 { : 要素の数 })
コード 演算項目 1 拡張演算項目 2
SORTA 配列
%SUBARR(配列 : 開始要素 {:要素の数} )

配列名 オペランドは、分類される配列の名前です。配列は、定義仕様書でそ の配列に指定された順序によって異なる順序 (昇順または降順) に分類されま す。 順序が指定されていない場合には、配列は昇順に分類されます。 配列 *IN を指定することはできません。配列が交互形式のデータを持つコンパイル時配列または実行時前配列の場合に は、交互配列は分類されません。 配列名 として指定された配列だけが分類されます。

配列が OVERLAY キーワードで定義されている場合には、基本配列はオーバーレイ配列によって定義された順序で分類されます。

図形配列は、代替照合順序に関係なく、定義仕様書に指定された順序で、配列要 素の 16 進数値によって分類されます。

配列の部分をソートするには、%SUBARR 組み込み関数を使用してください。

注:
  1. 配列を分類すると前の順序は保存されません。 例えば、別のオーバーレイ配列を使用して配列を 2 回分類すると、最終順序 は最後の分類の順序となります。 分類の順序が同じで 16 進数値が (例えば、代替照合順序または順序を決定 するオーバーレイ配列を使用したために) 異なる要素は、分類後に前と同じ順 序にならないことがあります。
  2. 基底ポインターの配列を分類する場合には、配列のすべての値が同じ空間内 のアドレスであることを確認しなければなりません。 そうでない場合には、結果に整合性がなくなる場合があります。 詳細については、比較命令を参照してください。
  3. ヌル値可能配列が分類される場合、その分類では、ヌル・フラグの設定値は 考慮に入れられません。
  4. すべての定義済み要素が割り振り済みでない動的割り振り配列に 対する分類によって、エラーが発生する可能性があります。

詳細については、配列命令を参照してください。

図 354. SORTA 命令
*...1....+....2....+....3....+....4....+....5....+....6....+....7...+....
DName+++++++++++ETDsFrom+++To/L+++IDc.Keywords+++++++++++++++++++++++++++
DARRY             S              1A   DIM(8) ASCEND
D
CL0N01Factor1+++++++Opcode(E)+Factor2+++++++Result++++++++Len++D+HiLoEq....
 *
 *  The SORTA operation sorts ARRY into ascending sequence because
 *  the ASCEND keyword is specified.
 *  If the unsorted ARRY contents were GT1BA2L0, the sorted ARRY
 *  contents would be ABGLT012.
C
C                   SORTA     ARRY
図 355. OVERLAY による SORTA 命令
*...1....+....2....+....3....+....4....+....5....+....6....+....7...+....
DName+++++++++++ETDsFrom+++To/L+++IDc.Keywords+++++++++++++++++++++++++++
 * In this example, the base array has the values aa44 bb33 cc22 dd11
 * so the overlaid array ARRO has the values 44 33 22 11.
D            DS
D ARR                            4    DIM(4) ASCEND
D ARRO                           2    OVERLAY(ARR:3)
D
CL0N01Factor1+++++++Opcode(E)+Factor2+++++++Result++++++++Len++D+HiLoEq....
C
 * After the SORTA operation, the base array has the values
 * dd11 cc22 bb33 aa44
C
C                   SORTA     ARRO