COBOL言語の「定数」の種類と使い方について理解しよう! | 用語辞典

COBOL(コボル)言語における定数とは

辞典・辞書-定数-イメージ

COBOL(コボル)言語の定数とは?

COBOL 言語では、プログラム中に直接記述した数値データを「数値定数」、文字データを「文字定数」、ゼロやスペースなどの特殊な値を表す定数を「表意定数」と呼びます。

プログラム中に定数を記述することは、実業務でもよくありますので、使い方を覚えておきましょう。

数値定数の形式

数値定数は、符号、数字、小数点を組み合わせた数字データです。

■書式

「符号」「数字 1」「小数点」「数字 2」

■構文規則

<符号>

「+」、または「-」を記述します。符号は省略することができ、省略すると「+」を記述したとみなされます。

<数字 1>

「0」から「9」までの整数を表す数字を記述します。省略することはできません。

<小数点>

ピリオド「.」を記述します。小数点以下がない場合、記述しません。

<数字 2>

「0」から「9」までの小数点以下を表す数字を記述します。小数点以下がない場合、記述しません。

■使用例

数字定数を使用するプログラム例をご紹介します。

以下のプログラム例では、数値定数「100」と「100.1」を DISPLAY 文で表示しています。

辞典・辞書-定数-使用例

■実行結果

辞典・辞書-定数-実行結果

数値定数の値が表示され、プログラムが終了しました。

文字定数の形式

文字定数は、ダブルクォーテーション「”」で括られたデータです。ダブルクォーテーションの中には、英数字、記号、日本語文字などを記述することができます。

■書式

“文字“

■構文規則

<文字>

英数字、記号、日本語文字などを記述します。

■使用例

文字定数を使用するプログラム例をご紹介します。

以下のプログラム例では、文字定数で数字、英字、日本語文字を表示しています。

辞典・辞書-定数-使用例

■実行結果

辞典・辞書-定数-実行結果

文字定数が表示され、プログラムが終了しました。

定数の COBOL(コボル)言語における基本事項やルールについて

COBOL 言語の定数は、プログラム命令中に直接値を記述することができますが、記述できる文字の長さに制限があります。

数値定数に記述できる最大桁数は、整数部と小数部を合計して 18 桁です。また、文字定数に記述できる最大文字数は、160 文字(160 バイト)で、日本語文字では 80 文字(160 バイト)です。

COBOL 言語の表意定数は、ゼロやスペースなどの特殊な値の定数です。主な表意定数については、「表 1.代表的な表意定数」をご覧ください。

表 1.代表的な表意定数

表意定数

表意定数の意味

属性

ZERO

N 個のゼロ

数値

SPACE

N 個のスペース(空白)

文字

LOW-VALUE

領域全体を文字「0」、16 進数の F0 で埋める

文字

HIGH-VALUE

領域全体を文字「F」、16 進数の FF で埋める

文字

QUOTE

領域全体をダブルクォーテーション「”」で埋める

文字

ALL 値

領域全体を記述した値で埋める

文字

COBOL(コボル)言語の定数を使うときの注意点

COBOL 言語の命令文に直接値を記述できる定数は、コーディングする上で便利な機能ですが、同じ意味を持つ値を定数として散在させると、値を変更するとき何か所も修正しなければなりません。また、修正点を洗い出すときに漏れてしまい、思わぬバグになってしまうこともあります。

長期間稼働することが予想される業務プログラムでは、複数個所で使用する値を安易に定数にせず、77 レベルで定義して使用するなど、将来、修正漏れが発生しないための工夫が必要です。

定数を使った COBOL(コボル)プログラムの活用方法

実用的なプログラムにおいて、データエリアの明示的な初期化は、バグを内包しないための常識といえます。例えば、数値データならばゼロで、文字データならば空白でなど、属性に合わせて初期化することなどが一般的です。

では、表意定数「ZERO」を使用して、コンソール入力エリアを初期化し、入力値に数字定数「10」を乗算した値を表示するプログラムをご紹介します。紹介するプログラムでは、入力メッセージの表示に文字定数も使用しています。

  1. ******************************************************************
  2. * Author:
  3. * Date:
  4. * Purpose:
  5. * Tectonics: cobc
  6. ******************************************************************
  7. IDENTIFICATION DIVISION.
  8. PROGRAM-ID. T-TEISU_SAMPLE1.
  9. DATA DIVISION.
  10. WORKING-STORAGE SECTION.
  11. 01 WORKING-AREA.
  12. 03 CNSL-INPUT PIC 9(03).
  13. 03 KEKKA PIC 9(04).
  14. *-------------------------------------------
  15. * 主手続
  16. *-------------------------------------------
  17. PROCEDURE DIVISION.
  18. *入力エリアの初期化
  19. MOVE ZERO TO CNSL-INPUT.
  20. *入力メッセージ表示&入力
  21. DISPLAY "3桁までの整数を入力してください".
  22. ACCEPT CNSL-INPUT FROM CONSOLE.
  23. *演算と演算結果の表示
  24. COMPUTE KEKKA = CNSL-INPUT * 10.
  25. DISPLAY KEKKA.
  26. STOP RUN.
  27. END PROGRAM T-TEISU_SAMPLE1.

■実行結果

はじめに 3 桁の整数の入力を促すメッセージが表示されます。

辞典・辞書-定数-実行結果

数字の「100」を入力してみます。

辞典・辞書-定数-入力例

入力値「100」に数値定数「10」を掛けた値「1000」が表示され、プログラムが終了しました。

数字定数、文字定数、表意定数は、実務プログラムをデバッグするテスト用のプログラムなど、将来的にメンテナンスの必要がない一時的なプログラムでもよく使われます。メンテナンスを要する業務プログラムで定数を使用する場合、77 レベルでのデータ定義にした方がよいのか、定数として記述した方がいいのか、メンテナンス性と開発効率を勘案してから使用するようにしましょう。

この記事を読んだ人は、こちらの記事も読んでいます

【未経験者歓迎】COBOLプログラマー・システムエンジニアの募集

株式会社COBOLの求人・転職・募集情報を見る

COBOL入門のカテゴリー

取引企業様 募集中
COBOL技術者 募集
COBOL魂
読者採用
COBOL入門