Translate

Mostrar mensagens com a etiqueta IF COBOL. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta IF COBOL. Mostrar todas as mensagens

quarta-feira, 7 de fevereiro de 2007

COBOL Controle de Fluxo IF e Carga de Paragrafos PERFORM

 

Bellacosa Mainframe e o if e perform no cobol

COBOL : Controle de Fluxo IF e Carga de Paragrafos PERFORM

Dois dos comandos mais importantes do COBOL são:

IF

e

PERFORM

Praticamente toda lógica COBOL usa esses comandos.

Eles controlam:

  • decisões;

  • execução;

  • loops;

  • fluxo batch;

  • regras de negócio.


O que é IF no COBOL?

O IF é usado para:

tomar decisões.


Analogia simples

Imagine:

SE chover
   pegar guarda-chuva
SENÃO
   sair normalmente

Isso é:

lógica condicional.


Sintaxe básica

IF condição
   instrução
END-IF

Exemplo simples

IF SALDO > 0
   DISPLAY 'SALDO POSITIVO'
END-IF

Como funciona?

O COBOL verifica:

SALDO > 0 ?

Se for verdadeiro:

executa DISPLAY

IF com ELSE

IF SALDO > 0
   DISPLAY 'POSITIVO'
ELSE
   DISPLAY 'NEGATIVO'
END-IF

Fluxo lógico

      CONDIÇÃO
        ↓
   VERDADEIRO?
     /     \
   SIM      NÃO
    ↓        ↓
COMANDO1  COMANDO2

IF com várias condições


AND

IF IDADE > 18
AND SALDO > 1000

OR

IF STATUS = 'A'
OR STATUS = 'P'

NOT

IF NOT ERRO

Comparações usadas no IF

OperadorSignificado
=Igual
>Maior
<Menor
>=Maior igual
<=Menor igual
NOTNegação

Exemplo completo

IF SALDO >= 1000
   DISPLAY 'CLIENTE VIP'
ELSE
   DISPLAY 'CLIENTE NORMAL'
END-IF

IF aninhado

IF dentro de IF.


Exemplo

IF STATUS = 'A'
   IF SALDO > 1000
      DISPLAY 'VIP'
   END-IF
END-IF

Problema comum

IFs excessivos deixam código:

complexo.


O que é PERFORM?

PERFORM é usado para:

executar rotinas ou loops.


Um dos comandos mais importantes do COBOL


Analogia simples

Imagine apertar um botão:

EXECUTAR PROCESSAMENTO

Isso é:

PERFORM.


PERFORM simples

PERFORM CALCULAR

O que acontece?

O COBOL:

  1. vai até o parágrafo;

  2. executa;

  3. retorna.


Exemplo completo

PROCEDURE DIVISION.

MAIN.
    PERFORM CALCULAR
    STOP RUN.

CALCULAR.
    DISPLAY 'PROCESSANDO'.

Fluxo visual

MAIN
 ↓
PERFORM CALCULAR
 ↓
CALCULAR
 ↓
RETORNA MAIN

PERFORM UNTIL

Usado para:

repetição (loop).


Exemplo

PERFORM UNTIL EOF = 'S'

   READ ARQCLIENTE
      AT END
         MOVE 'S' TO EOF
   END-READ

END-PERFORM

O que isso faz?

Repete:

até EOF = 'S'

Muito usado em batch

Principalmente:

  • leitura arquivos;

  • processamento registros;

  • relatórios.


Fluxo PERFORM UNTIL

INICIO LOOP
    ↓
LER REGISTRO
    ↓
EOF?
 /      \
NÃO      SIM
 ↓        ↓
CONTINUA FIM

PERFORM VARYING

Similar ao:

FOR.


Exemplo

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

   DISPLAY WS-I

END-PERFORM

Resultado

1
2
3
...
10

Muito usado em tabelas


O que é inline PERFORM?

PERFORM sem parágrafo externo.


Exemplo

PERFORM
   DISPLAY 'TESTE'
END-PERFORM

PERFORM TIMES

Executa quantidade fixa.


Exemplo

PERFORM 5 TIMES
   DISPLAY 'OLA'
END-PERFORM

Resultado

OLA
OLA
OLA
OLA
OLA

IF + PERFORM juntos

Muito comum no COBOL.


Exemplo

IF SALDO > 0
   PERFORM PROCESSAR
