COBOLサンプルソース集)コントロールブレイク

【BRKDV1】ブレイクキーが1つの場合

最近の情報処理試験に出題される『リング構造』というスタイルです。これはIF命令を用いない判り易いものです。機能が重層構造になっていてブレイクするキーが増えても、同じパターンで階層を増やせるので大変便利です。一番内側に、『キーが同じ時の処理』と『次のREAD』があり、その外側を『キーが変わるまでの繰り返し』と『繰返し終了』で囲みます。更に、その前に『キーの保存と必要な領域のクリア』を置き、『繰返し終了』の後に『キーが変わった時の処理』を置きます。ここまでをワンセットとし、この前後に『FILE-ENDまでの繰返し』と『繰返し終了』をかぶせます。文章で書くとチンプンカンプンでしょうから、以下にソースコードを掲載します。

*****  コントロールブレイクのドライバ  *****  [BRKDV1]     (20 F10)
      *  (ブレイクキー が1つの場合)   [LING構造のドライバ]
      *  (  ) 内に命令等を記述する

       procedure    division.
      ********** [ 制御-module ] **********
           open input (入力f) output (出力f)
           perform 読込処理 thru 読込出口
      *    ***** [file-endまでの繰返し] *****
           perform until (入力キー) = high-value
               (キーの保存 と 累計域のクリア)
      *        ***** [キーが変わるまでの繰り返し] *****
               perform until (入力キー) not = (保存キー)
      *            ***** [キーが同じ時の処理] *****
                   perform 同一処理 thru 同一出口
                   perform 読込処理 thru 読込出口
               end-perform
      *        ***** [キーが変わった時の処理] *****
               perform 合計処理 thru 合計出口
           end-perform
      *    ***** [file-end の時の処理] *****
           perform 総計処理 thru 総計出口
           close (入力f) (出力f)  stop run.

      ********** [ 機能-module ] **********
       同一処理. (キーが同じ時の処理).
       同一出口. exit.

       合計処理. (キーが変わった時の処理).
       合計出口. exit.

       総計処理. (総計の処理).
       総計出口. exit.

       読込処理. read (入力f) end move high-value to (入力キー)
                          not end continue
                 end-read
       読込出口. exit.

<< Back   Index   Next >>  < Top >