Translate

Mostrar mensagens com a etiqueta Laboratório COBOL. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta Laboratório COBOL. Mostrar todas as mensagens

domingo, 15 de junho de 2025

Laboratório Prático de COBOL Mainframe

 

Bellacosa Mainframe e o laboratorio pratico de COBOL

☕ Um Café no Bellacosa Mainframe

Laboratório Prático de COBOL Mainframe

Este laboratório foi desenvolvido utilizando uma metodologia de aprendizagem incremental, semelhante ao treinamento de um Padawan: cada exercício introduz um novo conceito, reforça os conhecimentos anteriores e prepara o aluno para o próximo desafio. A ideia não é apenas aprender comandos da linguagem COBOL, mas compreender como um programador de Mainframe pensa, organiza e resolve problemas de negócio.

Durante a execução dos laboratórios, preste atenção principalmente na estrutura dos programas, na nomenclatura das variáveis, na organização das divisões (DIVISION, SECTION e PARAGRAPH), na indentação do código e nas mensagens emitidas pelo compilador. Um bom desenvolvedor COBOL dedica mais tempo entendendo a lógica do programa do que simplesmente escrevendo instruções.

Evite copiar e colar as soluções. Antes de consultar o gabarito, tente resolver cada exercício sozinho. Os erros fazem parte do aprendizado e ajudam a desenvolver o raciocínio lógico necessário para ambientes corporativos.

Ao concluir cada laboratório, faça pequenas modificações no programa: altere valores, acrescente novos campos, crie validações e experimente diferentes abordagens. Essa prática fortalece a compreensão da linguagem e aumenta sua confiança.

Para evoluir, revise frequentemente os laboratórios anteriores, leia códigos escritos por outros desenvolvedores, estude JCL, VSAM, Db2 e CICS paralelamente e mantenha uma rotina constante de prática. No Mainframe, experiência é construída linha por linha, programa por programa e desafio após desafio.

20 Labs para Transformar um Jovem Aprendiz em um Programador COBOL Padawan

Objetivo: Este laboratório foi criado para quem possui apenas conhecimentos básicos de informática (Windows, arquivos, pastas e editores de texto) e deseja aprender COBOL de forma prática, evoluindo passo a passo até os primeiros programas profissionais em IBM Mainframe.

Cada laboratório foi organizado da seguinte forma:

  • 🎯 Objetivo

  • 📚 O que você aprenderá

  • 🛠️ Passo a passo

  • 💻 Exercício

  • ✅ Solução comentada

  • 💡 Dicas Bellacosa

  • ☕ Curiosidade Mainframe


LAB 01 – Seu Primeiro "Hello World"

🎯 Objetivo

Aprender a estrutura básica de um programa COBOL.

📚 Conceitos

  • IDENTIFICATION DIVISION

  • PROCEDURE DIVISION

  • DISPLAY

  • STOP RUN

🛠️ Passo a passo

  1. Crie um novo programa.

  2. Dê o nome HELLO001.

  3. Digite a estrutura mínima.

  4. Compile.

  5. Execute.

💻 Exercício

Exiba:

Olá Mainframe!

✅ Solução

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO001.

PROCEDURE DIVISION.
    DISPLAY "OLA MAINFRAME!"
    STOP RUN.

💡 Dicas

Sempre utilize nomes significativos.

Evite nomes como:

AAA001
TESTE99
PROGRAMA1

Prefira:

CLIENTE
CALCSAL
FATURA

☕ Curiosidade

Um programa COBOL pode conter dezenas de milhares de linhas sem perda de legibilidade quando bem organizado.


LAB 02 – Conhecendo as DIVISIONS

Objetivo

Entender a organização de um programa COBOL.

Aprender:

  • Identification

  • Environment

  • Data

  • Procedure

Exercício

Adicione todas as DIVISIONS mesmo que estejam vazias.

Curiosidade

Essa organização existe desde 1959.

Ainda funciona perfeitamente.


LAB 03 – Variáveis (WORKING-STORAGE)

Aprender:

  • PIC X

  • PIC 9

  • VALUE