ELSE
   PERFORM ERRO
END-IF

Fluxo real batch

LER
 ↓
IF válido
 ↓
PERFORM cálculo
 ↓
WRITE saída

Exemplo batch completo

PERFORM UNTIL EOF = 'S'

   READ CLIENTE
      AT END
         MOVE 'S' TO EOF

      NOT AT END

         IF SALDO > 0
            PERFORM PROCESSA
         ELSE
            PERFORM REJEITA
         END-IF

   END-READ

END-PERFORM

O que é EOF?

End Of File

Fim do arquivo.


Vantagens do IF

  • clareza;

  • decisão;

  • controle lógico.


Vantagens do PERFORM

  • modularização;

  • reutilização;

  • loops organizados;

  • menos GO TO.


COBOL moderno usa muito:

  • IF;

  • END-IF;

  • PERFORM;

  • EVALUATE.


O que o PERFORM substituiu?

Em muitos casos:

GO TO.


Isso ajudou a reduzir:

spaghetti code.


Curiosidades incríveis

1. Grande parte do processamento bancário usa PERFORM UNTIL


2. IF é uma das instruções mais usadas do COBOL


3. Sistemas batch podem executar bilhões de loops PERFORM diariamente


4. O COBOL estruturado reduziu muito uso de GO TO


Erros comuns de iniciantes


1. Esquecer END-IF


2. Criar loops infinitos


3. Misturar muitos IFs aninhados


4. Não controlar EOF corretamente


Dicas importantes

Use END-IF sempre


Prefira PERFORM ao GO TO


Modularize lógica em parágrafos


Controle loops cuidadosamente


Como isso aparece no dia a dia?

Praticamente em:

  • batch;

  • bancos;

  • cartões;

  • DB2;

  • CICS;

  • processamento financeiro.


Resumo rápido

ComandoFunção
IFDecisão
ELSECaminho alternativo
PERFORMExecuta rotina
PERFORM UNTILLoop
PERFORM VARYINGRepetição contador
END-IFFinal IF
EOFFim arquivo

Conclusão

IF e PERFORM são duas das estruturas mais importantes do COBOL.

Elas controlam decisões, execução de rotinas e loops, sendo fundamentais para programas batch e online no ambiente mainframe IBM Z.


terça-feira, 30 de janeiro de 2007

O que é Lógica de Programação em Mainframe?

 

Bellacosa Mainframe e a logica de programação mainframe

O que é Lógica de Programação em Mainframe?

Quando alguém começa a estudar:

  • COBOL;

  • JCL;

  • REXX;

  • Assembler;

  • DB2;

  • programação no z/OS;

existe um conceito que aparece antes de qualquer linguagem:

lógica de programação.

Muitos iniciantes pensam que programar é:

decorar comandos.

Mas na verdade:
programar significa:

resolver problemas usando lógica.


Definição simples

Lógica de programação é:

a forma organizada de pensar para criar soluções computacionais.

Ela ensina:

  • sequência;

  • decisão;

  • repetição;

  • organização;

  • fluxo de processamento.


O que muda no mainframe?

No ambiente mainframe:

a lógica normalmente processa enormes volumes de dados.

Exemplo:

  • milhões de contas bancárias;

  • bilhões de transações PIX;

  • folhas salariais;

  • cartões de crédito;

  • faturamento.


Analogia simples

Imagine ensinar alguém a fazer café.

Você precisa explicar:

  1. pegar água;

  2. ferver;

  3. colocar pó;

  4. filtrar;

  5. servir.

Isso é:

lógica.

O computador funciona exatamente assim:

seguindo passos organizados.


A lógica existe antes da linguagem

Antes de aprender:

  • COBOL;

  • Java;

  • Python;

  • Assembler;

é importante entender:

como pensar como programador.


O que a lógica ensina?


Sequência

Ordem correta das ações.


Decisão

Escolher caminhos.


Repetição

Executar várias vezes.


Variáveis

Guardar informações.


Fluxo

Controlar execução.


Exemplo simples de lógica

LER SALARIO
SE SALARIO > 5000
   MOSTRAR "IMPOSTO MAIOR"
SENAO
   MOSTRAR "IMPOSTO MENOR"

Isso é lógica

Ainda não importa qual linguagem será usada.


Como isso aparece no COBOL?


Exemplo COBOL simples

