Vai al contenuto
eLearner.app
Modulo 4 · Lezione 1 di 27/10 nel corso~12 min
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 clausola PICTURE propria, poiché la sua dimensione è determinata dalla somma dei campi interni.
  • Livelli subordinati (05, 10, 15 ecc.): Identificano i campi subordinati appartenenti al gruppo di livello superiore. Possono essere variabili elementari (con clausola PIC) o a loro volta altri gruppi (sotto-record).
Code
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:

Code
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:

Code
MOVE WS-EMPLOYEE-RECORD TO WS-EMPLOYEE-BACKUP.

Prova tu

Esercizio#cobol.m4.l1.e1
Tentativi: 0Caricamento…

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).

Caricamento editor…
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

Esercizio#cobol.m4.l1.e2
Tentativi: 0Caricamento…

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.

Caricamento editor…
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