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