Exercício

Criar:

Nome
Idade
Cidade

Mostrar na tela.

Solução

Utilizar DISPLAY para cada variável.

Dica

Pense na WORKING-STORAGE como a memória RAM do programa.


LAB 04 – MOVE

Aprender:

MOVE

Exercício

Mover:

JOÃO

para

CLIENTE

Depois mostrar.

Curiosidade

MOVE é uma das instruções mais utilizadas do COBOL.


LAB 05 – Matemática

Aprender

ADD

SUBTRACT

MULTIPLY

DIVIDE

COMPUTE

Exercício

Criar uma calculadora simples.

Entrada:

10

20

Saída:

Soma

Subtração

Multiplicação

Divisão

Dica

Prefira COMPUTE quando a expressão ficar grande.


LAB 06 – IF

Aprender decisões.

Exercício

Se idade >=18

Mostrar

MAIOR

Senão

MENOR

Curiosidade

IF aninhado pode ficar difícil de ler.

Nos próximos labs veremos alternativas melhores.


LAB 07 – EVALUATE

Aprender o "switch" do COBOL.

Exercício

Digite:

1
2
3

Mostrar:

Janeiro

Fevereiro

Março

Dica Bellacosa

Muitos programadores usam IF.

Os experientes preferem EVALUATE.


LAB 08 – PERFORM

Criar laços.

Exercício

Mostrar:

1

2

3

...

10

Aprender

PERFORM VARYING


LAB 09 – Tabelas

Aprender:

OCCURS

Exercício

Cadastrar

5 nomes.

Mostrar todos.

Curiosidade

Aqui começa o verdadeiro poder do COBOL.


LAB 10 – SEARCH

Pesquisar dentro da tabela.

Exercício

Encontrar

MARIA

na lista.

Dica

Depois compare SEARCH com SEARCH ALL.


LAB 11 – STRING

Concatenar textos.

JOAO

+

SILVA

Resultado

JOAO SILVA

LAB 12 – UNSTRING

Separar:

JOAO;SILVA;25

em três campos.

Hoje isso é muito usado em integração de sistemas.


LAB 13 – Arquivos Sequenciais

Criar arquivo.

Gravar:

ANA

CARLOS

PEDRO

Depois ler.

Curiosidade

Antes dos bancos de dados, praticamente tudo funcionava assim.


LAB 14 – Arquivos Indexados (VSAM)

Introdução ao KSDS.

Entender:

  • Chave

  • Registro

  • Índice

Mesmo que o ambiente de testes utilize arquivos simplificados, o conceito prepara você para ambientes corporativos.


LAB 15 – Datas

Utilizar:

FUNCTION CURRENT-DATE

Mostrar:

  • Ano

  • Mês

  • Dia

Dica

Evite criar rotinas próprias de data quando houver função intrínseca.


LAB 16 – Funções Intrínsecas

Explorar:

  • LENGTH

  • UPPER-CASE

  • LOWER-CASE

  • NUMVAL

  • INTEGER

  • RANDOM

Exercício

Converter um nome para maiúsculas e minúsculas.


LAB 17 – Modularização

Criar:

Programa Principal

Subprograma

Enviar parâmetros.

Curiosidade

Grandes bancos possuem milhares de subprogramas reutilizados por diversos sistemas.


LAB 18 – SQL em COBOL

Introdução ao Embedded SQL.

Criar:

SELECT

INSERT

UPDATE

Mesmo sem Db2 instalado, entender a sintaxe e o fluxo de execução já coloca o aluno em contato com a realidade do Mainframe.


LAB 19 – JSON

Gerar JSON.

Utilizar:

JSON GENERATE

Depois fazer:

JSON PARSE

Curiosidade

Hoje milhares de APIs REST utilizam exatamente essas instruções para conversar com aplicativos móveis e sistemas web.


LAB 20 – Projeto Final

Construir um pequeno sistema de cadastro.

Funcionalidades:

  • Cadastrar cliente

  • Alterar cliente

  • Excluir cliente

  • Consultar cliente

  • Relatório

  • Total de clientes

  • Validação de dados

  • Tratamento de erros

  • Mensagens amigáveis

