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
  • 01*

レコード記述エントリー

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