Translate

Mostrar mensagens com a etiqueta COMP-5. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta COMP-5. Mostrar todas as mensagens

terça-feira, 6 de fevereiro de 2007

Variáveis COBOL: COMP-1, COMP-2, COMP-3, COMP-4, COMP-5, Tipos Numéricos, LEVEL 01, 66, 77, 88

 

Bellacosa Mainframe e a estrutura do cobol com suas variaveis 

Variáveis COBOL: COMP-1, COMP-2, COMP-3, COMP-4, COMP-5, Tipos Numéricos, LEVEL 01, 66, 77, 88

Uma das partes mais importantes do COBOL é o:

tratamento de dados.

O COBOL foi criado para:

  • negócios;

  • bancos;

  • contabilidade;

  • processamento financeiro.

Por isso ele possui um sistema extremamente rico de:

  • variáveis;

  • formatos;

  • níveis;

  • tipos numéricos.


O que é uma variável no COBOL?

Variável é:

uma área de memória usada para armazenar dados.


Exemplo simples

01 WS-NOME PIC X(30).
01 WS-SALDO PIC 9(9)V99.

Estrutura básica de variável COBOL

LEVEL  NOME      PIC

Exemplo

01 WS-IDADE PIC 9(3).

LEVEL NUMBER

O número inicial indica:

nível hierárquico.


Exemplo

01 CLIENTE.
   05 NOME PIC X(30).
   05 IDADE PIC 9(3).

Hierarquia visual

01 CLIENTE
   ↓
05 NOME
05 IDADE

Tipos básicos de dados COBOL


Numérico

Usa:

PIC 9

Exemplo

01 WS-VALOR PIC 9(5).

Aceita:

12345

Alfanumérico

Usa:

PIC X

Exemplo

01 WS-NOME PIC X(20).

Aceita:

  • letras;

  • números;

  • símbolos.


Alfabético

Usa:

PIC A

Exemplo

01 WS-LETRAS PIC A(10).

Aceita:

apenas letras e espaços.


O que é PIC?

Picture Clause

Define:

formato da variável.


Exemplos importantes


PIC X(10)

Texto.


PIC 9(5)

Número inteiro.


PIC 9(5)V99

Decimal implícito.


O que significa V?

Vírgula decimal implícita.


Exemplo

PIC 9(5)V99

Valor:

1234567

Interpretado como:

12345,67

Tipos COMP no COBOL

Os COMP representam:

formatos internos de armazenamento.

Usados para:

  • performance;

  • economia memória;

  • cálculos rápidos.


COMP

Também chamado:

binário.


Exemplo

01 WS-VALOR PIC S9(4) COMP.

Muito usado para:

  • contadores;

  • índices;

  • performance.


COMP-1

Floating Point Simples Precisão


Usa ponto flutuante


Exemplo

01 WS-REAL PIC S9(5)V99 COMP-1.

Muito usado em:

  • cálculos científicos;

  • engenharia.


COMP-2

Floating Point Dupla Precisão


Mais precisão que COMP-1


Exemplo

01 WS-DOUBLE PIC S9(10)V99 COMP-2.

COMP-3

O mais famoso do COBOL.

Packed Decimal


Armazena números compactados

Muito usado em:

  • bancos;

  • financeiro;

  • batch.


Exemplo

01 WS-SALDO PIC S9(7)V99 COMP-3.

Vantagens

  • economiza espaço;

  • excelente precisão decimal.


Muito importante em:

  • dinheiro;

  • contabilidade.


O que causa S0C7?

Frequentemente:

erro em COMP-3 inválido.


COMP-4

Representação:

binária.

Dependente compilador/plataforma.


Exemplo

01 WS-CONTADOR PIC S9(4) COMP-4.

COMP-5

Binário nativo

Mais próximo da arquitetura máquina.


Muito usado em:

  • integração;

  • performance;

  • chamadas sistema.


Exemplo

01 WS-INDICE PIC S9(9) COMP-5.

Diferença simplificada

TipoCaracterística
COMP-1Float simples
COMP-2Float dupla
COMP-3Decimal compactado
COMP-4Binário
COMP-5Binário nativo

O que é VARCHAR no COBOL?

COBOL tradicional não possui VARCHAR nativo como SQL.

Mas pode simular usando:

  • tamanho;

  • conteúdo variável.


Exemplo comum

01 WS-NOME.
   49 WS-NOME-LEN PIC S9(4) COMP.
   49 WS-NOME-TXT PIC X(100).

Muito usado com DB2

Especialmente em:

VARCHAR DB2.


LEVEL NUMBERS no COBOL


LEVEL 01

Maior estrutura lógica.


Exemplo

01 CLIENTE.

LEVEL 05

Subcampo.


LEVEL 49

Muito usado em VARCHAR.


LEVEL 66

RENAMES

Cria nome alternativo para grupo.


Exemplo

66 DADOS-CLIENTE RENAMES NOME THRU SALDO.

LEVEL 77

Variável independente simples.


Exemplo

77 WS-TOTAL PIC 9(5).

Não possui subníveis


LEVEL 88

Condition Name

Muito poderoso no COBOL.

Cria:

condições legíveis.


Exemplo

01 WS-STATUS PIC X.

   88 STATUS-OK VALUE 'S'.
   88 STATUS-ERRO VALUE 'N'.

Uso

IF STATUS-OK

Muito mais legível.


Sem 88 seria:

IF WS-STATUS = 'S'

Vantagens do LEVEL 88

  • legibilidade;

  • manutenção;

  • semântica negócio.


Exemplo real completo

01 CLIENTE.
   05 NOME        PIC X(30).
   05 SALDO       PIC S9(7)V99 COMP-3.
   05 STATUS      PIC X.

      88 ATIVO    VALUE 'A'.
      88 BLOQUEADO VALUE 'B'.

Como isso aparece no dia a dia?

Praticamente em:

  • bancos;

  • PIX;

  • cartões;

  • DB2;

  • batch;

  • CICS.


Curiosidades incríveis

1. COMP-3 é um dos formatos mais famosos do mundo mainframe


2. Muitos sistemas financeiros dependem fortemente de packed decimal


3. LEVEL 88 é amado por programadores COBOL experientes


4. Grande parte dos ABEND S0C7 envolve COMP-3


Erros comuns de iniciantes


1. Confundir PIC X com PIC 9


2. Não entender decimal implícito


3. Usar COMP inadequadamente


4. Ignorar LEVEL 88


Dicas importantes

Use COMP-3 para valores monetários


Use LEVEL 88 para regras negócio


Organize variáveis hierarquicamente


Entenda packed decimal


Resumo rápido

ElementoFunção
PIC XTexto
PIC 9Numérico
PIC AAlfabético
COMP-1Float simples
COMP-2Float dupla
COMP-3Packed decimal
COMP-4Binário
COMP-5Binário nativo
01Estrutura principal
66RENAMES
77Variável isolada
88Condição lógica

Conclusão

O sistema de variáveis do COBOL é extremamente poderoso e foi projetado para suportar processamento corporativo de alta confiabilidade.

Tipos COMP, níveis hierárquicos e estruturas como LEVEL 88 tornam o COBOL ideal para sistemas financeiros críticos no ambiente mainframe IBM Z.