Neste projeto, o aluno reúne praticamente todos os conceitos aprendidos nos laboratórios anteriores.


Dicas de Codificação que Todo Padawan Deveria Conhecer

  • Escreva um programa por vez e faça-o funcionar antes de adicionar novas funcionalidades.

  • Use nomes claros para variáveis: WS-NOME-CLIENTE é melhor que A1.

  • Comente por que o código existe, não apenas o que ele faz.

  • Padronize a indentação. Um código bem alinhado é muito mais fácil de manter.

  • Evite duplicação de lógica. Se um trecho será usado várias vezes, transforme-o em um parágrafo ou subprograma.

  • Compile frequentemente. Encontrar um erro logo após escrevê-lo é muito mais fácil do que depurar centenas de linhas depois.

  • Leia mensagens do compilador com atenção; elas ensinam muito.


Easter Eggs do COBOL

🔹 EVALUATE TRUE pode substituir longas cadeias de IF.

🔹 88-Level Condition Names deixam o código muito mais legível, permitindo escrever condições como IF CLIENTE-ATIVO.

🔹 REDEFINES permite enxergar a mesma área de memória de formas diferentes, um recurso poderoso quando usado com critério.

🔹 COPYBOOKS evitam duplicação e garantem padronização entre programas.

🔹 INSPECT pode substituir diversos loops para contar ou substituir caracteres.

🔹 INITIALIZE é uma forma elegante de limpar grupos inteiros de variáveis.

🔹 PERFORM THRU, apesar de existir, deve ser usado com cautela em novos projetos.


Como Evoluir Após os 20 Labs

Se você concluiu todos os laboratórios, já domina uma base sólida de COBOL. O próximo passo é expandir seu conhecimento para o ecossistema IBM Z.

Uma trilha recomendada é:

  1. JCL (Job Control Language)

  2. TSO/ISPF

  3. VSAM

  4. Db2 for z/OS

  5. CICS Transaction Server

  6. IMS DB/DC

  7. SORT (DFSORT e SyncSort)

  8. REXX

  9. Git e GitHub

  10. VS Code + Zowe Explorer

  11. DevOps para Mainframe

  12. APIs REST com z/OS Connect

  13. IBM MQ

  14. Testes com ZUnit

  15. Observabilidade, OpenTelemetry e automação com Ansible

Ao final dessa jornada, o aluno deixa de ser apenas um iniciante e passa a compreender como os grandes bancos, seguradoras e empresas de cartão de crédito desenvolvem e mantêm sistemas que processam milhões de transações diariamente.

Conclusão

Estes 20 laboratórios foram pensados para ensinar COBOL da mesma forma que um mestre Jedi ensina um Padawan: começando pelos fundamentos, praticando continuamente e aumentando a dificuldade de forma gradual. Em vez de decorar comandos, o aluno aprende a raciocinar como um desenvolvedor Mainframe, compreendendo não apenas como escrever código, mas por que determinadas práticas existem e como elas contribuem para criar sistemas robustos, seguros e preparados para décadas de evolução.

 

domingo, 2 de fevereiro de 2025

🥋 Laboratório COBOL para Padawans Do Zero ao Primeiro Jedi do Batch

 

Bellacosa Mainframe apresenta laboratorio inicial para padawan cobol

🥋 Laboratório COBOL para Padawans

Do Zero ao Primeiro Jedi do Batch

Este laboratório foi criado para alguém que nunca programou em COBOL. Os exercícios são progressivos e apresentam conceitos, sintaxe, boas práticas, armadilhas comuns e soluções comentadas.

Objetivo:

  • Aprender sintaxe COBOL

  • Escrever programas simples

  • Compreender variáveis

  • Utilizar DISPLAY

  • Aprender IF, PERFORM, EVALUATE

  • Trabalhar com tabelas OCCURS

  • Evitar erros comuns

  • Pensar como um desenvolvedor Mainframe


Laboratório 1 – Seu primeiro programa

Objetivo

