COBOL-データ型
データ除算は、プログラムで使用される変数を定義するために使用されます。COBOLでデータを記述するには、次の用語を理解する必要があります。
- データ名
- レベル番号
- 画像句
- 価値条項
01 TOTAL-STUDENTS PIC9(5) VALUE '125'.
| | | |
| | | |
| | | |
Level Number Data Name Picture Clause Value Clause
データ名
データ名は、プロシージャ部門で使用する前に、データ部門で定義する必要があります。ユーザー定義の名前が必要です。予約語は使用できません。データ名は、実際のデータが格納されているメモリ位置を参照します。エレメンタリータイプまたはグループタイプにすることができます。
例
次の例は、有効なデータ名と無効なデータ名を示しています-
Valid:
WS-NAME
TOTAL-STUDENTS
A100
100B
Invalid:
MOVE (Reserved Words)
COMPUTE (Reserved Words)
100 (No Alphabet)
100+B (+ is not allowed)
レベル番号
レベル番号は、レコード内のデータのレベルを指定するために使用されます。これらは、基本アイテムとグループアイテムを区別するために使用されます。基本アイテムをグループ化して、グループアイテムを作成できます。
シニア番号 | レベル番号と説明 |
---|---|
1 | 01 レコードの説明エントリ |
2 | 02 to 49 グループとエレメンタリーアイテム |
3 | 66 条項アイテムの名前を変更する |
4 | 77 細分化できないもの |
5 | 88 条件名エントリ |
Elementary itemsこれ以上分割することはできません。レベル番号、データ名、画像句、および値句(オプション)は、基本項目を説明するために使用されます。
Group items1つ以上の基本アイテムで構成されます。レベル番号、データ名、および値句(オプション)は、グループ項目を説明するために使用されます。グループレベル番号は常に01です。
例
次の例は、グループアイテムとエレメンタリーアイテムを示しています-
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-NAME PIC X(25). ---> ELEMENTARY ITEM
01 WS-CLASS PIC 9(2) VALUE '10'. ---> ELEMENTARY ITEM
01 WS-ADDRESS. ---> GROUP ITEM
05 WS-HOUSE-NUMBER PIC 9(3). ---> ELEMENTARY ITEM
05 WS-STREET PIC X(15). ---> ELEMENTARY ITEM
05 WS-CITY PIC X(15). ---> ELEMENTARY ITEM
05 WS-COUNTRY PIC X(15) VALUE 'INDIA'. ---> ELEMENTARY ITEM
画像句
Picture句は、次の項目を定義するために使用されます-
Data type数値、アルファベット、または英数字にすることができます。数値タイプは0から9までの数字のみで構成されます。アルファベットタイプは文字AからZとスペースで構成されます。英数字タイプは、数字、文字、および特殊文字で構成されます。
Sign数値データで使用できます。+または–のいずれかになります。
Decimal point position数値データで使用できます。想定位置は小数点の位置であり、データには含まれていません。
Length データ項目によって使用されるバイト数を定義します。
Picture句で使用される記号-
シニア番号 | 記号と説明 |
---|---|
1 | 9 数値 |
2 | A アルファベット |
3 | X 英数字 |
4 | V 暗黙の10進数 |
5 | S 符号 |
6 | P 想定される10進数 |
例
次の例は、PIC句の使用法を示しています-
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-NUM1 PIC S9(3)V9(2).
01 WS-NUM2 PIC PPP999.
01 WS-NUM3 PIC S9(3)V9(2) VALUE -123.45.
01 WS-NAME PIC A(6) VALUE 'ABCDEF'.
01 WS-ID PIC X(5) VALUE 'A121$'.
PROCEDURE DIVISION.
DISPLAY "WS-NUM1 : "WS-NUM1.
DISPLAY "WS-NUM2 : "WS-NUM2.
DISPLAY "WS-NUM3 : "WS-NUM3.
DISPLAY "WS-NAME : "WS-NAME.
DISPLAY "WS-ID : "WS-ID.
STOP RUN.
JCL 上記のCOBOLプログラムを実行するには-
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = HELLO
上記のプログラムをコンパイルして実行すると、次の結果が得られます-
WS-NUM1 : +000.00
WS-NUM2 : .000000
WS-NUM3 : -123.45
WS-NAME : ABCDEF
WS-ID : A121$
価値条項
Value句は、データ項目を初期化するために使用されるオプションの句です。値は、数値リテラル、英数字リテラル、または比喩定数にすることができます。グループアイテムとエレメンタリーアイテムの両方で使用できます。
例
次の例は、VALUE句の使用法を示しています。
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WS-NUM1 PIC 99V9 VALUE IS 3.5.
01 WS-NAME PIC A(6) VALUE 'ABCD'.
01 WS-ID PIC 99 VALUE ZERO.
PROCEDURE DIVISION.
DISPLAY "WS-NUM1 : "WS-NUM1.
DISPLAY "WS-NAME : "WS-NAME.
DISPLAY "WS-ID : "WS-ID.
STOP RUN.
JCL 上記のCOBOLプログラムを実行するには-
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = HELLO
上記のプログラムをコンパイルして実行すると、次の結果が得られます-
WS-NUM1 : 03.5
WS-NAME : ABCD
WS-ID : 00