Translate

Mostrar mensagens com a etiqueta variáveis cobol. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta variáveis cobol. Mostrar todas as mensagens

quarta-feira, 29 de outubro de 2025

☕💣 Lab: SEU PRIMEIRO PLANTÃO NO MAINFRAME — LABORATÓRIO COMPLETO DE LÓGICA DE PROGRAMAÇÃO IBM Z PARA INICIANTES 💣☕

 

Bellacosa Mainframe Laboratorio de Logica de Programação Mainframe

☕💣 “SEU PRIMEIRO PLANTÃO NO MAINFRAME” — LABORATÓRIO COMPLETO DE LÓGICA DE PROGRAMAÇÃO IBM Z PARA INICIANTES 💣☕

Aprenda a pensar como um programador de alta plataforma antes mesmo de dominar COBOL


🔥 OBJETIVO DO LABORATÓRIO

Neste laboratório você irá aprender:

✅ Como pensar em lógica Mainframe
✅ Como funciona o raciocínio batch
✅ Variáveis
✅ Validações
✅ Estruturas de repetição
✅ Sections e Paragraphs
✅ Procedures
✅ Subrotinas
✅ Modularização
✅ Boas práticas de alta plataforma
✅ Erros clássicos de iniciantes
✅ Como programadores IBM Z organizam sistemas reais


☕ CENÁRIO DO LABORATÓRIO

Você foi contratado para trabalhar em um banco.

Sua missão:

💣 PROCESSAR UM ARQUIVO DE CLIENTES

Cada registro possui:

NOME
IDADE
SALDO
STATUS

O programa deve:

  1. Ler registros

  2. Validar dados

  3. Calcular bônus

  4. Gerar relatório

  5. Exibir totais


🔥 PRIMEIRA LIÇÃO — PENSAR COMO MAINFRAME

Antes do código:

☕ O PROGRAMADOR MAINFRAME PENSA EM FLUXO


Entrada

Arquivo de clientes

Processamento

Validar
Calcular
Atualizar
Contabilizar

Saída

Relatório
Arquivo atualizado
Totais

💣 ISSO É O DNA DO BATCH

No Mainframe:

  • entrada

  • processamento

  • saída

são sagrados.


☕ ETAPA 1 — DECLARANDO VARIÁVEIS

No Mainframe tudo precisa ser previsível.


🔥 TIPOS MAIS COMUNS

Texto

01 WS-NOME            PIC X(30).

Número inteiro

01 WS-IDADE           PIC 9(03).

Valores monetários

01 WS-SALDO           PIC 9(07)V99.

Indicadores lógicos

01 WS-FIM-ARQUIVO     PIC X VALUE 'N'.

☕ DICA BELLACOSA MAINFRAME

🔥 Nome de variável precisa explicar a intenção

RUIM:

01 A PIC 9(5).

BOM:

01 WS-TOTAL-CLIENTES PIC 9(5).

💣 O MAINFRAME SOBREVIVE POR LEGIBILIDADE

Quem mantém sistemas bancários precisa entender rápido o código.


☕ ETAPA 2 — ESTRUTURA DO PROGRAMA

O COBOL corporativo normalmente segue:

IDENTIFICATION DIVISION
ENVIRONMENT DIVISION
DATA DIVISION
PROCEDURE DIVISION

🔥 O CORAÇÃO DA LÓGICA

PROCEDURE DIVISION

Aqui vive:

  • fluxo

  • validação

  • cálculos

  • repetições


☕ ETAPA 3 — SECTIONS E PARAGRAPHS

SECTION

Agrupa grandes áreas do programa.


PARAGRAPH

Divide tarefas menores.


💣 EXEMPLO CORPORATIVO

PROCESSAMENTO-SECTION.

    PERFORM LE-ARQUIVO
    PERFORM VALIDA-DADOS
    PERFORM CALCULA-BONUS
    PERFORM GRAVA-RELATORIO.

☕ VANTAGEM DISSO

✅ Organização
✅ Manutenção
✅ Reuso
✅ Facilidade de debugging
✅ Clareza


🔥 ETAPA 4 — LEITURA DE REGISTROS

Todo batch gira em torno disso.


💣 MODELO CLÁSSICO MAINFRAME

PERFORM UNTIL WS-FIM-ARQUIVO = 'S'

    PERFORM LE-REGISTRO

    IF WS-FIM-ARQUIVO NOT = 'S'
       PERFORM PROCESSA-REGISTRO
    END-IF

END-PERFORM.

☕ O QUE O INICIANTE PRECISA ENTENDER

O batch:

  • processa

  • repete

até acabar o arquivo.


🔥 ETAPA 5 — LAÇOS DE REPETIÇÃO

☕ 1. PERFORM UNTIL

Mais usado em batch.


Exemplo

PERFORM UNTIL WS-FIM = 'S'

Repete até condição ser verdadeira.


☕ 2. PERFORM VARYING

Semelhante ao FOR.


Exemplo

PERFORM VARYING WS-INDICE FROM 1 BY 1
UNTIL WS-INDICE > 10

☕ 3. PERFORM TIMES

Executa quantidade fixa.


Exemplo

PERFORM 5 TIMES
   DISPLAY 'MAINFRAME'
END-PERFORM.

💣 ERRO CLÁSSICO DE INICIANTE

Criar loop infinito.

Exemplo perigoso:

PERFORM UNTIL WS-FIM = 'S'

