| 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
| Tipo | Característica |
|---|---|
| COMP-1 | Float simples |
| COMP-2 | Float dupla |
| COMP-3 | Decimal compactado |
| COMP-4 | Binário |
| COMP-5 | Biná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
| Elemento | Função |
|---|---|
| PIC X | Texto |
| PIC 9 | Numérico |
| PIC A | Alfabético |
| COMP-1 | Float simples |
| COMP-2 | Float dupla |
| COMP-3 | Packed decimal |
| COMP-4 | Binário |
| COMP-5 | Binário nativo |
| 01 | Estrutura principal |
| 66 | RENAMES |
| 77 | Variável isolada |
| 88 | Condiçã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.