| 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ção | Finalidade |
|---|---|
| CURRENT-DATE | Data e hora atual |
| LENGTH | Tamanho do campo |
| UPPER-CASE | Maiúsculas |
| LOWER-CASE | Minúsculas |
| TRIM | Remove espaços |
| NUMVAL | Texto → Número |
| ABS | Valor absoluto |
| SQRT | Raiz quadrada |
| MOD | Resto da divisão |
| MAX | Maior valor |
| MIN | Menor valor |
| RANDOM | Nú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.
Sem comentários:
Enviar um comentário