Saltar navegação

S01 - ADD

Conceitos

A instrução ADD é utilizada para somar o conteúdo dos operandos da instrução. Os operandos deverão ser do tipo numérico e a instrução ADD tem três formatos:

Formato 1:

ADD operando-1 TO operando-2 [ROUNDED] [ON SIZE ERROR declaração-imperativa-1]

Neste formato, a instrução ADD soma o conteúdo das variáveis ou literais de operando-1 ao conteúdo das variáveis de operando-2 e armazena o resultado da soma nas variáveis de operando-2. Os valores existentes em operando-2 são perdidos.

Em operando-1 e operando-2 podem existir diversas variáveis. As variáveis de operando-1 podem ser literais numéricas e as variáveis de operando-2 devem ser variáveis do tipo numérico.

Por exemplo, dadas as variáveis;

77 VALOR-1 PIC 99 VALUE 5.

77 VALOR-2 PIC 99 VALUE 10.

77 VALOR-3 PIC 99 VALUE 12.

77 VALOR-4 PIC 99 VALUE 13.

A instrução "ADD VALOR-1 VALOR-2 TO VALOR-3 VALOR-4" terá como resultado:

VALOR-1 = 5

VALOR-2 = 10

VALOR-3 = 27

VALOR-4 = 28

Formato 2:

ADD operando-1 TO operando-2 GIVING operando-3 [ROUNDED] [ON SIZE ERROR declaração-imperativa-1]

Neste formato, a instrução ADD soma o conteúdo das variáveis de operando-1 ao conteúdo das variáveis de operando-2 e armazena o resultado da soma nas variáveis de operando-3. Os valores existentes em operando-3 são perdidos.

Em operando-1 e operando-2 podem existir diversas variáveis. As variáveis de operando-1 e operando-2 podem ser literais numéricas e as variáveis de operando-3 devem ser variáveis do tipo numérico.

Por exemplo, Usando as variáveis definidas acima, a instrução "ADD VALOR-1 TO VALOR-2 GIVING VALOR-3 VALOR-4, terá como resultado:

VALOR-1 = 5

VALOR-2 = 10

VALOR-3 = 15

VALOR-4 = 15

Formato 3:

ADD CORRESPONDING (ou CORR) operando-1 TO operando-2 [ROUNDED] [ON SIZE ERROR declaração-imperativa-1]

Neste formato os operandos deverão ser itens de grupo e a instrução ADD soma o conteúdo dos itens elementares de operando-1 ao conteúdo dos itens elementares de operando-2 e armazena o resultado da soma nos itens elementares de operando-2. Os itens elementares dos dois operandos deverão ter o mesmo nome e o mesmo tamanho.

Dados os operandos:

01 CONJUNTO-01.

05 VALOR-01 PIC 99 VALUE 5.

05 VALOR-02 PIC 99 VALUE 4.

01 CONJUNTO-02.

05 VALOR-01 PIC 99 VALUE 3.

05 VALOR-02 PIC 99 VALUE 2.

Por exemplo, a instrução "ADD CORR CONJUNTO-01 TO CONJUNTO-02, terá como resultado:

CONJUNTO-01.

VALOR-01 = 5

VALOR-02 = 4

CONJUNTO-02.

VALOR-01 = 8

VALOR-02 = 6

Cláusulas Adicionais

A cláusula "ROUNDED" é usada quando os operandos forem decimais. Se os operandos que receberem o resultado da instrução ADD não tiverem casas decimais suficientes, ocorrerá truncamento e o resultado perderá as decimais. A cláusula ROUNDED executa o arrendondamento clássico do resultado. Os valores menores que 5 são truncados, e os maiores são arredondados para cima.

A cláusula "ON SIZE ERROR declaração-imperativa-1" faz com que a declaração-imperativa-1 seja executada quando ocorrer estouro no operando receptor do resultado. Normalmente esta cláusula é ultilizada para exibir uma mensagem de erro, parar o programa ou desviar a execução do programa para um parágrafo especial de tratamento de erro.

Como exemplo a instrução "ADD VALOR-1 TO VALOR-2 ON SIZE ERROR DISPLAY “ESTOURO DO CAMPO DE RESULTADO” STOP RUN.

Licença: licença proprietária