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
混乱しないようにひらがなが書かれてありますが、実際は全てローマ字で書かれていた方が、プログラムの移植をする場合、都合がよくなります。
COBOLの中でもかなりの確率で使われるのがPERFORM(パフォーム)文でしょう。
この文は一定の条件になるまで繰り返しを行うことができます。上の例で訳すならば、
PERFORM UNTIL K > 5 (Kの数字が5を越えるまで繰り返す)と、いう具合になります。
これは、上のテーブルの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という番号が入ることになります