Vai al contenuto
eLearner.app
Modulo 2 · Lezione 1 di 23/10 nel corso~12 min
Lezioni del modulo (1/2)

Aritmetica COBOL

In COBOL, le operazioni matematiche possono essere eseguite sia tramite verbi dedicati (ADD, SUBTRACT, MULTIPLY, DIVIDE) sia attraverso l'istruzione generica ed espressiva COMPUTE.

Operazioni Aritmetiche con Verbi Formali

COBOL offre istruzioni testuali specifiche per ciascuna operazione aritmetica di base:

1. Somma (ADD)

Aggiunge uno o più valori a una variabile.

Code
ADD WS-NUM-A TO WS-NUM-B.
* Equivale a: WS-NUM-B = WS-NUM-B + WS-NUM-A

Se si desidera salvare il risultato in una terza variabile senza modificare gli addendi, si usa la clausola GIVING:

Code
ADD WS-NUM-A TO WS-NUM-B GIVING WS-RESULT.

2. Sottrazione (SUBTRACT)

Sottrae un valore da un altro.

Code
SUBTRACT 10 FROM WS-BALANCE.
SUBTRACT WS-TAX FROM WS-SUBTOTAL GIVING WS-TOTAL.

3. Moltiplicazione (MULTIPLY) e Divisione (DIVIDE)

Moltiplicano e dividono valori in modo analogo.

Code
MULTIPLY WS-QTY BY WS-PRICE GIVING WS-TOTAL.
DIVIDE WS-TOTAL BY WS-ITEMS GIVING WS-AVERAGE.

L'istruzione COMPUTE

Per espressioni matematiche complesse, l'uso dei singoli verbi aritmetici può risultare lungo e difficile da leggere. L'istruzione COMPUTE consente di utilizzare operatori matematici standard (+, -, *, /, ** per l'elevamento a potenza) simili ai linguaggi moderni.

Code
COMPUTE WS-TOTAL = (WS-PRICE * WS-QUANTITY) - WS-DISCOUNT.

Prova tu

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

Scrivi un'istruzione in PROCEDURE DIVISION usando il verbo ADD per sommare WS-NUM-A a WS-NUM-B e memorizzare il risultato in WS-RESULT.

Caricamento editor…
Mostra suggerimento

Usa la sintassi: ADD WS-NUM-A TO WS-NUM-B GIVING WS-RESULT.

Soluzione disponibile dopo 3 tentativi

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

Utilizza l'istruzione COMPUTE per calcolare il valore di WS-RESULT applicando la formula: due volte WS-NUM-A meno WS-NUM-B.

Caricamento editor…
Mostra suggerimento

Usa gli spazi intorno all'operatore * e -: COMPUTE WS-RESULT = (WS-NUM-A * 2) - WS-NUM-B.

Soluzione disponibile dopo 3 tentativi