Rational Developer for System z
COBOL for Windows バージョン 7.5 プログラミング・ガイド


例: 二分探索

次の例は、テーブルの二分探索をコーディングする方法を示しています。

テーブルにそれぞれが 40 バイトの 90 個のエレメントが含まれており、3 つのキーがあるとします。1 次キーと 2 次キー (KEY-1KEY-2) は昇順ですが、最も重要でないキー (KEY-3) は降順です。

01  TABLE-A.
    05 TABLE-ENTRY OCCURS 90 TIMES
           ASCENDING KEY-1, KEY-2
           DESCENDING KEY-3
           INDEXED BY INDX-1.
       10 PART-1       PIC 99.
       10 KEY-1        PIC 9(5).
       10 PART-2       PIC 9(6).
       10 KEY-2        PIC 9(4).
       10 PART-3       PIC 9(18).
       10 KEY-3        PIC 9(5).

このテーブルは、次のステートメントを使用して探索することができます。

SEARCH ALL TABLE-ENTRY
  AT END
    PERFORM NOENTRY
  WHEN KEY-1 (INDX-1) = VALUE-1 AND
       KEY-2 (INDX-1) = VALUE-2 AND
       KEY-3 (INDX-1) = VALUE-3
    MOVE PART-1 (INDX-1) TO OUTPUT-AREA
END-SEARCH

3 つの各キーが比較対象の値 (それぞれ VALUE-1VALUE-2、および VALUE-3) と等しい項目が検出された場合、その項目の PART-1OUTPUT-AREA へ移動されます。TABLE-A 内のどの記入項目でも一致するキーが検出されない場合には、NOENTRY ルーチンが実行されます。


ご利用条件 | フィードバック

Copyright IBM Corporation 1996, 2008.
このインフォメーション・センターでは Eclipse テクノロジーが採用されています。(http://www.eclipse.org)