A instrução MULTIPLY no COBOL realiza multiplicações entre valores numéricos e armazena o resultado no próprio operando ou em outro especificado pela cláusula GIVING. Pode ser usada para operações simples ou compostas.

📌 Para que serve

  • Multiplicar valores numéricos diretamente dentro do programa.

  • Armazenar o resultado da multiplicação em uma ou mais variáveis.

  • Lidar com arredondamentos (ROUNDED) e situações de estouro (SIZE ERROR).

🧾 Sintaxe básica

📍 Formato 1 – Multiplica e armazena no próprio campo

MULTIPLY fator1 BY fator2.

📍 Formato 2 – Multiplica e armazena em outro campo com GIVING

MULTIPLY fator1 BY fator2 GIVING resultado.

✅ Exemplo prático

01 VALOR1     PIC 9(4) VALUE 12.
01 VALOR2     PIC 9(4) VALUE 3.
01 RESULTADO  PIC 9(5).

MULTIPLY VALOR1 BY VALOR2 GIVING RESULTADO.
DISPLAY "Resultado: " RESULTADO.

Resultado: Resultado: 0036

⚙️ Comportamento interno

  • A multiplicação ocorre da esquerda para a direita.

  • O COBOL aceita tanto literals quanto variáveis como fatores.

  • No formato 1, o resultado sobrescreve o identifier-2.

  • No formato 2, o resultado vai para identifier-3.

⚠️ Regras importantes

  • Todos os operandos devem ser numéricos e elementares.

  • Não é permitido usar campos de data como operandos.

  • ROUNDED pode ser usado para arredondar o resultado final.

  • SIZE ERROR permite tratar casos em que o resultado excede a capacidade do campo destino.

  • Pode ser encerrado com END-MULTIPLY quando aninhado ou usado em instruções compostas.

🔄 Formatos disponíveis

Formato Ação Resultado
MULTIPLY A BY B Multiplica e armazena em B B recebe o resultado
MULTIPLY A BY B GIVING C Multiplica e armazena em C C recebe o resultado

🧠 Dicas práticas

  • Sempre use GIVING se quiser preservar os valores originais dos operandos.

  • Use ROUNDED com campos decimais para evitar perda de precisão.

MULTIPLY X BY Y GIVING Z ROUNDED.
  • Use ON SIZE ERROR para tratar estouros:
MULTIPLY A BY B GIVING C
    ON SIZE ERROR
        DISPLAY "Erro: resultado excedeu o tamanho".

 

✅ Conclusão

A instrução MULTIPLY facilita operações matemáticas diretas no COBOL, sendo especialmente útil quando há necessidade de controle de precisão e tratamento de exceções. Seu uso é simples, mas poderoso, especialmente quando combinado com GIVING, ROUNDED e SIZE ERROR.