Translate

Mostrar mensagens com a etiqueta loops cobol. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta loops 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.