Pular para o conteúdo principal
Módulo 2 · Lição 1 de 23/10 no curso~12 min
Lições do módulo (1/2)

Aritmética COBOL

No COBOL, as operações matemáticas podem ser realizadas usando verbos dedicados (ADD, SUBTRACT, MULTIPLY, DIVIDE) ou usando a instrução genérica e expressiva COMPUTE.

Operações Aritméticas com Verbos Formais

COBOL fornece instruções textuais específicas para cada operação aritmética básica:

1. Adição (ADD)

Adiciona um ou mais valores a uma variável.

COBOL
ADD WS-NUM-A TO WS-NUM-B.
* Equivalent to: WS-NUM-B = WS-NUM-B + WS-NUM-A

Caso queira salvar o resultado em uma terceira variável sem modificar os adendos, utilize a cláusula GIVING:

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

2. Subtração (SUBTRACT)

Subtrai um valor de outro.

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

3. Multiplicação (MULTIPLY) e Divisão (DIVIDE)

Multiplique e divida valores de maneira semelhante.

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

A instrução COMPUTE

Para expressões matemáticas complexas, o uso de verbos aritméticos individuais pode ser longo e difícil de ler. A instrução COMPUTE permite usar operadores matemáticos padrão (+, -, *, /, ** para exponenciação) semelhantes às linguagens modernas.

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

Experimente você mesmo

Exercício#cobol.m2.l1.e1
Tentativas: 0Carregando…

Escreva uma instrução dentro de PROCEDURE DIVISION usando o verbo ADD para somar WS-NUM-A a WS-NUM-B e armazenar o resultado em WS-RESULT.

Carregando editor…
Mostrar dica

Use a sintaxe: ADICIONE WS-NUM-A A WS-NUM-B DANDO WS-RESULT.

Solução disponível após 3 tentativas

Exercício#cobol.m2.l1.e2
Tentativas: 0Carregando…

Use a instrução COMPUTE para calcular o valor de WS-RESULT aplicando a fórmula: duas vezes WS-NUM-A menos WS-NUM-B.

Carregando editor…
Mostrar dica

Use espaços ao redor dos operadores * e -: COMPUTE WS-RESULT = (WS-NUM-A * 2) - WS-NUM-B.

Solução disponível após 3 tentativas