Translate

Mostrar mensagens com a etiqueta DISPLAY. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta DISPLAY. Mostrar todas as mensagens

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.


quarta-feira, 7 de março de 2007

O que é o Comando DISPLAY em COBOL?

 

Bellacosa Mainframe e o comando display em cobol

O que é o Comando DISPLAY em COBOL?

O comando DISPLAY é uma das instruções mais simples e mais utilizadas do COBOL.

Sua função é:

exibir informações na tela, terminal, log ou SYSOUT.

Ele é equivalente a comandos como:

  • PRINT (BASIC)

  • printf() (C)

  • System.out.println() (Java)

  • print() (Python)


Para que serve o DISPLAY?

O DISPLAY é utilizado para:

  • mostrar mensagens;

  • exibir variáveis;

  • acompanhar processamento;

  • depurar programas;

  • registrar informações no SYSOUT.


Sintaxe básica

DISPLAY item

Exemplo simples

DISPLAY 'OLA MUNDO'

Saída:

OLA MUNDO

Exibindo uma variável

01 WS-NOME PIC X(20).

MOVE 'VAGNER' TO WS-NOME

DISPLAY WS-NOME

Resultado:

VAGNER

Exibindo texto e variável

DISPLAY 'CLIENTE: ' WS-NOME

Saída:

CLIENTE: VAGNER

Analogia simples

Imagine um operador olhando o console.

O DISPLAY envia informações para ele:

PROGRAMA
    ↓
DISPLAY
    ↓
TELA / SYSOUT

DISPLAY em Batch

No ambiente z/OS batch, normalmente o DISPLAY não aparece diretamente na tela.

Ele é gravado no:

  • SYSOUT

  • JES2

  • Spool

  • SDSF


Exemplo

DISPLAY 'PROCESSAMENTO INICIADO'

No SDSF aparecerá algo semelhante:

PROCESSAMENTO INICIADO

DISPLAY para Debug

Uma das utilizações mais comuns.

DISPLAY 'SALDO = ' WS-SALDO

Ajuda a verificar:

  • valores;

  • fluxo;

  • erros;

  • cálculos.


Exemplo de depuração

MOVE 1000 TO WS-SALDO

DISPLAY 'ANTES CALCULO: '
        WS-SALDO

Resultado:

ANTES CALCULO: 1000

DISPLAY de números

01 WS-VALOR PIC 9(5).

MOVE 12345 TO WS-VALOR

DISPLAY WS-VALOR

Saída:

12345

DISPLAY de COMP-3

Nem sempre gera saída legível.

Exemplo:

01 WS-SALDO PIC S9(7)V99 COMP-3.

Antes de exibir, normalmente usa-se:

MOVE WS-SALDO TO WS-EDITADO
DISPLAY WS-EDITADO

DISPLAY de datas

DISPLAY FUNCTION CURRENT-DATE

Exemplo:

2026060215304599

DISPLAY com Funções Intrínsecas

DISPLAY FUNCTION UPPER-CASE(WS-NOME)

Resultado:

VAGNER

DISPLAY em Programas Interativos

Muito comum em:

  • TSO;

  • Micro Focus;

  • GnuCOBOL;

  • ambientes educacionais.


Exemplo

DISPLAY 'DIGITE O NOME:'
ACCEPT WS-NOME

DISPLAY e ACCEPT

São comandos complementares.


DISPLAY:

DISPLAY 'INFORME O CPF'

Mostra informação.


ACCEPT:

ACCEPT WS-CPF

Recebe informação.


Fluxo típico

DISPLAY
     ↓
USUÁRIO VISUALIZA
     ↓
ACCEPT
     ↓
USUÁRIO DIGITA

DISPLAY UPON

Permite direcionar saída para dispositivos específicos.


Exemplo:

DISPLAY WS-MENSAGEM
        UPON CONSOLE

DISPLAY UPON CONSOLE

