| Bellacosa Mainframe apresenta Section e Paragrafos no COBOL uso do perform |
SECTION e PERFORM no COBOL
Depois de aprender IF, READ e variáveis, o próximo grande passo para um programador COBOL é dominar:
SECTION;
PARAGRAPH;
PERFORM;
PERFORM INLINE;
PERFORM OUT-OF-LINE;
PERFORM UNTIL;
PERFORM VARYING;
TEST BEFORE;
TEST AFTER;
TIMES.
Esses comandos controlam praticamente toda a lógica dos programas COBOL batch e online.
O que é SECTION?
SECTION é:
um agrupamento de parágrafos.
Ela organiza grandes blocos de processamento.
Exemplo
PROCESSAMENTO SECTION.
VALIDAR-CLIENTE.
DISPLAY 'VALIDANDO'.
CALCULAR-LIMITE.
DISPLAY 'CALCULANDO'.
Hierarquia COBOL
DIVISION
↓
SECTION
↓
PARAGRAPH
↓
STATEMENTS
O que é PARAGRAPH?
É uma rotina lógica.
Exemplo
CALCULAR-TOTAL.
Analogia simples
Imagine uma empresa.
FINANCEIRO (SECTION)
↓
CALCULAR-JUROS
GERAR-BOLETO
ATUALIZAR-SALDO
RH (SECTION)
↓
CALCULAR-FOLHA
GERAR-HOLERITE
O que é PERFORM?
PERFORM é o comando usado para:
executar rotinas.
Exemplo
PERFORM CALCULAR-TOTAL
Fluxo
MAIN
↓
PERFORM CALCULAR-TOTAL
↓
Executa rotina
↓
Retorna
PERFORM OUT-OF-LINE
É o PERFORM tradicional.
Chama um parágrafo ou SECTION externa.
Exemplo
MAIN.
PERFORM PROCESSAR-CLIENTE
STOP RUN.
PROCESSAR-CLIENTE.
DISPLAY 'PROCESSANDO'.
Fluxo
MAIN
↓
PERFORM
↓
PROCESSAR-CLIENTE
↓
RETORNA
Vantagens
reutilização;
modularização;
manutenção.
PERFORM INLINE
Executa comandos diretamente.
Não precisa criar parágrafo.
Exemplo
PERFORM
DISPLAY 'PROCESSANDO'
END-PERFORM
Fluxo
PERFORM
↓
EXECUTA BLOCO
↓
FIM
Quando usar INLINE?
Pequenas lógicas.
Quando usar OUTLINE?
Processamentos maiores.
Chamar um parágrafo
PERFORM CALCULAR-TOTAL
Chamar vários parágrafos
PERFORM INICIALIZA
PERFORM PROCESSA
PERFORM FINALIZA
PERFORM THRU
Executa vários parágrafos em sequência.
Exemplo
PERFORM INICIO
THRU FIM
Exemplo completo
INICIO.
DISPLAY '1'.
MEIO.
DISPLAY '2'.
FIM.
DISPLAY '3'.
Resultado:
1
2
3
PERFORM SECTION
Também pode chamar uma SECTION inteira.
Exemplo
PERFORM PROCESSAMENTO
Onde PROCESSAMENTO é:
PROCESSAMENTO SECTION.
PERFORM TIMES
Executa quantidade fixa.
Exemplo
PERFORM 5 TIMES
DISPLAY 'OLA'
END-PERFORM
Resultado
OLA
OLA
OLA
OLA
OLA
Muito usado para
testes;
repetições simples;
validações.
PERFORM UNTIL
Loop até condição verdadeira.
Exemplo
PERFORM UNTIL EOF = 'S'
READ ARQCLI
END-PERFORM
Fluxo
CONDIÇÃO?
↓
FALSA
↓
EXECUTA
↓
TESTA NOVAMENTE
Muito usado em leitura de arquivos
PERFORM VARYING
Equivalente ao FOR.
Exemplo
PERFORM VARYING WS-I
FROM 1
BY 1
UNTIL WS-I > 10
DISPLAY WS-I
END-PERFORM
Resultado
1
2
3
4
5
6
7
8
9
10
O que é contador?
Variável usada para controlar repetições.
Exemplo
01 WS-I PIC 9(3).
Contador manual
ADD 1 TO WS-I
Contador automático
PERFORM VARYING
TEST BEFORE
Condição testada antes.
Padrão COBOL.
Exemplo
PERFORM UNTIL WS-I > 10
DISPLAY WS-I
END-PERFORM
Fluxo
TESTA
↓
EXECUTA
↓
TESTA
Pode não executar nenhuma vez
Exemplo
WS-I = 20
Nunca entra no loop.
TEST AFTER
Condição testada depois.
Executa pelo menos uma vez.
Exemplo
PERFORM WITH TEST AFTER
UNTIL WS-I > 10
DISPLAY WS-I
END-PERFORM
Fluxo
EXECUTA
↓
TESTA
↓
EXECUTA
Similar ao DO-WHILE
Comparação
| Tipo | Teste |
|---|---|
| TEST BEFORE | Antes |
| TEST AFTER | Depois |
Exemplo visual
TEST BEFORE
Condição?
↓
Executa
TEST AFTER
Executa
↓
Condição?
Exemplo clássico de leitura batch
OPEN INPUT ARQCLI
PERFORM UNTIL EOF = 'S'
READ ARQCLI
AT END
MOVE 'S' TO EOF
NOT AT END
PERFORM PROCESSAR
END-READ
END-PERFORM
CLOSE ARQCLI
Tipos mais usados de PERFORM
| Tipo | Uso |
|---|---|
| PERFORM parágrafo | Executa rotina |
| PERFORM THRU | Executa faixa |
| PERFORM SECTION | Executa SECTION |
| PERFORM TIMES | Repetição fixa |
| PERFORM UNTIL | Repetição por condição |
| PERFORM VARYING | Loop contador |
| TEST BEFORE | Testa antes |
| TEST AFTER | Testa depois |
| INLINE | Código embutido |
| OUT-OF-LINE | Rotina externa |
Erros comuns de iniciantes
Usar THRU excessivamente
Pode gerar manutenção difícil.
Esquecer contador no VARYING
Loop infinito.
Não controlar EOF
Loop infinito em arquivos.
Usar SECTION gigantes
Dificulta manutenção.
Dicas de programador experiente
✅ Prefira PERFORM de parágrafos nomeados
✅ Use VARYING para tabelas
✅ Use UNTIL para leitura de arquivos
✅ Use TEST AFTER quando precisar executar ao menos uma vez
✅ Evite GO TO quando possível
✅ Mantenha SECTIONs pequenas e organizadas
Resumo rápido
SECTION
↓
Agrupa parágrafos
PARAGRAPH
↓
Contém lógica
PERFORM
↓
Executa rotina
TIMES
↓
Quantidade fixa
UNTIL
↓
Até condição
VARYING
↓
Contador automático
TEST BEFORE
↓
Testa antes
TEST AFTER
↓
Testa depois
Dominar SECTION e PERFORM é um dos maiores passos para evoluir de programador COBOL iniciante para desenvolvedor capaz de entender e manter aplicações corporativas de grande porte em bancos, seguradoras e sistemas críticos do ambiente IBM Z.
Sem comentários:
Enviar um comentário