Menu principal                 [Fechar]


Linguagem de programação COBOL - COMPUTE


Volta a página anterior

Volta ao Menu Principal


Desenvolvido por DORNELLES Carlos Alberto - Analista de Sistemas - Brasília DF.

Precisão nos cálculos de resultados intermediários
Compute
  • Se uma instrução aritmética for suficiente, use-a; se for necessário mais de uma, use o comando COMPUTE
  • A instrução COMPUTE usa símbolos em vez de comandos aritméticos.
  • A principal vantagem do comando COMPUTE é que pode realizar várias operações aritméticas com uma única instrução, conforme quadro e exemplos abaixo:

Símbolos usados em uma instrução COMPUTE

Símbolo

Significado

+

ADD
- SUBTRACT
* MULTIPLY
/ DIVIDE
** exponenciação (não há comando correspondente no COBOL)


O seu formato geral é:

Sintaxe do comando COMPUTE



Primeiro exemplo:
COMPUTE VENDAS-DIARIAS = QUANTIDADE * VALOR-UNITARIO / 5
Instruções equivalentes ao COMPUTE acima:
MULTIPLY QUANTIDADE BY VALOR UNITARIO GIVING VENDAS-DIARIAS
DIVIDE 5 INTO VENDAS-DIARIAS


O uso das opções ROUNDED e ON SIZE ERROR em uma instrução COMPUTE.
Para arrendondar o resultado de um comando COMPUTE, usamos a opção ROUNDED diretamente após o campo receptor.

Se for necessário verificar uma condição de erro, devemos usar a cláusula ON SIZE ERROR como a última instrução.

Segundo exemplo:

05 VALOR-TRUNCADO PIC 9(002) VALUE ZEROES.

COMPUTE VALOR-TRUNCADO = 502 - 2

O resultado desta condição seria de OVERFLOW (o valor obtido é maior que o tamanho da PICTURE definida para o campo receptor) no campo VALOR-TRUNCADO, pois o valor retornado é 500 (quinhentos).
Haveria um truncamento do dígito mais significativo, a posição das centenas, e o valor do campo VALOR-TRUNCADO será 00 (zero zero).

Para nossa proteção contra esse tipo de truncamento, usamos a opção ON SIZE ERROR da seguinte maneira:

COMPUTE VALOR-TRUNCADO = 502 - 2
                 ON SIZE ERROR PERFORM 900-ERRO-CALCULO
END-COMPUTE.

Na rotina 900-ERRO-CALCULO codificamos as condições de erros necessárias.