Saltar al contenido principal
eLearner.app
Módulo 2 · Lección 1 de 23/10 en el curso~12 min
Lecciones del módulo (1/2)

Aritmética COBOL

En COBOL, las operaciones matemáticas se pueden realizar tanto a través de verbos específicos (ADD, SUBTRACT, MULTIPLY, DIVIDE) como mediante la instrucción genérica y expresiva COMPUTE.

Operaciones aritméticas con verbos formales

COBOL ofrece instrucciones textuales específicas para cada operación aritmética básica:

1. Suma (ADD)

Añade uno o más valores a una variable.

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

Si se desea guardar el resultado en una tercera variable sin modificar los operandos originales, se utiliza la cláusula GIVING:

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

2. Resta (SUBTRACT)

Resta un valor de otro.

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

3. Multiplicación (MULTIPLY) y División (DIVIDE)

Multiplican y dividen valores de manera análoga.

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

La instrucción COMPUTE

Para expresiones matemáticas complejas, el uso de verbos aritméticos individuales puede resultar largo y difícil de leer. La instrucción COMPUTE permite utilizar operadores matemáticos estándar (+, -, *, /, ** para la potenciación) de manera similar a los lenguajes modernos.

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

Pruébalo tú mismo

Ejercicio#cobol.m2.l1.e1
Intentos: 0Cargando...

Escribe una instrucción en la PROCEDURE DIVISION usando el verbo ADD para sumar WS-NUM-A a WS-NUM-B y almacenar el resultado en WS-RESULT.

Cargando editor...
Mostrar pista

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

Solución disponible después de 3 intentos

Ejercicio#cobol.m2.l1.e2
Intentos: 0Cargando...

Utiliza la instrucción COMPUTE para calcular el valor de WS-RESULT aplicando la formula: dos veces WS-NUM-A menos WS-NUM-B.

Cargando editor...
Mostrar pista

Usa espacios alrededor de los operadores * y -: COMPUTE WS-RESULT = (WS-NUM-A * 2) - WS-NUM-B.

Solución disponible después de 3 intentos