カテゴリ: COBOL 更新日: 2025/07/09

COBOLのUSAGE句(DISPLAY・COMPなど)をやさしく解説!初心者でもわかる効率化の基本

USAGE句(DISPLAY・COMPなど)を使った効率化
USAGE句(DISPLAY・COMPなど)を使った効率化

先生と生徒の会話形式で理解しよう

生徒

「COBOLのUSAGE(ユーセージ)って何のために使うんですか?よくわからなくて…」

先生

「いい質問ですね。USAGE句は、データの使い方やコンピュータ内での保存の仕方を指定するために使います。」

生徒

「保存の仕方?なんだか難しそうです…」

先生

「たとえば“表示専用なのか”、“計算に特化しているのか”を選ぶための設定なんです。具体的な使い方を一緒に見てみましょう!」

1. USAGE句とは?

1. USAGE句とは?
1. USAGE句とは?

USAGE句(ユーセージ句)は、COBOLで使うデータが「どのように格納され、どんな用途で使われるか」を指定するためのものです。たとえば、「文字を表示するため」や「計算を効率よく行うため」に使い分けることができます。

COBOLの変数は、単に「数値」や「文字」を表すだけでなく、パソコンの中でどういう形式で保存されるかを決めることで、メモリの節約計算の高速化ができるようになります。

初心者にとってはちょっと難しそうに感じるかもしれませんが、料理で使う器のサイズや形を選ぶようなものと考えてみてください。表示するのに向いた「お皿」もあれば、計算に強い「ボウル」もあるのです。

2. USAGE DISPLAY:画面に表示したりする一般的な形式

2. USAGE DISPLAY:画面に表示したりする一般的な形式
2. USAGE DISPLAY:画面に表示したりする一般的な形式

USAGE DISPLAY(ユーセージ・ディスプレイ)は、COBOLで最もよく使われる形式です。この指定を使うと、変数は文字や数字を「人が読める形」で扱うことができます。特に画面に表示したり、印刷したりする場合に使われます。

DISPLAYは、パソコンの中では「1文字=1バイト(8ビット)」で保存されるため、とてもわかりやすい形式です。

例を見てみましょう。


01  USER-NAME    PIC X(10) USAGE DISPLAY.
01  AGE          PIC 99    USAGE DISPLAY.

この例では、「USER-NAME」や「AGE」は、どちらも人が見やすい形で保存されます。「X(10)」は文字列10文字分、「99」は2桁の数字を意味します。

3. USAGE COMP:計算処理を高速にする形式

3. USAGE COMP:計算処理を高速にする形式
3. USAGE COMP:計算処理を高速にする形式

USAGE COMP(コンプと読みます)は、「計算に特化した形式」で、パソコンの中では2進数(二進法)で保存されます。つまり、人が読める形ではなく、機械が扱いやすい形に変換して保存されます。

そのため、数値の四則演算(たし算、ひき算、かけ算、わり算)などをたくさん行う処理では、USAGE COMPを使うことでスピードアップが期待できます。

具体例を見てみましょう。


01  TOTAL-AMOUNT  PIC 9(6) USAGE COMP.

このように書くと、「TOTAL-AMOUNT」は、6桁の数値を「2進数」で保存し、計算処理がとても高速になります。ただし、DISPLAYのように直接画面表示すると文字化けする可能性があるので注意が必要です。

4. USAGE COMP-3:少ないメモリで多くの数字を扱いたいとき

4. USAGE COMP-3:少ないメモリで多くの数字を扱いたいとき
4. USAGE COMP-3:少ないメモリで多くの数字を扱いたいとき

USAGE COMP-3(コンプスリー)は、「パック10進数」と呼ばれる特殊な形式で、メモリを節約しながら数字を保存したいときに使います。

これは、1バイトに2桁の数字を詰め込んで保存する仕組みで、金額などの桁数が多いデータに使われることが多いです。

たとえば、以下のように記述します。


01  SALES-AMOUNT  PIC 9(7)V99 USAGE COMP-3.

この変数「SALES-AMOUNT」は、「9999999.99」のように最大9桁の数値(小数2桁)を扱えますが、メモリの使用量は非常に少なく済みます

ただし、こちらも画面表示には向いておらず、DISPLAYに変換してから表示する必要があります。

5. USAGEの違いを実行例で見てみよう

5. USAGEの違いを実行例で見てみよう
5. USAGEの違いを実行例で見てみよう

では、実際にUSAGE DISPLAYUSAGE COMPを比較して、画面に表示してみます。


IDENTIFICATION DIVISION.
PROGRAM-ID. USAGE-SAMPLE.

DATA DIVISION.
WORKING-STORAGE SECTION.
01  DISPLAY-VALUE  PIC 9(4) USAGE DISPLAY VALUE 1234.
01  COMP-VALUE     PIC 9(4) USAGE COMP VALUE 1234.

PROCEDURE DIVISION.
    DISPLAY "DISPLAY形式: " DISPLAY-VALUE.
    DISPLAY "COMP形式   : " COMP-VALUE.
    STOP RUN.

出力結果は次のようになります。


DISPLAY形式: 1234
COMP形式   : (文字化けまたは意図しない表示)

このように、COMPで定義した変数を直接DISPLAYすると、うまく表示されないことがあります。これが「人に見せるか」「機械に使わせるか」の違いです。

6. 初心者が注意すべきポイント

6. 初心者が注意すべきポイント
6. 初心者が注意すべきポイント
  • 画面に出力するならUSAGE DISPLAYを使いましょう。
  • 数値計算をたくさんする処理ではUSAGE COMPを使うと高速になります。
  • メモリを節約したいならUSAGE COMP-3も選択肢になります。
  • ただし、COMPやCOMP-3は表示に不向きなため、表示の前に変換が必要です。

用途に合わせて使い分けることで、無駄のないプログラムを作ることができます。

カテゴリの一覧へ
新着記事
C#で複数ファイルをまとめて操作する方法(foreach・LINQ)をやさしく解説!
C#のインターフェースとは?クラス設計を柔軟にする基本技術
C#のコンストラクタの役割と使い方!オブジェクト初期化の基本
COBOLでデータベース接続を理解しよう!初心者でもわかる基本の考え方
人気記事
No.1
Java&Spring記事人気No1
C#のpartialクラスとは?初心者でも理解できるクラス分割の基本
No.2
Java&Spring記事人気No2
C#で型を調べる方法!GetType()・typeof演算子の違いと使い方
No.3
Java&Spring記事人気No3
C#の数値型をマスターしよう!int・double・decimalの違いと使い方
No.4
Java&Spring記事人気No4
COBOLのCOPY句の使い方を完全ガイド!初心者でもわかる共通部品の再利用方法