COBOL

プログラムの構成と表示

4つのDivisionとDISPLAY文を使い、COBOLの基本的な読み方を学びます。

COBOL入門の講座一覧

01

4つのDivision

COBOLのプログラムは、役割ごとに大きく分けて記述します。すべてのプログラムで4つが必須とは限りませんが、初心者は次の対応を覚えるとコードを追いやすくなります。

Divisionの役割COBOL
IDENTIFICATION DIVISION.  *> プログラムの名前
ENVIRONMENT DIVISION.    *> ファイルや実行環境
DATA DIVISION.           *> データの定義
PROCEDURE DIVISION.      *> 実際の処理

ファイルを使わない短いプログラムではENVIRONMENT DIVISIONを省略できます。作業用の変数はDATA DIVISIONに定義し、命令はPROCEDURE DIVISIONに書きます。

02

コメントを書く

フリーフォーマットでは、 >*ではなく、行の途中に*>を置いてコメントを書けます。コメントはコンパイル時に処理されないため、処理の目的や注意点を残すために使います。

コメント付きの処理COBOL
PROCEDURE DIVISION.
    *> 初心者向けのメッセージを表示する
    DISPLAY "COBOLを学びます。".
    STOP RUN.
実行結果OUTPUT
COBOLを学びます。
03

DISPLAY文で値を表示する

DISPLAYの後ろに文字列やデータ名を並べると、同じ行へ表示できます。文字列は引用符で囲み、データ名は引用符で囲みません。

文字列と数値を表示するCOBOL
DATA DIVISION.
WORKING-STORAGE SECTION.
01 RECORD-COUNT PIC 9(2) VALUE 3.

PROCEDURE DIVISION.
    DISPLAY "処理件数: " RECORD-COUNT "件".
    STOP RUN.
実行結果OUTPUT
処理件数: 03件

PIC 9(2)は2桁の数字を表すため、3は03と表示されます。表示幅を整えたいのか、先頭の0を表示したくないのかによって、データ定義や編集項目を選びます。

データ名に予約語を使わない

COBOLには命令や句で使われる予約語があります。COUNT、MESSAGE、CODEなどをデータ名にすると、処理系によってはコンパイルエラーになるため、RECORD-COUNTやMSG-TEXTのように役割を表す名前を付けます。

04

空白とピリオドに注意する

COBOLでは、複数の語を空白で区切ります。文の終わりを表すピリオドは、段落や複数の命令をまとめて区切ることもできます。ただし、ピリオドを増やしすぎると処理のまとまりが分かりにくくなるため、文の終わりを意識して置きます。

読みやすい書き方

1行に処理を詰め込まず、命令の継続行を少し右へ下げます。COBOLは英語に近い命令名を使うため、インデントで処理のまとまりを見せると効果的です。

05

練習

名前、年齢、学習時間を定義し、DISPLAYで次のように表示してください。

目標の実行結果OUTPUT
名前: Mity
年齢: 20歳
学習時間: 5時間

年齢と学習時間を別の値へ変えたとき、表示結果も変わることを確認しましょう。次はデータ定義と計算で、値の型と桁数を詳しく学びます。