Entender estrutura COBOL.

IDENTIFICATION DIVISION.
PROGRAM-ID. LAB001.

PROCEDURE DIVISION.

    DISPLAY 'OLA PADAWAN'.

    STOP RUN.

O que aprendemos

  • DIVISION

  • PROGRAM-ID

  • DISPLAY

  • STOP RUN


Armadilhas

Esquecer:

STOP RUN.

faz o programa terminar de maneira inadequada.


Laboratório 2 – Variáveis

Objetivo

Criar variáveis.

WORKING-STORAGE SECTION.

01 WS-NOME PIC X(20).
01 WS-IDADE PIC 99.

Programa


MOVE 'VAGNER' TO WS-NOME.
MOVE 52 TO WS-IDADE.


DISPLAY WS-NOME.
DISPLAY WS-IDADE.

Boas práticas

Prefixo WS

WS-NOME
WS-SALARIO
WS-TOTAL

Evite

NOME
X1
ABC

Laboratório 3 – MOVE

Objetivo

Copiar dados.

MOVE 100 TO WS-VALOR.
MOVE WS-VALOR TO WS-TOTAL.

Erro comum

Mover texto para campo numérico

Errado

MOVE 'ABC' TO WS-IDADE.

Laboratório 4 – ACCEPT

Ler teclado.


DISPLAY 'DIGITE SEU NOME'.

ACCEPT WS-NOME.



DISPLAY WS-NOME.

Laboratório 5 – Soma

Objetivo

Calcular.


01 A PIC 999.
01 B PIC 999.
01 C PIC 9999.



ADD A B GIVING C.



DISPLAY C.

Alternativa

COMPUTE C=A+B.

Laboratório 6 – Subtração


SUBTRACT A FROM B.


DISPLAY B.

Laboratório 7 – Multiplicação


MULTIPLY A BY B.


DISPLAY B.

Laboratório 8 – Divisão


DIVIDE A INTO B.


DISPLAY B.

Melhor

DIVIDE A INTO B GIVING C.

Laboratório 9 – IF

Objetivo

Decisão.



IF WS-IDADE >=18

   DISPLAY 'MAIOR'

ELSE

   DISPLAY 'MENOR'

END-IF.

Boa prática

Sempre

END-IF

Laboratório 10 – IF aninhado



IF IDADE >60

   DISPLAY 'IDOSO'

ELSE

   IF IDADE >=18

      DISPLAY 'ADULTO'

   ELSE

      DISPLAY 'MENOR'

   END-IF

END-IF.

Laboratório 11 – EVALUATE

Mais elegante.


EVALUATE NOTA

WHEN 10
 DISPLAY 'EXCELENTE'

WHEN 8
 DISPLAY 'OTIMO'

WHEN OTHER
 DISPLAY 'ESTUDAR'

END-EVALUATE.

É o SWITCH do COBOL.


Laboratório 12 – PERFORM

Criando parágrafos.


PERFORM MOSTRAR.



MOSTRAR.

DISPLAY 'OLA'.

Boa prática

Dividir lógica.

Não fazer:

500 linhas seguidas.


Laboratório 13 – PERFORM TIMES



PERFORM 5 TIMES

 DISPLAY 'COBOL'

END-PERFORM.

Laboratório 14 – PERFORM UNTIL



MOVE 1 TO I.



PERFORM UNTIL I >5


DISPLAY I


ADD 1 TO I


END-PERFORM.

Resultado

1

2

3

4

5


Laboratório 15 – Tabelas OCCURS


01 WS-NUMEROS.

   05 WS-NUM OCCURS 5 TIMES PIC 999.

Preenchendo



MOVE 10 TO WS-NUM(1).

MOVE 20 TO WS-NUM(2).

MOVE 30 TO WS-NUM(3).

Laboratório 16 – Percorrer tabela


01 I PIC 9.


PERFORM VARYING I FROM 1 BY 1 UNTIL I >5


DISPLAY WS-NUM(I)


END-PERFORM.

Muito usado em produção.


Laboratório 17 – Strings


STRING

'NOME='

WS-NOME


