COBOLのDATA DIVISIONを完全解説!初心者にもわかるデータ定義の基本構造
生徒
「COBOLでデータを扱うには、どうやって変数を作るんですか?」
先生
「COBOLでは、DATA DIVISIONという部分でデータや変数を定義するんですよ。」
生徒
「DATA DIVISIONってなんだか難しそうですね…」
先生
「大丈夫。DATA DIVISIONの構造はとてもシンプルです。一緒に見ていきましょう!」
1. DATA DIVISIONとは?
COBOLのプログラムは、いくつかの「ディビジョン(部門)」に分かれています。その中で、DATA DIVISION(データ部)は、プログラムが使うデータや変数を定義するための場所です。
簡単に言えば、「このプログラムで使う荷物(データ)をあらかじめ用意しておく倉庫のような場所」と考えてください。プログラムが始まる前に、何のデータを使うかをここで準備しておくのです。
2. DATA DIVISIONの基本構造
DATA DIVISIONの中には、さらにいくつかの「セクション(節)」があり、それぞれ役割があります。代表的なものは以下の2つです。
- WORKING-STORAGE SECTION(ワーキングストレージ・セクション):プログラム内で使う一時的な変数を定義する場所。
- FILE SECTION(ファイル・セクション):ファイルから読み込むデータや、ファイルに書き出すデータの構造を定義する場所。
この記事では、初心者向けにまず「WORKING-STORAGE SECTION」について詳しく解説します。
3. WORKING-STORAGE SECTIONで変数を定義する
WORKING-STORAGE SECTION
では、プログラムの中で一時的に使う「変数」を宣言します。変数とは、数字や文字などの値を一時的に記憶しておく箱のようなものです。
COBOLでは、変数を定義する時に「レベル番号」や「ピクチャ文字列(PICTURE)」といったルールを使います。
次のようなコードを書いて、変数を定義します:
DATA DIVISION.
WORKING-STORAGE SECTION.
01 USER-NAME PIC A(20).
01 USER-AGE PIC 99.
この例では、「USER-NAME」という名前の変数に最大20文字のアルファベットを、「USER-AGE」という変数に2桁の数字を入れる準備をしています。
4. PIC(ピクチャ)とは何か?
PIC
とは、「ピクチャ文字列(PICTURE clause)」の略で、変数にどんなデータを入れるのかを指定するものです。
- 9:数字(0〜9)を1文字ぶん表す。
- A:英字(アルファベット)を1文字ぶん表す。
- X:文字なら何でも1文字ぶん表す(数字もアルファベットもOK)。
たとえば、PIC 9(3)
なら、3桁の数字を入れられる変数を意味します。
5. 実際のCOBOLプログラムで使ってみよう
WORKING-STORAGE SECTIONで変数を定義したあと、PROCEDURE DIVISION(処理部)でその変数を使うことができます。以下は、ユーザーの名前と年齢を表示するプログラムの例です。
IDENTIFICATION DIVISION.
PROGRAM-ID. SAMPLE.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 USER-NAME PIC A(20) VALUE "YUI".
01 USER-AGE PIC 99 VALUE 25.
PROCEDURE DIVISION.
DISPLAY "名前:" USER-NAME.
DISPLAY "年齢:" USER-AGE.
STOP RUN.
このプログラムを実行すると、次のように表示されます。
名前:YUI
年齢:25
6. 入れ子構造(階層)の使い方
COBOLでは、変数に階層構造を持たせることができます。これは、ひとつのデータの中に小さなデータが入っているようなイメージです。たとえば、住所を定義する時に使います。
01 ADDRESS.
05 POSTAL-CODE PIC 9(7).
05 PREFECTURE PIC A(10).
05 CITY PIC A(10).
このように、01の下に05
を使うことで、「住所」の中に「郵便番号」「都道府県」「市区町村」といった情報をまとめて管理できます。
7. VALUE句で初期値を設定
変数を定義する時にVALUE
を使うことで、最初から決まった値を入れておくことができます。これを「初期値」といいます。
01 COUNTER PIC 9(3) VALUE 100.
このようにしておくと、プログラムの最初にCOUNTER
には100が入っている状態になります。
8. よくある間違いと注意点
初心者がよく間違えるポイントもいくつか紹介しておきます。
- PIC句の文字数が多すぎる:使う文字数を考えて適切な長さを設定しましょう。
- VALUE句が合わない:文字列と数字を間違えるとエラーになります。
- レベル番号の使い方:01の下には05、10…と小さい数字を順番に使いましょう。
ルールに従えばエラーも減り、プログラムがスムーズに動きます。