Cobol-data-types
提供:Dev Guides
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)
レベル番号
レベル番号は、レコード内のデータのレベルを指定するために使用されます。 基本項目とグループ項目を区別するために使用されます。 基本項目をグループ化して、グループ項目を作成できます。
Sr.No. | Level Number & Description |
---|---|
1 |
レコード記述エントリー |
2 |
02 to 49 グループおよび基本アイテム |
3 |
66 句アイテムの名前変更 |
4 |
77 細分化できないアイテム |
5 |
88 条件名エントリ |
- *基本項目*はそれ以上分割できません。 レベル番号、データ名、Picture句、およびValue句(オプション)は、基本項目を記述するために使用されます。
- *グループ項目*は、1つ以上の基本項目で構成されます。 レベル番号、データ名、および値句(オプション)は、グループアイテムを記述するために使用されます。 グループレベル番号は常に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句は、次の項目を定義するために使用されます-
- *データタイプ*は、数値、アルファベット、または英数字です。 数値型は、0〜9の数字のみで構成されます。 アルファベットのタイプは、A〜Zの文字とスペースで構成されます。 英数字タイプは、数字、文字、および特殊文字で構成されます。
- Sign は数値データで使用できます。 +または–のいずれかです。
- *小数点位置*は数値データで使用できます。 想定位置は小数点の位置であり、データには含まれません。
- *長さ*は、データ項目が使用するバイト数を定義します。
Picture節で使用される記号-
Sr.No. | Symbol & Description |
---|---|
1 |
9 数値 |
2 |
A アルファベット |
3 |
X 英数字 |
4 |
V 暗黙の10進数 |
5 |
S Sign |
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$
値句
値句は、データ項目を初期化するために使用されるオプションの句です。 値は、数値リテラル、英数字リテラル、または比fig定数です。 グループ項目と基本項目の両方で使用できます。
例
次の例は、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