Sem alterar WS-FIM.

Resultado:

  • CPU presa

  • JOB travado

  • consumo absurdo


☕ ETAPA 6 — VALIDAÇÕES

🔥 MAINFRAME AMA VALIDAÇÃO

Sistemas bancários precisam ser paranoicos.


☕ TIPOS DE VALIDAÇÃO


Campo vazio

IF WS-NOME = SPACES

Número inválido

IF WS-IDADE IS NUMERIC

Faixa permitida

IF WS-IDADE >= 18

Status permitido

IF WS-STATUS = 'A'

💣 DICA CORPORATIVA

Sempre valide:

  • entrada

  • arquivo

  • cálculo

  • retorno

  • integração


☕ ETAPA 7 — CÁLCULO DE BÔNUS

Regra:

Se saldo > 1000:

  • bônus = 10%


🔥 EXEMPLO

IF WS-SALDO > 1000
   COMPUTE WS-BONUS = WS-SALDO * 0.10
ELSE
   MOVE 0 TO WS-BONUS
END-IF.

☕ ETAPA 8 — MODULARIZAÇÃO

💣 O SEGREDO DOS SISTEMAS GIGANTES

Separar responsabilidades.


🔥 EXEMPLO

LEITURA
VALIDAÇÃO
PROCESSAMENTO
RELATÓRIO
FINALIZAÇÃO

☕ ISSO REDUZ

✅ Bugs
✅ Retrabalho
✅ Confusão
✅ Dependência de pessoas


☕ ETAPA 9 — SUBROTINAS

Grandes empresas usam MUITO isso.


🔥 O QUE É SUBROTINA?

Programa auxiliar reutilizável.


Exemplo

CALCULA-JUROS
VALIDA-CPF
FORMATA-DATA

💣 VANTAGEM

Um único módulo pode ser usado por:

  • banco

  • cartão

  • seguros

  • investimentos


☕ CHAMADA DE SUBROTINA

CALL 'CALCJURO'

☕ ETAPA 10 — FUNÇÕES

Funções retornam valores.


🔥 EXEMPLO

FUNCTION CURRENT-DATE

☕ MUITAS FUNÇÕES MODERNAS COBOL

  • data

  • matemática

  • string

  • conversão


💣 O QUE O INICIANTE PRECISA EVITAR


🔥 1. GOTO EM EXCESSO

Código vira espaguete.


🔥 2. NOMES RUINS

Dificultam manutenção.


🔥 3. DUPLICAÇÃO

Mesmo código repetido.


🔥 4. FALTA DE VALIDAÇÃO

Causa bugs perigosos.


🔥 5. TENTAR FAZER TUDO NUM BLOCO

Divida em procedures.


☕ LABORATÓRIO PRÁTICO — FLUXO COMPLETO

💣 OBJETIVO

Processar 3 clientes.


🔥 PASSO 1 — INICIALIZAÇÃO

MOVE 0 TO WS-TOTAL
MOVE 'N' TO WS-FIM

🔥 PASSO 2 — LOOP PRINCIPAL

PERFORM UNTIL WS-FIM = 'S'

🔥 PASSO 3 — LEITURA

READ CLIENTE-ARQ

🔥 PASSO 4 — VALIDAÇÃO

IF WS-SALDO IS NUMERIC

🔥 PASSO 5 — PROCESSAMENTO

COMPUTE WS-BONUS = WS-SALDO * 0.10

🔥 PASSO 6 — ACUMULADOR

ADD WS-BONUS TO WS-TOTAL

🔥 PASSO 7 — RELATÓRIO

DISPLAY WS-TOTAL

☕ RESULTADO FINAL ESPERADO

O programa:

  • processa clientes

  • valida dados

  • calcula bônus

  • gera total


💣 ISSO É O INÍCIO DA ENGENHARIA MAINFRAME

Você acabou de praticar:

✅ lógica imperativa
✅ lógica procedural
✅ lógica estruturada


☕ COMO PROGRAMADORES MAINFRAME PENSAM?

Eles perguntam:

O dado entrou correto?
O arquivo está íntegro?
A rotina está modularizada?
O batch aguenta milhões de registros?
O operador conseguirá diagnosticar erro?

🔥 ISSO É ALTA PLATAFORMA

Não é apenas programar.

É:

  • previsibilidade

  • confiabilidade

  • rastreabilidade

  • engenharia


☕ CURIOSIDADES DO MUNDO REAL


💣 Muitos bancos ainda usam lógica escrita nos anos 80

E continuam funcionando.


💣 Um erro de loop pode consumir milhões em CPU

Por isso revisão é levada extremamente a sério.


💣 COBOL foi desenhado para manutenção humana

Legibilidade sempre foi prioridade.


💣 Grandes batches processam bilhões de registros

Tudo baseado nessa lógica.


☕ DESAFIO FINAL PARA O ALUNO

Tente adicionar:

✅ validação de idade
✅ tratamento de saldo negativo
✅ contador de clientes inválidos
✅ relatório final formatado
✅ cálculo de média


🔥 MISSÃO CONCLUÍDA

Você deu os primeiros passos no raciocínio que move:

  • bancos

  • governos

  • cartões

  • seguradoras

  • bolsas financeiras


💣 A GRANDE VERDADE DO MAINFRAME

Antes de aprender comandos…

☕ O PROGRAMADOR IBM Z PRECISA APRENDER A PENSAR COMO ENGENHEIRO.


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.