sábado, 18 de fevereiro de 2017

Variáveis numéricas (Computational items)

Olá!

Para os sistemas realizam cálculos de valores que abrangem uma grande quantidade de dados, ou também, para aqueles que possuem a necessidade de trabalhar com várias casas decimais, há sempre a preocupação quanto a declaração variável numérica; qual o tipo de dado?; tamanho?; com ou sem sinal?; São algumas questões sobre a variável a ser declarada. 

Nos sistemas bancários por exemplo, pode ser facilmente visto a declaração de uma variável numérica da seguinte forma: PIC S9(15)V9(02). 

Nossa, é realmente necessária uma variável com 17 posições? Sim. Pense no faturamento de um banco de proporção mundial. Então, possivelmente somente 2 posições após o ponto flutuante não serão suficientes, assim, alguns sistemas precisam trabalhar com variáveis com mais de 17 posições.

  • Itens computacionais: é um valor usado em operações aritméticas. Deve ser numérico. E um item de grupo denominado como item computacional, possui os seus elementos numéricos.

No Cobol os itens computacionais possuem o comprimento padrão de 18 dígitos decimais, exceto para um item PACKED-DECIMAL que pode conter o comprimento máximo de 31 dígitos decimais.

O comprimento de um item PACKED-DECIMAL pode variar de acordo com a opção do compilador que estiver em vigor. Sendo, se a opção ARITH(COMPAT) estiver ativa o item PACKED-DECIMAL possui o comprimento máximo de 18 dígitos decimais, caso a opção ARITH(EXTEND) for ativada o comprimento máximo do item PACKED-DECIMAL passa a ser de 31 dígitos decimais.

A declaração (PIC - PICTURE) de um item computacional pode conter apenas S9VP, conforme:
S - Um sinal operacional
9 - Uma ou mais posições numéricas de caracteres
V - Um ponto decimal implícito
P - Uma ou mais posições de escala decimal

Exemplo: PIC S9(15)V9(02)

Observação: itens COMP-1 e COMP-2 items não possuem PICTURE, pois utilizam ponto flutuante interno com precisão.

A quantidade de armazenamento ocupada por um item binário depende do número de dígitos decimais definidos em sua cláusula PICTURE, veja na tabela abaixo:

Dígitos na cláusula PICArmazenamento ocupado
S9(01) até S9(04)2 bytes (halfword)
S9(05) até S9(09)4 bytes (fullword)
S9(10) até S9(18)8 bytes (doubleword)

Os dados binários são big-endian: o sinal operacional está contido no bit mais à esquerda. E os itens de dados BINARY, COMPUTATIONAL e COMPUTATIONAL-4 podem ser afetados pela opção do compilador TRUNC.

Veja também a comparação dos tamanhos de tipo de dado no post: Conversão de tipo de dado.
FELIPE BARBOSA FERREIRA

Até o próximo post!

Nenhum comentário:

Postar um comentário