DELIMITED BY SPACE


INTO WS-SAIDA.



DISPLAY WS-SAIDA.

Laboratório 18 – INSPECT

Contar letras.



INSPECT WS-TEXTO

TALLYING WS-QTD

FOR ALL 'A'.

Laboratório 19 – Inicialização


INITIALIZE REGISTRO.

Substitui:


MOVE SPACES TO REGISTRO.

MOVE ZEROS TO REGISTRO.

Laboratório 20 – Mini Projeto Final

Cadastro simples

Menu

1-Incluir

2-Consultar

3-Sair

Variáveis


01 OPCAO PIC 9.

01 NOME PIC X(30).

01 IDADE PIC 99.

Fluxo



PERFORM UNTIL OPCAO=3


DISPLAY MENU


ACCEPT OPCAO


EVALUATE OPCAO


WHEN 1

PERFORM INCLUIR


WHEN 2

PERFORM CONSULTAR


WHEN 3

DISPLAY 'ATE LOGO'


WHEN OTHER

DISPLAY 'INVALIDO'


END-EVALUATE


END-PERFORM.

📚 Erros Mais Comuns do Padawan COBOL

ErroProblema
Esquecer ponto finalCompilação falha
Não usar END-IFCódigo confuso
Índice fora do OCCURSABEND
Mover texto para PIC 9Dados inválidos
Divisão por zeroS0CB
Variável não inicializadaResultado imprevisível
Não usar GIVINGSobrescreve dados
PERFORM infinitoLoop sem fim
Nomes genéricosManutenção difícil
Misturar lógica em um único parágrafoCódigo espaguete

🎓 Checklist do Padawan COBOL

Ao concluir os 20 laboratórios, o aluno deverá saber:

✅ Criar programas COBOL
✅ Declarar variáveis
✅ Usar PIC X e PIC 9
✅ Fazer cálculos
✅ Receber dados com ACCEPT
✅ Exibir informações com DISPLAY
✅ Trabalhar com IF e EVALUATE
✅ Criar laços com PERFORM
✅ Utilizar OCCURS
✅ Manipular strings
✅ Inicializar estruturas
✅ Identificar erros comuns
✅ Desenvolver pequenos programas estruturados
✅ Aplicar boas práticas de nomenclatura e modularização

Este conjunto de laboratórios fornece uma base sólida para avançar posteriormente para arquivos sequenciais, VSAM, JCL, DB2, CICS e desenvolvimento COBOL empresarial em IBM z/OS.


Apresentação do Laboratório COBOL para Padawans

Este laboratório foi concebido para desenvolvedores iniciantes que desejam aprender COBOL de maneira prática, gradual e estruturada. O principal objetivo é fornecer uma base sólida sobre a linguagem, permitindo que o estudante compreenda sua sintaxe, suas instruções fundamentais e as boas práticas utilizadas em ambientes corporativos, especialmente no ecossistema IBM Z.

A didática adotada é baseada em pequenos desafios progressivos, nos quais cada exercício apresenta um conceito novo, seguido por uma solução comentada, observações sobre armadilhas comuns e recomendações de codificação. Essa abordagem reduz a curva de aprendizado, incentiva a experimentação e ajuda o aluno a desenvolver confiança ao escrever seus primeiros programas.

COBOL é uma linguagem predominantemente associada ao paradigma de programação estruturada e procedural. Seu modelo enfatiza a decomposição do problema em etapas sequenciais, a modularização por meio de parágrafos e seções, além do uso de estruturas de decisão e repetição claramente definidas. Essa característica torna a linguagem particularmente adequada para o processamento de regras de negócio, cálculos financeiros e sistemas transacionais de grande porte.

Realizar este laboratório permite ao estudante adquirir fundamentos essenciais antes de avançar para tópicos mais complexos, como manipulação de arquivos, JCL, VSAM, DB2, CICS e modernização de aplicações. Mais do que aprender comandos, o participante desenvolve uma mentalidade disciplinada de desenvolvimento, manutenção e qualidade de software, altamente valorizada no mercado de tecnologia corporativa.