COBOL2級

テーブルを用いた集計



COBOLを勉強するにあたってどうしても避けられないのはテーブル配列という考え方です。
まずは下の図を見てください。

記録表(K-TABLE)<---テーブル名
K( 1) K(2) K(3)K(4) K(5)<---項目名 (添字)
9( 04) 9(04) 9(04) 9(04) 9(04)<---英数字

これがテーブルのおおまかな図です参考書等では四角の枠で囲んであるので、それを参考にして下さい。

テーブルで最も肝心なのは添字という存在です。まずはそれについて、書いていきます。

Kの横に数字が振ってあるのはわかるでしょう。つまりこれはK−TABLEのKという添字に対応して5つとってありその一つが英数字4桁分入力できるということです。
注 9(04)というのは、9999と同じ意味です。

MOVE 1TO K.
PERFORM UNTIL K > 5
  データを読む
  金額−−−>RYO(K)
  COMPUTE K = K + 1
END-PERFORM

 混乱しないようにひらがなが書かれてありますが、実際は全てローマ字で書かれていた方が、プログラムの移植をする場合、都合がよくなります。


PERFORM文について

COBOLの中でもかなりの確率で使われるのがPERFORM(パフォーム)文でしょう。
この文は一定の条件になるまで繰り返しを行うことができます。上の例で訳すならば、
PERFORM UNTIL K > 5 (Kの数字が5を越えるまで繰り返す)と、いう具合になります。

RYO(K)とは?
これは、上のテーブルのKという項目に対応しています。まずMOVE文でKに1を加えておいて、金額をRYO(K)の1番目に入れるということです。

金額(4800)-->K(1)9999 = K(1)4800

後はCOMPUTE文でKの数字に1をプラスしてKの値を2にします。
そうすれば、次の金額のデータはRYO(K)つまり、Kの2番目に送られます。

続いて、テーブルをもう少し発展させてみましょう。

01  T-TABLE

  02 TST OCCURS 3 TIMES
     03  EIS PIC 9(7)
     03  SUU PIC 9(3)

これは実際に、プログラムを入力する時に使う書き方です。先程の図で表すと、このように、なります。

T-TABLE

TST(1)−− TST(2)−− TST(3)

EIS(1)SUU(1) EIS(2)SUU(2) EIS(3)SUU(3)

つまり、一番上のT-TABLEには01、 TSTには02、 EIS,SUUには03という番号が入ることになります



COBOLのメニュー画面へ