Translate

Mostrar mensagens com a etiqueta CURRENT-DATE. Mostrar todas as mensagens
Mostrar mensagens com a etiqueta CURRENT-DATE. Mostrar todas as mensagens

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.

quinta-feira, 1 de março de 2007

O que é Função Intrínseca em COBOL?

 

Bellacosa Mainframe e as funções intrinsecas em COBOL

O que é Função Intrínseca em COBOL?

As funções intrínsecas (Intrinsic Functions) são funções internas do COBOL que permitem realizar operações comuns sem a necessidade de criar rotinas próprias.

Elas foram introduzidas para facilitar tarefas como:

  • manipulação de datas;

  • cálculos matemáticos;

  • conversão de dados;

  • tratamento de strings;

  • operações estatísticas.

Em vez de escrever dezenas de linhas de código, você pode usar uma função pronta fornecida pelo compilador COBOL.


O que significa "intrínseca"?

Significa:

embutida na linguagem.

Ou seja, já faz parte do compilador COBOL.

Não é necessário:

  • COPY;

  • CALL;

  • subprograma;

  • biblioteca externa.


Sintaxe básica

FUNCTION nome-da-funcao(argumentos)

Exemplo:

MOVE FUNCTION CURRENT-DATE
     TO WS-DATA

Exemplo simples

Sem função intrínseca:

COMPUTE WS-IDADE = ANO-ATUAL - ANO-NASCIMENTO

Com função:

COMPUTE WS-RAIZ =
        FUNCTION SQRT(144)

Resultado:

12

Principais categorias

Datas e Horas

Matemáticas

Conversão de Dados

Strings

Estatísticas

Financeiras


Função CURRENT-DATE

Uma das mais usadas.

Retorna:

  • data;

  • hora;

  • milissegundos;

  • fuso horário.

Exemplo:

MOVE FUNCTION CURRENT-DATE
     TO WS-DATA-HORA

Resultado:

2026080215304500

Função LENGTH

Retorna o tamanho de um campo.

Exemplo:

COMPUTE WS-TAM =
        FUNCTION LENGTH(WS-NOME)

Função UPPER-CASE

Converte texto para maiúsculo.

MOVE FUNCTION UPPER-CASE(WS-NOME)
     TO WS-NOME-MAIUSCULO

Função LOWER-CASE

Converte texto para minúsculo.

MOVE FUNCTION LOWER-CASE(WS-NOME)
     TO WS-NOME-MINUSCULO

Função REVERSE

Inverte caracteres.

MOVE FUNCTION REVERSE("COBOL")
     TO WS-TEXTO

Resultado:

LOBOC

Função NUMVAL

Converte texto para número.

Exemplo:

MOVE FUNCTION NUMVAL("12345")
     TO WS-VALOR

Função NUMVAL-C

Converte valores monetários.

Exemplo:

MOVE FUNCTION NUMVAL-C("R$1.234,56")
     TO WS-VALOR

(Dependendo da configuração regional do compilador.)


Função INTEGER

Remove casas decimais.

COMPUTE WS-INTEIRO =
        FUNCTION INTEGER(123.99)

Resultado:

123

Função ABS

Valor absoluto.

COMPUTE WS-VALOR =
        FUNCTION ABS(-500)

Resultado:

500

Função SQRT

Raiz quadrada.

COMPUTE WS-RAIZ =
        FUNCTION SQRT(625)

Resultado:

25

Função RANDOM

Gera número aleatório.

COMPUTE WS-NUM =
        FUNCTION RANDOM

Função MOD

Retorna resto da divisão.

COMPUTE WS-RESTO =
        FUNCTION MOD(10 3)

Resultado:

1

Função MAX

Maior valor.

COMPUTE WS-MAX =
        FUNCTION MAX(10 20 30)

Resultado:

30

Função MIN

Menor valor.

COMPUTE WS-MIN =
        FUNCTION MIN(10 20 30)

Resultado:

10

Função MEAN

Média aritmética.

COMPUTE WS-MEDIA =
        FUNCTION MEAN(10 20 30)

Resultado:

20

Função ORD

Retorna código ordinal do caractere.

COMPUTE WS-COD =
        FUNCTION ORD("A")

Função CHAR

Retorna caractere de um código.

MOVE FUNCTION CHAR(65)
     TO WS-LETRA

Resultado:

A

Função TRIM

Remove espaços.

MOVE FUNCTION TRIM(WS-NOME)
     TO WS-NOME-LIMPO

Exemplo prático

WORKING-STORAGE SECTION.

01 WS-NOME          PIC X(20).
01 WS-NOME-MAIUS    PIC X(20).

PROCEDURE DIVISION.

    MOVE 'bellacosa'
         TO WS-NOME

    MOVE FUNCTION UPPER-CASE(WS-NOME)
         TO WS-NOME-MAIUS

    DISPLAY WS-NOME-MAIUS

    STOP RUN.

Saída:

BELLACOSA

Funções muito usadas em Mainframe

As mais encontradas em sistemas corporativos:

  • CURRENT-DATE

  • LENGTH

  • NUMVAL

  • NUMVAL-C

  • UPPER-CASE

  • LOWER-CASE

  • TRIM

  • INTEGER

  • MOD

  • ABS


Vantagens

Menos código

Mais legibilidade

Melhor manutenção

Menos rotinas auxiliares

Melhor produtividade


Cuidados

Nem todas as funções estão disponíveis em compiladores muito antigos.

Alguns ambientes COBOL legados podem não suportar:

  • TRIM

  • UPPER-CASE

  • LOWER-CASE

  • funções estatísticas mais modernas


Curiosidade

Antes das funções intrínsecas, tarefas simples exigiam dezenas de linhas de código COBOL.

Converter um texto para maiúsculo, por exemplo, frequentemente exigia tabelas de tradução e loops complexos.

As funções intrínsecas simplificaram enormemente o desenvolvimento COBOL moderno.


Resumo rápido

FunçãoFinalidade
CURRENT-DATEData e hora atual
LENGTHTamanho do campo
UPPER-CASEMaiúsculas
LOWER-CASEMinúsculas
TRIMRemove espaços
NUMVALTexto → Número
ABSValor absoluto
SQRTRaiz quadrada
MODResto da divisão
MAXMaior valor
MINMenor valor
RANDOMNúmero aleatório

Conclusão

As funções intrínsecas são recursos nativos do COBOL que simplificam cálculos, manipulação de dados, datas e strings. Elas tornam os programas mais legíveis, reduzem a quantidade de código e são amplamente utilizadas em aplicações modernas de COBOL no ambiente mainframe IBM Z.