COBOLの変数の定義と初期化を完全ガイド!初心者にもやさしい入門講座
生徒
「COBOLでデータを使うときって、変数っていうものを使うんですよね?」
先生
「そうですね。COBOLでも、変数を使ってデータを一時的に記憶します。」
生徒
「変数って、どうやって作るんですか?難しくないですか?」
先生
「COBOLでは決まったルールに従って書くだけなので、とても簡単ですよ。順番に見ていきましょう。」
1. COBOLにおける変数とは?
COBOL(コボル)でプログラミングをする際には、変数を使ってデータを記憶します。変数とは、たとえば「名前」や「年齢」といった情報を一時的に置いておく“箱”のようなものです。この箱には、あとから自由に値を入れたり取り出したりすることができます。
変数を使うと、「この人の年齢は20歳です」や「商品の金額は1500円です」といったデータを記録できるようになります。
2. COBOLの変数の書き方(定義方法)
COBOLでは変数を使うには、DATA DIVISION(データ部)というところに書きます。さらにその中のWORKING-STORAGE SECTION(作業用のデータエリア)に変数を定義します。
例えば、「年齢」という変数を定義する場合は、次のように書きます。
WORKING-STORAGE SECTION.
01 AGE PIC 99.
ここで使われている用語の説明:
- 01:これはレベル番号と呼ばれ、データの構造を表します。基本的には01を使えばOKです。
- AGE:これは変数の名前です。自由に名前をつけられますが、英大文字と数字でつけるのが基本です。
- PIC:これは「ピクチャ」と読み、どんな形式のデータを入れるのかを表します。
- 99:2桁の数字を入れられるという意味です(たとえば12や35など)。
3. 初期化とは?COBOLでの初期値の設定方法
初期化とは、変数を使う前に最初の値(初期値)を入れておくことです。これは、何も入っていない状態で使ってしまうと、意図しない動作をすることがあるためです。
COBOLでは、VALUEを使って初期値を設定します。次のように書きます。
WORKING-STORAGE SECTION.
01 AGE PIC 99 VALUE 20.
このように書くと、「AGE」という変数には最初から20が入っている状態になります。
4. 複数の変数を定義する例
たとえば、名前(英文字)と年齢(数字)を両方記録したい場合は、以下のように複数の変数を定義できます。
WORKING-STORAGE SECTION.
01 NAME PIC A(10) VALUE "TANAKA".
01 AGE PIC 99 VALUE 25.
ここでのA(10)は、英字を10文字まで入れられるという意味です。Aはアルファベット用の型です。
5. 実際のCOBOLプログラムで使ってみよう
変数を定義して、それを使って画面に表示するプログラムの例です。これで、変数がどのように使われているかがよく分かります。
IDENTIFICATION DIVISION.
PROGRAM-ID. SAMPLE-VARIABLE.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 NAME PIC A(10) VALUE "YAMADA".
01 AGE PIC 99 VALUE 30.
PROCEDURE DIVISION.
DISPLAY "名前は " NAME.
DISPLAY "年齢は " AGE " 歳です。".
STOP RUN.
このプログラムの実行結果:
名前は YAMADA
年齢は 30 歳です。
6. よく使うデータ型のPIC(ピクチャ)一覧
COBOLでは、変数の型をPICで指定します。以下は、よく使うPICの種類です。
- 9:数字(0〜9)を表します。
- A:アルファベット1文字を表します。
- X:英数字や記号を含む任意の1文字を表します。
たとえば、PIC X(5)
と書けば、5文字のどんな文字列でも入れられる変数になります。
7. 数値の桁数や形式を指定する方法
数値を扱うときは、桁数や小数点の有無などもPICで指定します。
例:最大3桁の数字を入れたい場合
01 TOTAL-AMOUNT PIC 999 VALUE 100.
例:小数点付きの数値
01 TAX-RATE PIC 9V99 VALUE 805.
この例では、「8.05」を表します。Vは小数点の位置を示します(実際のプログラム中にはピリオドは書きません)。