Lezioni del modulo (1/2)
Record e Strutture di Gruppo
In COBOL, le variabili elementari possono essere raggruppate all'interno di una struttura gerarchica chiamata struttura di gruppo o record. Questo permette di trattare un insieme di dati correlati sia come una singola entità (ad esempio, per copiarli o mostrarli), sia come singoli campi individuali.
Numeri di Livello e Relazioni Gerarchiche
Per definire un record, si utilizzano i numeri di livello nella DATA DIVISION:
- Livello
01: Definisce il record principale (il nome del gruppo). Non ha una clausolaPICTUREpropria, poiché la sua dimensione è determinata dalla somma dei campi interni. - Livelli subordinati (
05,10,15ecc.): Identificano i campi subordinati appartenenti al gruppo di livello superiore. Possono essere variabili elementari (con clausolaPIC) o a loro volta altri gruppi (sotto-record).
01 WS-EMPLOYEE-RECORD.
05 WS-EMP-ID PIC 9(5).
05 WS-EMP-NAME PIC X(20).
05 WS-EMP-SALARY PIC 9(6)V99.
In questo esempio, WS-EMPLOYEE-RECORD è una struttura di gruppo che contiene tre campi subordinati. Se facciamo riferimento a WS-EMPLOYEE-RECORD, stiamo leggendo o scrivendo tutti gli 8 + 20 + 5 = 33 caratteri del record in una sola volta.
L'istruzione MOVE e le Strutture di Gruppo
Possiamo valorizzare i singoli campi elementari:
MOVE 10023 TO WS-EMP-ID.
MOVE "JOHN DOE" TO WS-EMP-NAME.
Oppure possiamo copiare un intero record in un altro record compatibile con un'unica operazione:
MOVE WS-EMPLOYEE-RECORD TO WS-EMPLOYEE-BACKUP.
Prova tu
Dichiara una struttura di gruppo 01 chiamata WS-STUDENT-RECORD che contiene tre campi subordinati di livello 05: WS-STUDENT-ID (numerico di 5 cifre), WS-STUDENT-NAME (alfanumerico di 15 caratteri) e WS-STUDENT-GPA (numerico con 1 cifra intera e 2 decimali).
Mostra suggerimento
Usa la sintassi corretta: 01 WS-STUDENT-RECORD. (con il punto e senza PIC), seguito a capo dai livelli 05 WS-STUDENT-ID PIC 9(5)., 05 WS-STUDENT-NAME PIC X(15). e 05 WS-STUDENT-GPA PIC 9(1)V99.
Soluzione disponibile dopo 3 tentativi
Completa la PROCEDURE DIVISION spostando il valore 10023 in WS-EMP-ID, il testo 'JOHN DOE' in WS-EMP-NAME e infine visualizza la struttura di gruppo WS-EMPLOYEE-RECORD usando DISPLAY.
Mostra suggerimento
Usa MOVE 10023 TO WS-EMP-ID. e MOVE 'JOHN DOE' TO WS-EMP-NAME. per valorizzare le variabili, poi scrivi DISPLAY WS-EMPLOYEE-RECORD. e infine STOP RUN.
Soluzione disponibile dopo 3 tentativi