COBOL - Tipi di dati
La divisione dei dati viene utilizzata per definire le variabili utilizzate in un programma. Per descrivere i dati in COBOL, è necessario comprendere i seguenti termini:
- Nome dati
- Numero di livello
- Clausola di immagine
- Clausola di valore
01 TOTAL-STUDENTS PIC9(5) VALUE '125'.
| | | |
| | | |
| | | |
Level Number Data Name Picture Clause Value Clause
Nome dati
I nomi dei dati devono essere definiti nella Divisione dati prima di utilizzarli nella Divisione procedure. Devono avere un nome definito dall'utente; le parole riservate non possono essere utilizzate. I nomi dei dati fanno riferimento alle posizioni di memoria in cui sono memorizzati i dati effettivi. Possono essere elementari o di gruppo.
Esempio
L'esempio seguente mostra nomi di dati validi e non validi:
Valid:
WS-NAME
TOTAL-STUDENTS
A100
100B
Invalid:
MOVE (Reserved Words)
COMPUTE (Reserved Words)
100 (No Alphabet)
100+B (+ is not allowed)
Numero di livello
Il numero di livello viene utilizzato per specificare il livello di dati in un record. Sono usati per distinguere tra elementi elementari e elementi di gruppo. Gli elementi elementari possono essere raggruppati insieme per creare elementi di gruppo.
Sr.No. | Numero e descrizione del livello |
---|---|
1 | 01 Inserimento della descrizione del record |
2 | 02 to 49 Elementi di gruppo ed elementari |
3 | 66 Rinomina gli elementi della clausola |
4 | 77 Elementi che non possono essere suddivisi |
5 | 88 Inserimento del nome della condizione |
Elementary itemsnon può essere ulteriormente diviso. Il numero di livello, il nome dei dati, la clausola Picture e la clausola Value (opzionale) vengono utilizzati per descrivere un elemento elementare.
Group itemsconsistono in uno o più elementi elementari. Il numero di livello, il nome dei dati e la clausola del valore (facoltativa) vengono utilizzati per descrivere un elemento del gruppo. Il numero del livello di gruppo è sempre 01.
Esempio
L'esempio seguente mostra elementi di gruppo ed elementari:
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
Clausola di immagine
La clausola Picture viene utilizzata per definire i seguenti elementi:
Data typepuò essere numerico, alfabetico o alfanumerico. Il tipo numerico è composto solo da cifre da 0 a 9. Il tipo alfabetico è composto da lettere dalla A alla Z e spazi. Il tipo alfanumerico è composto da cifre, lettere e caratteri speciali.
Signpuò essere utilizzato con dati numerici. Può essere + o -.
Decimal point positionpuò essere utilizzato con dati numerici. La posizione presunta è la posizione del punto decimale e non è inclusa nei dati.
Length definisce il numero di byte utilizzati dall'elemento dati.
Simboli utilizzati in una clausola Picture -
Sr.No. | Simbolo e descrizione |
---|---|
1 | 9 Numerico |
2 | A Alfabetico |
3 | X Alfanumerico |
4 | V Decimale implicito |
5 | S Cartello |
6 | P Presunto decimale |
Esempio
L'esempio seguente mostra l'uso della clausola 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 per eseguire il programma COBOL di cui sopra -
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = HELLO
Quando compili ed esegui il programma sopra, produce il seguente risultato:
WS-NUM1 : +000.00
WS-NUM2 : .000000
WS-NUM3 : -123.45
WS-NAME : ABCDEF
WS-ID : A121$
Clausola di valore
La clausola Value è una clausola facoltativa utilizzata per inizializzare gli elementi di dati. I valori possono essere letterali numerici, letterali alfanumerici o costanti figurativi. Può essere utilizzato sia con elementi di gruppo che elementari.
Esempio
L'esempio seguente mostra l'uso della clausola 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 per eseguire il programma COBOL di cui sopra -
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C
//STEP1 EXEC PGM = HELLO
Quando compili ed esegui il programma sopra, produce il seguente risultato:
WS-NUM1 : 03.5
WS-NAME : ABCD
WS-ID : 00