A instrução DIVIDE é usada para realizar operações de divisão aritmética entre itens numéricos. Ela pode armazenar tanto o quociente quanto o resto da divisão, e possui diversos formatos para atender diferentes necessidades de cálculo.

📌 Para que serve

  • Dividir valores numéricos com ou sem armazenamento do resto.

  • Permitir arredondamento automático dos resultados com ROUNDED.

  • Tratar possíveis erros de tamanho com ON SIZE ERROR.

🧾 Sintaxes principais

📘 Formato 1 – DIVIDE INTO

DIVIDE valor BY destino

Ou

DIVIDE valor INTO destino [ROUNDED]

O valor do identifier-1 ou literal-1 é dividido em identifier-2. O quociente sobrescreve identifier-2.

📘 Formato 2 – DIVIDE INTO ... GIVING

DIVIDE valor INTO destino GIVING resultado [ROUNDED]

O valor é dividido e o quociente é armazenado em resultado, sem alterar o divisor.

📘 Formato 3 – DIVIDE BY ... GIVING

DIVIDE valor BY divisor GIVING resultado [ROUNDED]

Mesmo efeito do formato anterior, mas com a ordem dos operandos invertida (valor ÷ divisor).

📘 Formato 4 – DIVIDE INTO ... GIVING ... REMAINDER

DIVIDE valor INTO divisor 
       GIVING quociente 
       REMAINDER resto

📘 Formato 5 – DIVIDE BY ... GIVING ... REMAINDER

DIVIDE valor BY divisor 
       GIVING quociente 
       REMAINDER resto

📌 Palavras-chave opcionais

✅ ROUNDED

Arredonda o valor do quociente ao invés de truncar. Útil para valores com casas decimais.

✅ REMAINDER

Armazena o resto da divisão (somente em Formatos 4 e 5).

✅ ON SIZE ERROR / NOT ON SIZE ERROR

Permite o tratamento de erros de estouro, quando o resultado não cabe no campo destino.

✍️ Exemplos:

Simples divisão com sobrescrita

DIVIDE 10 INTO VAR-QUANTIDADE.

Divisão com resultado em outro campo

DIVIDE VAR-TOTAL INTO VAR-FATOR GIVING VAR-RESULTADO.

Com resto e arredondamento

DIVIDE VAR-TOTAL BY VAR-PARCELA
       GIVING VAR-QUOCIENTE ROUNDED
       REMAINDER VAR-RESTO.

Tratamento de erro de tamanho

DIVIDE VALOR1 INTO VALOR2 GIVING RESULTADO
       ON SIZE ERROR
          DISPLAY "Erro de tamanho ao dividir."
       NOT ON SIZE ERROR
          DISPLAY "Divisão realizada com sucesso."
       END-DIVIDE.

 

✅ Conclusão

A instrução DIVIDE oferece flexibilidade para cálculos aritméticos, permitindo múltiplos formatos, controle de arredondamento, armazenamento do resto e tratamento de erros. É ideal para situações que exigem precisão e controle nos cálculos. A escolha do formato depende do tipo de operação que se deseja realizar e do uso do resultado dentro da lógica do programa.