COBOL - Declaração de operandos aritméticos - www.cadcobol.com.br


Volta a página anterior

Volta ao Menu Principal


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

Arithmetic statement operands - Declaração de operandos aritméticos

The data descriptions of operands in an arithmetic statement need not be the same.
As descrições de dados de operandos em uma instrução aritmética não precisa ser o mesmo.

Throughout the calculation, the compiler performs any necessary data conversion and decimal point alignment.
Em todo o cálculo, o compilador executa qualquer conversão de dados necessários e alinhamento do ponto decimal.

Size of operands
Tamanho dos operandos

If the ARITH(COMPAT) compiler option is in effect, the maximum size of each operand is 18 decimal digits.
Se a opção de compilador ARITH (COMPAT) está em vigor, o tamanho máximo de cada operando é de 18 dígitos decimais.

If the ARITH(EXTEND) compiler option is in effect, the maximum size of each operand is 31 decimal digits.
Se a opção de compilador ARITH (EXTEND) está em vigor, o tamanho máximo de cada operando é de 31 dígitos decimais.

The composite of operands is a hypothetical data item resulting from aligning the operands at the decimal point and then superimposing them on one another.
A composição de operandos é um item de dados hipotéticos resultantes de alinhar os operandos no ponto decimal e depois sobrepondo-los em um outro.

The following table shows how the composite of operands is determined for arithmetic statements:
A tabela a seguir mostra como o composto de operandos é determinada por declarações de aritmética:

How the composite of operands is determined - Como a composição de operandos é determinado
Comando Determinação da composição de operandos
SUBTRACT
ADD
Superimposing all operands in a given statement except those following the word GIVING

Sobrepondo todos os operandos em uma declaração dada, exceto aqueles que seguem a palavra GIVING
MULTIPLY Superimposing all receiving data items

Sobreposição de todos os elementos de recepção de dados
DIVIDE Superimposing all receiving data items except the REMAINDER data item

Sobrepondo todos os itens de dados recebido, exceto o item de dados REMAINDER
COMPUTE Restriction does not apply

Restrição não se aplica

For example, assume that each item is defined as follows in the data division:
Por exemplo, suponha que cada item é definido como segue na DATA DIVISION:


A  PICTURE 9(7)V9(5).
B  PICTURE 9(11)V99.
C  PICTURE 9(12)V9(3).

If the following statement is executed, the composite of operands consists of 17 decimal digits:
Se a seguinte declaração é executado, o composto de operandos é composto por 17 dígitos decimais:

ADD A B TO C

It has the following implicit description:
Ele tem a seguinte descrição implícita:

COMPOSITE-OF-OPERANDS PICTURE 9(12)V9(5).

In the ADD and SUBTRACT statements, if the composite of operands is 18 digits or less with the ARITH(COMPAT) compiler option, or 31 digits or less with the ARITH(EXTEND) compiler option, the compiler ensures that enough places are carried so that no significant digits are lost during execution.
Nas declarações ADD e SUBTRACT, se a composição de operandos é de 18 dígitos ou menos com a opção de compilador Arith (COMPAT), ou 31 dígitos ou menos com a opção de compilador Arith (EXTEND), o compilador aloca espaço suficiente de carregava para que dígitos não significativos não sejam perdidos durante a execução.

In all arithmetic statements, it is important to define data with enough digits and decimal places to ensure the desired accuracy in the final result.
For more information, see the section on intermediate results in the COBOL for AIX Programming Guide.
Em todas as instruções aritméticas, é importante definir os dados com dígitos e casas decimais suficiente para garantir a precisão desejada no resultado final.
Para mais informações, consulte a seção sobre os resultados intermediários no COBOL para AIX Guia de Programação.

Overlapping operands
Sobreposição de operandos

When operands in an arithmetic statement share part of their storage (that is, when the operands overlap), the result of the execution of such a statement is unpredictable. Quando operandos em uma instrução aritmética for maior de que seu armazenamento (isto é, quando os operandos fazem sobreposição), o resultado da execução de tal declaração é imprevisível.

Multiple results
Resultados múltiplos

When an arithmetic statement has multiple results, execution conceptually proceeds as follows:
Quando uma instrução aritmética tem vários resultados, a execução conceitualmente procede como segue:

  1. The statement performs all arithmetic operations to find the result to be placed in the receiving items, and stores that result in a temporary location.
    A declaração executa todas as operações aritméticas para encontrar o resultado a ser colocado nos itens de recebimento, e memória que resultam em um local temporário.
  2. A sequence of statements transfers or combines the value of this temporary result with each single receiving field. The statements are considered to be written in the same left-to-right order in which the multiple results are listed.
    A seqüência de instruções ou transferências combina o valor desse resultado temporário com cada campo de recepção. As declarações são consideradas como escrito na ordem da esquerda para a direita mesmo em que a vários resultados sejam listados.

For example, executing the following statement:
Por exemplo, executando a seguinte instrução:

ADD A, B, C, TO C, D(C), E.

is equivalent to executing the following series of statements:
é equivalente a executar a seguinte série de declarações:

ADD A, B, C GIVING TEMP.
ADD TEMP TO C.
ADD TEMP TO D(C).
ADD TEMP TO E.

In the above example, TEMP is a compiler-supplied temporary result field. When the addition operation for D(C) is performed, the subscript C contains the new value of C.
No exemplo acima, TEMP é um compilador fornecido pelo campo de resultado provisório. Quando a operação de adição de D (C) é realizada, o índice C contém o novo valor de C.