Muito usado por operadores e Sysprogs.

DISPLAY 'JOB FINALIZADO'
        UPON CONSOLE

Mensagem enviada ao console do sistema.


DISPLAY em CICS

Em aplicações CICS normalmente utiliza-se:

EXEC CICS SEND

mas DISPLAY ainda pode ser usado para debug.


DISPLAY no SYSOUT

Exemplo de saída:

INICIO PROCESSAMENTO

CLIENTE = 12345

SALDO = 5000.00

FIM PROCESSAMENTO

Exemplo completo

IDENTIFICATION DIVISION.
PROGRAM-ID. TESTE.

DATA DIVISION.

WORKING-STORAGE SECTION.

01 WS-NOME PIC X(20).

PROCEDURE DIVISION.

    MOVE 'BELLACOSA'
         TO WS-NOME

    DISPLAY 'NOME: '
            WS-NOME

    STOP RUN.

Resultado:

NOME: BELLACOSA

Onde o DISPLAY é mais usado?

Batch

Mensagens no SYSOUT.


Debug

Análise de variáveis.


Testes

Validação de resultados.


Ensino COBOL

Primeiros programas.


Operação

Mensagens para operadores.


Curiosidades

1. DISPLAY é normalmente o primeiro comando aprendido em COBOL


2. Grande parte dos testes iniciais utiliza DISPLAY


3. Em batch, o DISPLAY geralmente vai para o spool JES2


4. Muitos programadores usam DISPLAY para investigar ABENDs


DISPLAY vs ACCEPT

ComandoFunção
DISPLAYExibe dados
ACCEPTRecebe dados

DISPLAY vs WRITE

ComandoDestino
DISPLAYTela/SYSOUT
WRITEArquivo

Resumo rápido

ComandoFinalidade
DISPLAYExibir dados
DISPLAY variávelMostrar conteúdo
DISPLAY textoMostrar mensagem
DISPLAY FUNCTIONMostrar função
DISPLAY UPON CONSOLEConsole operador
DISPLAY + ACCEPTEntrada e saída

Conclusão

O comando DISPLAY é a principal instrução de saída do COBOL. Ele permite exibir mensagens, variáveis, resultados de cálculos e informações de processamento, sendo amplamente utilizado para debug, monitoramento e geração de mensagens no SYSOUT de aplicações executadas em mainframes IBM Z.


terça-feira, 6 de março de 2007

O que é o Comando ACCEPT em COBOL?

 

Bellacosa Mainframe e o comando accept no cobol

O que é o Comando ACCEPT em COBOL?

O comando ACCEPT é utilizado para:

receber dados de uma fonte externa e armazená-los em uma variável COBOL.

Na prática, ele funciona como uma operação de:

ENTRADA DE DADOS

É o oposto do comando:

DISPLAY

Enquanto o DISPLAY mostra informações, o ACCEPT recebe informações.


Analogia simples

Imagine um terminal 3270.

O usuário digita:

VAGNER

O COBOL precisa capturar esse valor.

Quem faz isso é o:

ACCEPT


Sintaxe básica

ACCEPT nome-do-campo

Exemplo simples

WORKING-STORAGE SECTION.

01 WS-NOME PIC X(30).

PROCEDURE DIVISION.

    DISPLAY 'DIGITE O NOME:'

    ACCEPT WS-NOME

    DISPLAY WS-NOME

    STOP RUN.

Resultado

DIGITE O NOME:
VAGNER

VAGNER

ACCEPT em programas interativos

Muito comum em:

  • TSO

  • Micro Focus COBOL

  • GnuCOBOL

  • ambientes de treinamento


Fluxo

DISPLAY
   ↓
USUÁRIO DIGITA
   ↓
ACCEPT
   ↓
PROCESSAMENTO

ACCEPT Numérico

01 WS-IDADE PIC 9(3).

ACCEPT WS-IDADE

Entrada:

25

Resultado:

WS-IDADE = 25

