COBOL - Comando DIVIDE - www.cadcobol.com.br



Desenvolvido por DORNELLES Carlos Alberto - Analista de Sistemas - Brasília DF. - cad_cobol@hotmail.com

DIVIDE
Esta declaração é utilizada para divisão.
A declaração DIVIDE divide um item numérico em ou por outro e seta os valores em itens igual (numéricos) para o quociente e resto.

Tanto a palavra INTO quanto a palavra BY podem ser usadas em uma instrução DIVIDE.
A cláusula GIVING é opcional com INTO, mas obrigatória com BY.


Primeiro formato: (DIVIDE)
No formato 1, o valor de identifier-1 ou literal-1 é dividido no valor do identifier-2 e o quociente é armazenado então no identifier-2.
Para cada ocorrência sucessiva do identifier-2, a divisão acontece da esquerda para direito na qual identifier-2 é especificado.



Segundo formato: (DIVIDE INTO, GIVING)
No formato 2, o valor de identifier-1 ou literal-1 é dividido no valor de identifier-2 ou literal-2.
O valor do quociente é armazenado em cada item referenciado no identifier-3.



Terceiro formato: (DIVIDE BY, GIVING)
No formato 3, o valor de identifier-1 ou literal-1 é dividido pelo valor de identifier-2 ou literal-2.
O valor do quociente é armazenado em cada item referenciado no identifier-3.



Quarto formato: (DIVIDE INTO, GIVING, with REMAINDER)
No formato 4, o valor de identifier-1 ou literal-1 é dividido em identifier-2 ou literal-2.
O valor do quociente é armazenado dentro do identifier-3 e o valor do resto armazenado no identifier-4.



Quinto formato: (DIVIDE BY, GIVING, with REMAINDER)
No formato 5, o valor de identifier-1 ou literal-1 é dividido pelo identifier-2 ou literal-2.
O valor do quociente é armazenado dentro do identifier-3 e o valor do resto armazenado no identifier-4.



Para todos os Formatos:
identifier-1, identifier-2
Tenha que ser um item elementar numérico.

identifier-3, identifier-4
Tenha que ser um item elementar numérico ou um item numérico-editado.

literal-1, literal-2
Tenha que ser uma literal numérica.

Nos formato 1, 2 e 3 podem ser usados dados de ponto-flutuante e literais em qualquer lugar que um item de dados numérico ou literal pode ser especificado.

Nos formato 4 e 5, artigos de dados de ponto-flutuante ou literaais não podem ser usados.


Primeiro exemplo: Os dois abaixo produzem o mesmo resultado
DIVIDE TOTAL-VENDAS BY 10 GIVING MEDIA-VENDAS
DIVIDE 10 INTO TOTAL-VENDAS GIVING MEDIA-VENDAS

Segundo exemplo: A opção REMAINDER armazena o resto da divisão
DIVIDE TOTAL-VENDAS BY 10 GIVING MEDIA-VENDAS REMAINDER RESTO
DIVIDE 10 INTO TOTAL-VENDAS GIVING MEDIA-VENDAS REMAINDER RESTO

Terceiro exemplo: A opção ON SIZE ERROR evita que o programa ABEND por exemplo com uma divisão por zero
A opção ON SIZE ERROR evita que o programa ABEND por exemplo com uma divisão por zero
DIVIDE TOTAL-VENDAS BY TOTAL-FUNC GIVING MEDIA-VENDAS
          ON SIZE ERROR
          PERFORM 900-ERRO-DIVISAO
END-DIVIDE.

Outros exemplos:
Antes Comando Depois
VALOR-1 VALOR-2 VALOR-3 VALOR-1 VALOR-2 VALOR-3
5892 DIVIDE 5 INTO VALOR-1 1178
35,0 10,0 8,2 DIVIDE VALOR-1 BY VALOR-2 GIVING VALOR-3 35,0 10,0 3,5
1250 0 DIVIDE VALOR-1 BY VALOR-2 GIVING VALOR-2 ON SIZE ERROR
            MOVE ZEROES TO VALOR-1
0 0
28 10 4 DIVIDE VALOR-1 BY VALOR-2 GIVING VALOR-3 ROUNDED 28 10 3

Veja também