IF SALARIO > 5000
   DISPLAY 'IMPOSTO MAIOR'
ELSE
   DISPLAY 'IMPOSTO MENOR'
END-IF

A lógica continua igual

Apenas muda a sintaxe.


Principais conceitos da lógica


Entrada

Dados recebidos.

Exemplo:

  • arquivo;

  • teclado;

  • banco DB2.


Processamento

Regras executadas.


Saída

Resultado final.


Fluxo clássico

ENTRADA
   ↓
PROCESSAMENTO
   ↓
SAÍDA

O que é algoritmo?

Algoritmo é:

sequência lógica de passos.


Exemplo algoritmo

1. Ler cliente
2. Validar saldo
3. Atualizar conta
4. Gerar relatório

O que é variável?

Espaço usado para guardar valores.


Exemplo

NOME
SALARIO
IDADE

O que é condição?

Tomada de decisão.


Exemplos

IF
ELSE
EVALUATE

O que é repetição?

Executar várias vezes.


Exemplo COBOL

PERFORM UNTIL EOF='S'

Muito usado no mainframe

Porque batch processa:

  • milhares;

  • milhões;

  • bilhões de registros.


O que é EOF?

End Of File

Fim do arquivo.


Lógica em processamento batch

Exemplo real:

LER REGISTRO
   ↓
VALIDAR
   ↓
CALCULAR
   ↓
GRAVAR
   ↓
LER PRÓXIMO

Isso é a essência do COBOL batch


O que é fluxograma?

Desenho visual da lógica.


Exemplo

INICIO
 ↓
LER ARQUIVO
 ↓
PROCESSAR
 ↓
FIM

Por que lógica é tão importante no mainframe?

Porque sistemas mainframe:

  • processam muito volume;

  • exigem precisão;

  • não podem falhar facilmente.


Um erro lógico pode causar:

  • cálculo errado;

  • perda financeira;

  • falha batch;

  • ABEND;

  • inconsistência DB2.


O que é debugging?

Analisar lógica para encontrar erros.


O que é bug?

Erro na lógica/programação.


Exemplo clássico

Programa deveria somar:

10 + 20 = 30

Mas lógica errada gera:

10 + 20 = 300

Isso é bug lógico


Como lógica aparece no COBOL?

Principalmente em:

  • IF;

  • PERFORM;

  • EVALUATE;

  • READ;

  • WRITE;

  • COMPUTE.


Exemplo real COBOL batch

READ CLIENTE
IF SALDO > 0
   WRITE RELATORIO
END-IF

Como lógica aparece no JCL?

JCL possui lógica mais operacional.

Exemplo:

COND=(0,NE)

Como lógica aparece no scheduler?

Dependências:

JOBB só executa após JOBA

Como lógica aparece no DB2?

Consultas:

SELECT
WHERE
JOIN

Curiosidades incríveis

1. COBOL foi criado para lógica de negócios


2. Grande parte do processamento bancário depende de lógica batch


3. Programadores experientes valorizam lógica mais do que sintaxe


4. A mesma lógica funciona em várias linguagens


Erros comuns de iniciantes


1. Decorar comandos sem entender lógica


2. Não visualizar fluxo do programa


3. Ignorar regras de negócio


4. Não validar dados


Dicas importantes

Aprenda lógica antes de linguagem


Desenhe fluxos


Entenda entrada → processamento → saída


Pratique algoritmos simples


Como lógica aparece no dia a dia do mainframe?

Praticamente em tudo:

  • COBOL;

  • DB2;

  • CICS;

  • batch;

  • JCL;

  • automação;

  • integração.


Exemplo completo simplificado

LER ARQUIVO
 ↓
VALIDAR CPF
 ↓
CALCULAR SALDO
 ↓
ATUALIZAR DB2
 ↓
GERAR RELATÓRIO
 ↓
FIM

Resumo rápido

ConceitoSignificado
LógicaForma organizada de pensar
AlgoritmoSequência de passos
VariávelGuarda dados
CondiçãoDecisão
RepetiçãoLoop
BatchProcessamento em lote
DebugEncontrar erros

Conclusão

Lógica de programação é a base de todo desenvolvimento no ambiente mainframe IBM Z.

Ela permite criar algoritmos organizados para processar grandes volumes de dados com segurança, precisão e eficiência, sendo fundamental para COBOL, JCL, DB2 e todo o ecossistema z/OS.