ACCEPT e Datas do Sistema

O ACCEPT também pode obter informações do sistema operacional.


Data atual

01 WS-DATA PIC 9(8).

ACCEPT WS-DATA FROM DATE

Resultado:

20260802

Formato:

AAAAMMDD

(depende do compilador)


Data Juliana

ACCEPT WS-DATA
       FROM DAY

Exemplo:

2026153

Ano + dia juliano.


Hora atual

01 WS-HORA PIC 9(8).

ACCEPT WS-HORA
       FROM TIME

Resultado:

14302599

Data e Hora

Alguns compiladores suportam:

ACCEPT WS-DATETIME
       FROM DATE YYYYMMDD

ACCEPT FROM DATE

Muito comum em batch.

ACCEPT WS-DATA-SISTEMA
       FROM DATE

ACCEPT FROM DAY

Retorna:

AAAA + DIA JULIANO

Exemplo

2 de junho de 2026:

2026153

ACCEPT FROM TIME

Retorna:

HHMMSSCC

Horas, minutos, segundos e centésimos.


Exemplo

15451035

ACCEPT em Mainframe Batch

No z/OS tradicional, ACCEPT de teclado é pouco utilizado.

Normalmente os dados vêm de:

  • arquivos;

  • parâmetros JCL;

  • SYSIN;

  • DB2;

  • VSAM.


Exemplo SYSIN

JCL:

//SYSIN DD *
VAGNER
/*

COBOL:

ACCEPT WS-NOME

ACCEPT e PARM do JCL

Muitas instalações utilizam:

//STEP1 EXEC PGM=PROG1,
 // PARM='PRODUCAO'

COBOL:

ACCEPT WS-PARM

ou

LINKAGE SECTION

dependendo do padrão adotado.


ACCEPT vs DISPLAY

DISPLAY:

DISPLAY 'OLA'

Mostra informação.


ACCEPT:

ACCEPT WS-NOME

Recebe informação.


Exemplo combinado

DISPLAY 'DIGITE O SALDO:'

ACCEPT WS-SALDO

DISPLAY WS-SALDO

Exemplo completo

IDENTIFICATION DIVISION.
PROGRAM-ID. TESTE.

DATA DIVISION.

WORKING-STORAGE SECTION.

01 WS-NOME PIC X(30).

PROCEDURE DIVISION.

    DISPLAY 'NOME: '

    ACCEPT WS-NOME

    DISPLAY 'VOCE DIGITOU: '
    DISPLAY WS-NOME

    STOP RUN.

Onde o ACCEPT é mais usado?

Ambientes educacionais


Micro Focus COBOL


GnuCOBOL


Aplicações de terminal


Captura de data/hora do sistema


Curiosidades

1. ACCEPT existe desde as primeiras versões do COBOL


2. Em z/OS batch seu uso é mais restrito


3. ACCEPT FROM DATE era muito usado antes das funções intrínsecas


4. Hoje muitos programadores preferem:

FUNCTION CURRENT-DATE

em vez de:

ACCEPT FROM DATE

ACCEPT vs FUNCTION CURRENT-DATE

Forma antiga:

ACCEPT WS-DATA
       FROM DATE

Forma moderna:

MOVE FUNCTION CURRENT-DATE
     TO WS-DATA

Resumo rápido

ComandoFunção
ACCEPTRecebe dados
ACCEPT FROM DATEData atual
ACCEPT FROM DAYData Juliana
ACCEPT FROM TIMEHora atual
DISPLAYExibe dados
CURRENT-DATEAlternativa moderna

Conclusão

O comando ACCEPT é a principal instrução de entrada de dados do COBOL. Ele permite receber informações digitadas pelo usuário ou obter dados do sistema, como data e hora, sendo um recurso clássico presente desde os primórdios da linguagem e ainda encontrado em aplicações COBOL executadas em ambientes IBM Z, Micro Focus e GnuCOBOL.