Corso COBOL
Cheatsheet
Un riferimento veloce — la sintassi essenziale di COBOL su una pagina sola. Usa Ctrl/Cmd + P per stamparla.
COBOL · Cheatsheet — eLearner.app
Struttura e Divisioni
Programma Minimo
IDENTIFICATION DIVISION. PROGRAM-ID. MINIMAL-PROGRAM. PROCEDURE DIVISION. DISPLAY "Hello from COBOL". STOP RUN.Le divisioni IDENTIFICATION, PROGRAM-ID e PROCEDURE DIVISION sono obbligatorie in ogni programma.
Regole del Formato Fisso
Colonna 1-6 : Sequenza (opzionale) Colonna 7 : Commenti (*), Continuazioni (-) Colonna 8-11 : Area A (Divisioni, Sezioni, Paragrafi, livello 01) Colonna 12-72 : Area B (Istruzioni, clausole di dati, livelli > 01)COBOL tradizionale richiede un rigido allineamento a colonne. Il carattere * in colonna 7 indica un commento.
Variabili e Tipi (DATA DIVISION)
Dichiarazione Variabili
DATA DIVISION. WORKING-STORAGE SECTION. 01 WS-USER-NAME PIC X(20) VALUE "Alice". 01 WS-USER-AGE PIC 9(3) VALUE 25. 01 WS-SALARY PIC 9(4)V99 VALUE 1500.50.Le variabili sono dichiarate in WORKING-STORAGE SECTION. Livello 01 indica record principali, PIC definisce il tipo (X alfanumerico, 9 numerico, V decimali impliciti).
Variabili Strutturate (Record)
01 WS-USER-RECORD. 05 WS-FIRST-NAME PIC X(15) VALUE "John". 05 WS-LAST-NAME PIC X(15) VALUE "Doe". 05 WS-DETAILS. 10 WS-ROLE PIC X(10) VALUE "Coder".La gerarchia dei dati usa i numeri di livello (01, 05, 10) per raggruppare sotto-campi in record complessi.
Aritmetica COBOL
Istruzioni Matematiche Formali
ADD 5 TO WS-COUNTER. ADD WS-VAL-A TO WS-VAL-B GIVING WS-SUM. SUBTRACT 10 FROM WS-TOTAL. MULTIPLY WS-QTY BY WS-PRICE GIVING WS-SUBTOTAL. DIVIDE WS-TOTAL BY 2 GIVING WS-HALF.Usa GIVING per salvare il risultato in una nuova variabile senza sovrascrivere l'operando iniziale.
Istruzione COMPUTE
COMPUTE WS-FINAL-AMOUNT = (WS-SUBTOTAL * 1.22) - WS-DISCOUNT.COMPUTE permette calcoli algebrici complessi usando operatori standard (+, -, *, /, **).
Controllo del Flusso
Condizionali IF-ELSE
IF WS-USER-AGE >= 18 THEN DISPLAY "Accesso consentito" ELSE DISPLAY "Accesso negato" END-IF.I blocchi condizionali devono sempre terminare con END-IF (o un punto "." in vecchi dialetti).
EVALUATE (Switch-Case)
EVALUATE WS-USER-AGE WHEN 0 THRU 17 DISPLAY "Minorenne" WHEN 18 THRU 64 DISPLAY "Adulto" WHEN OTHER DISPLAY "Senior" END-EVALUATE.EVALUATE controlla condizioni multiple ed equivale allo switch-case o a IF-ELSE annidati.
Paragrafi e Cicli (Iterazioni)
Paragrafi e PERFORM
PROCEDURE DIVISION. MAIN-LOGIC. PERFORM DO-INITIALIZE. DISPLAY "In esecuzione...". STOP RUN. DO-INITIALIZE. DISPLAY "Inizializzazione".I paragrafi suddividono il codice PROCEDURE DIVISION in moduli logici riutilizzabili con PERFORM.
Cicli (PERFORM TIMES / UNTIL)
* Ciclo numerico fisso PERFORM 5 TIMES DISPLAY "Hello" END-PERFORM. * Ciclo condizionale (while/until) PERFORM UNTIL WS-COUNTER > 10 DISPLAY "Count: " WS-COUNTER ADD 1 TO WS-COUNTER END-PERFORM.PERFORM UNTIL esegue il blocco FINCHÉ la condizione indicata non diventa vera (valutata prima di ogni iterazione).