COBOL - Typy danych

Data Division służy do definiowania zmiennych używanych w programie. Aby opisać dane w języku COBOL, należy zrozumieć następujące terminy -

  • Nazwa danych
  • Numer poziomu
  • Klauzula obrazkowa
  • Klauzula wartości
01            TOTAL-STUDENTS            PIC9(5)            VALUE '125'.
|                    |                    |                    |
|                    |                    |                    |
|                    |                    |                    | 
Level Number     Data Name           Picture Clause       Value Clause

Nazwa danych

Nazwy danych muszą być zdefiniowane w Dziale Danych przed ich użyciem w Dziale Procedur. Muszą mieć nazwę zdefiniowaną przez użytkownika; nie można używać słów zastrzeżonych. Nazwy danych odnoszą się do lokalizacji pamięci, w których przechowywane są rzeczywiste dane. Mogą być typu podstawowego lub grupowego.

Przykład

Poniższy przykład przedstawia prawidłowe i nieprawidłowe nazwy danych -

Valid:
   WS-NAME
   TOTAL-STUDENTS
   A100
   100B

Invalid:
   MOVE            (Reserved Words)
   COMPUTE         (Reserved Words)
   100             (No Alphabet)
   100+B           (+ is not allowed)

Numer poziomu

Numer poziomu służy do określenia poziomu danych w rekordzie. Służą do rozróżniania elementów elementarnych i grupowych. Elementy podstawowe można grupować, aby tworzyć elementy grupowe.

Sr.No. Numer i opis poziomu
1

01

Zapis opisu wpisu

2

02 to 49

Elementy grupowe i elementarne

3

66

Zmień nazwy elementów klauzuli

4

77

Pozycje, których nie można podzielić

5

88

Wpis nazwy warunku

  • Elementary itemsnie można dalej dzielić. Numer poziomu, nazwa danych, klauzula Picture i klauzula Value (opcjonalna) służą do opisu elementu elementarnego.

  • Group itemsskładają się z jednego lub więcej podstawowych elementów. Numer poziomu, nazwa danych i klauzula Wartość (opcjonalnie) służą do opisu elementu grupy. Numer poziomu grupy to zawsze 01.

Przykład

Poniższy przykład przedstawia elementy grupowe i elementarne -

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

Klauzula obrazkowa

Klauzula Picture służy do definiowania następujących elementów -

  • Data typemoże być numeryczny, alfabetyczny lub alfanumeryczny. Typ numeryczny składa się tylko z cyfr od 0 do 9. Typ alfabetyczny składa się z liter od A do Z i spacji. Typ alfanumeryczny składa się z cyfr, liter i znaków specjalnych.

  • Signmoże być używany z danymi liczbowymi. Może to być + lub -.

  • Decimal point positionmoże być używany z danymi liczbowymi. Przyjęta pozycja to pozycja przecinka dziesiętnego i nieuwzględniona w danych.

  • Length definiuje liczbę bajtów używanych przez element danych.

Symbole używane w klauzuli Picture -

Sr.No. Symbol i opis
1

9

Numeryczne

2

A

Alfabetyczny

3

X

Alfanumeryczne

4

V

Niejawny dziesiętny

5

S

Znak

6

P

Założony dziesiętny

Przykład

Poniższy przykład pokazuje użycie klauzuli 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 aby wykonać powyższy program w języku COBOL -

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = HELLO

Kiedy kompilujesz i wykonujesz powyższy program, daje on następujący wynik -

WS-NUM1 : +000.00
WS-NUM2 : .000000
WS-NUM3 : -123.45
WS-NAME : ABCDEF
WS-ID : A121$

Klauzula wartości

Klauzula wartości jest klauzulą ​​opcjonalną, która służy do inicjowania elementów danych. Wartości mogą być literałem numerycznym, literałem alfanumerycznym lub stałą graficzną. Może być używany zarówno z elementami grupowymi, jak i elementarnymi.

Przykład

Poniższy przykład pokazuje użycie klauzuli 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 aby wykonać powyższy program w języku COBOL -

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = HELLO

Kiedy kompilujesz i wykonujesz powyższy program, daje on następujący wynik -

WS-NUM1 : 03.5
WS-NAME : ABCD
WS-ID   : 00