COBOL - DATA DIVISION - DDE - USAGE clause - Computational items



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

COBOL - DATA DIVISION - data description entry - USAGE clause - Computational items
Enterprise COBOL for z/OS, V4.2, Language Reference

Um item computacional é um valor usado em operações aritméticas.
Deve ser numérico. Se um item de grupo for descrito com um uso computacional, os itens elementares dentro do grupo terão esse uso.

O comprimento máximo de um item computacional é de 18 dígitos decimais, exceto para um item DECIMAL EM PACOTES.
Se a opção do compilador ARITH (COMPAT) estiver em vigor, o comprimento máximo de um item PACKED-DECIMAL será de 18 dígitos decimais.
Se a opção do compilador ARITH (EXTEND) estiver em vigor, o comprimento máximo de um item PACKED-DECIMAL será de 31 dígitos decimais.

A PICTURE de um item computacional pode conter apenas:

  • 9 - One or more numeric character positions
  • S - One operational sign
  • V - One implied decimal point
  • P - One or more decimal scaling positions

Os itens COMPUTATIONAL-1 e COMPUTATIONAL-2 (ponto flutuante interno) não podem ter seqüências de caracteres PICTURE.

BINARY
Especificado para itens de dados binários.
Esses itens têm um equivalente decimal que consiste nos dígitos decimais de 0 a 9, além de um sinal.
Os números negativos são representados como o complemento dos dois do número positivo com o mesmo valor absoluto.

A quantidade de armazenamento ocupada por um item binário depende do número de dígitos decimais definido em sua cláusula PICTURE:

Dígitos na cláusula PICTURE Armazenamento ocupado
1 a 4 2 bytes (halfword - meia palavra)
5 a 9 4 bytes (fullword - palavra completa)
10 a 18 8 bytes (doubleword - palavra dupla)

Os dados binários são big-endian: o sinal operacional está contido no bit mais à esquerda.

Os itens de dados BINARY, COMPUTATIONAL e COMPUTATIONAL-4 podem ser afetados pela opção do compilador TRUNC. Para obter informações sobre o efeito dessa opção do compilador, consulte TRUNC.

PACKED-DECIMAL
Especificado para itens decimais internos.
Esse item aparece no armazenamento em formato decimal compactado.
Existem dois dígitos para cada posição de caractere, exceto a posição de caractere final, que é ocupada pelo dígito de ordem baixa e pelo sinal.
Esse item pode conter qualquer um dos dígitos de 0 a 9, além de um sinal, representando um valor que não exceda 18 dígitos decimais.

A representação de sinal usa a mesma configuração de bit que a representação de sinal de 4 bits em campos decimais zoneados.

COMPUTATIONAL or COMP (binary)
Isso é o equivalente a BINARY.
A frase COMPUTACIONAL é sinônimo de BINARY.

COMPUTATIONAL-1 or COMP-1 (floating-point)
Especificado para itens internos de ponto flutuante (precisão única). Os itens COMP-1 têm 4 bytes.

COMPUTATIONAL-2 or COMP-2 (long floating-point)
Especificado para itens de ponto flutuante interno (precisão dupla).
Os itens COMP-2 têm 8 bytes.

COMPUTATIONAL-3 or COMP-3 (internal decimal)
Isso é equivalente a PACKED-DECIMAL.

COMPUTATIONAL-4 or COMP-4 (binary)
Isso é o equivalente a BINARY.

COMPUTATIONAL-5 or COMP-5 (native binary)
Esses itens de dados são representados no armazenamento como dados binários.
Os itens de dados podem conter valores até a capacidade da representação binária nativa (2, 4 ou 8 bytes), em vez de serem limitados ao valor implícito pelo número de noves na imagem para o item (como é o caso de dados USAGE BINARY).
Quando dados numéricos são movidos ou armazenados em um item COMP-5, o truncamento ocorre no tamanho do campo binário, e não no limite do tamanho da imagem COBOL.
Quando um item COMP-5 é referenciado, o tamanho do campo binário completo é usado na operação.

A opção do compilador TRUNC (BIN) faz com que todos os itens de dados binários (USAGE BINARY, COMP, COMP-4) sejam manipulados como se fossem declarados USAGE COMP-5.

A tabela a seguir mostra várias seqüências de caracteres de imagem, a representação de armazenamento resultante e o intervalo de valores para itens de dados descritos em USAGE COMP-5.

Picture Representação de armazenamento Valores numéricos
S9(1) a S9(4) Meia palavra binária - Binary halfword (2 bytes) -32768 a +32767
S9(5) a S9(9) Palavra completa binária - Binary fullword (4 bytes) -2,147,483,648 a +2,147,483,647
S9(10) a S9(18) Palavras duplas binárias - Binary doubleword (8 bytes) -9,223,372,036,854,775,808 a +9,223,372,036,854,775,807
9(1) a 9(4) Meia palavra binária - Binary halfword (2 bytes) 0 a 65535
9(5) a 9(9) Palavra completa binária - Binary fullword (4 bytes) 0 a 4,294,967,295
9(10) a 9(18) Palavras duplas binárias - Binary doubleword (8 bytes) 0 a 18,446,744,073,709,551,615

A picture para um item de dados COMP-5 pode especificar um fator de escala (ou seja, posições decimais ou posições inteiras implícitas).
Nesse caso, as capacidades máximas listadas na tabela acima devem ser dimensionadas adequadamente.
Por exemplo, um item de dados descrito no PICTURE S99V99 COMP-5 é representado no armazenamento como uma meia palavra binária e suporta um intervalo de valores de -327,68 a +327,67.

NOTA DE USO: Quando a frase ON SIZE ERROR é usada em uma instrução aritmética e um receptor é definido com USAGE COMP-5, o valor máximo que o receptor pode conter é o valor implícito na seqüência de caracteres PICTURE decimal do item.
Qualquer tentativa de armazenar um valor maior que esse máximo resultará em uma condição de erro de tamanho.



© Copyright IBM Corp.