instrução ADD
é usada para somar valores numéricos em programas COBOL. Ela permite acumular resultados, somar diretamente a variáveis ou até operar sobre estruturas inteiras usando CORRESPONDING
.
🧾 Sintaxes principais
📌 Formato 1 – Soma direta
ADD valor-1 TO valor-2 [ROUNDED]
[ON SIZE ERROR instrução]
[NOT ON SIZE ERROR instrução]
END-ADD.
Soma
valor-1
avalor-2
e armazena o resultado emvalor-2
.
📌 Formato 2 – Usando GIVING
ADD valor-1 TO valor-2 GIVING resultado [ROUNDED]
[ON SIZE ERROR instrução]
[NOT ON SIZE ERROR instrução]
END-ADD.
Soma
valor-1
+valor-2
e armazena o resultado emresultado
.
📌 Formato 3 – Usando CORRESPONDING
ADD CORRESPONDING grupo-1 TO grupo-2 [ROUNDED]
[ON SIZE ERROR instrução]
[NOT ON SIZE ERROR instrução]
END-ADD.
Soma os campos de mesmo nome dentro de dois grupos de dados.
📥 Exemplos práticos
✅ Soma simples
ADD WS-VLR1 TO WS-TOTAL.
✅ Soma com GIVING
ADD WS-VLR1 TO WS-VLR2 GIVING WS-RESULTADO.
✅ Com arredondamento
ADD WS-NUM1 TO WS-NUM2 GIVING WS-RES ROUNDED.
✅ Com controle de erro
ADD WS-NUM1 TO WS-NUM2
ON SIZE ERROR DISPLAY "ERRO: Valor excede o limite"
NOT ON SIZE ERROR DISPLAY "Soma OK"
END-ADD.
🔎 Explicação dos elementos
Elemento | Função |
---|---|
TO |
Define a variável que receberá o resultado da soma. |
GIVING |
Armazena o resultado em uma nova variável (sem sobrescrever os termos). |
ROUNDED |
Arredonda a parte decimal no resultado final. |
SIZE ERROR |
Executa um bloco caso ocorra estouro de capacidade numérica. |
CORRESPONDING |
Soma campos de mesmo nome entre dois grupos de variáveis. |
END-ADD |
Finaliza explicitamente o bloco do comando ADD . |
🧠 Dicas técnicas
-
Use
GIVING
quando não quiser modificar os operandos originais. -
O uso de
CORRESPONDING
é ideal para tabelas ou estruturas de dados agrupadas. -
Com
ROUNDED
,10.26
pode se tornar10.3
; sem ele, pode ser truncado para10.2
. -
O
END-ADD
é recomendado para comandos aninhados ou condicionais.
⚠️ Regras e restrições
-
Os operandos devem ser variáveis numéricas ou literais numéricos.
-
Campos de data podem ser usados, mas exigem formato compatível.
-
Em ambientes com opção de compilador
ARITH(EXTEND)
, são permitidos até 31 dígitos.
✅ Conclusão
O comando ADD
é versátil e indispensável para qualquer operação de soma em COBOL. Dominar suas variações (TO
, GIVING
, CORRESPONDING
, ROUNDED
) permite maior controle sobre cálculos e legibilidade do código.