Учебники

КОБОЛ — Типы данных

Разделение данных используется для определения переменных, используемых в программе. Чтобы описать данные в 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. Номер уровня и описание
1

01

Запись описания записи

2

02 до 49

Групповые и элементарные предметы

3

66

Переименовать пункты

4

77

Предметы, которые нельзя подразделить

5

88

Запись названия условия

01

Запись описания записи

02 до 49

Групповые и элементарные предметы

66

Переименовать пункты

77

Предметы, которые нельзя подразделить

88

Запись названия условия

  • Элементарные предметы не могут быть разделены дальше. Номер уровня, Имя данных, предложение Picture и предложение Value (необязательно) используются для описания элементарного элемента.

  • Групповые элементы состоят из одного или нескольких элементарных элементов. Номер уровня, Имя данных и Предложение значения (необязательно) используются для описания элемента группы. Номер уровня группы всегда 01.

Элементарные предметы не могут быть разделены дальше. Номер уровня, Имя данных, предложение Picture и предложение Value (необязательно) используются для описания элементарного элемента.

Групповые элементы состоят из одного или нескольких элементарных элементов. Номер уровня, Имя данных и Предложение значения (необязательно) используются для описания элемента группы. Номер уровня группы всегда 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 и пробелов. Буквенно-цифровой тип состоит из цифр, букв и специальных символов.

  • Знак может использоваться с числовыми данными. Это может быть либо +, либо -.

  • Положение десятичной точки может использоваться с числовыми данными. Предполагаемая позиция — это позиция десятичной точки, которая не включена в данные.

  • Длина определяет количество байтов, используемых элементом данных.

Тип данных может быть числовым, буквенным или буквенно-цифровым. Числовой тип состоит только из цифр от 0 до 9. Алфавитный тип состоит из букв от A до Z и пробелов. Буквенно-цифровой тип состоит из цифр, букв и специальных символов.

Знак может использоваться с числовыми данными. Это может быть либо +, либо -.

Положение десятичной точки может использоваться с числовыми данными. Предполагаемая позиция — это позиция десятичной точки, которая не включена в данные.

Длина определяет количество байтов, используемых элементом данных.

Символы, используемые в предложении Picture —

Sr.No. Символ и описание
1

9

числовой

2

буквенный

3

Икс

алфавитно-цифровой

4

В

Неявный десятичный

5

S

Знак

6

п

Предполагаемый десятичный

9

числовой

буквенный

Икс

алфавитно-цифровой

В

Неявный десятичный

S

Знак

п

Предполагаемый десятичный

пример

В следующем примере показано использование предложения PIC —

Live Demo

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 —

Live Demo

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

Когда вы компилируете и запускаете вышеуказанную программу, она дает следующий результат —