4.2 Tipos de Dados
Variáveis em PL/1 - Tipos e como usar
O PL/I oferece uma variedade poderosa de tipos de dados para representar números, textos, bits, ponteiros e muito mais. Se você está começando agora, este guia vai te ajudar a entender como declarar e usar variáveis de forma prática e objetiva.
No PL/I, as variáveis são declaradas com a palavra-chave DECLARE (ou DCL). Não há uma separação rígida entre áreas de dados e lógica: você pode declarar variáveis em qualquer parte do código. Cada declaração termina com ponto-e-vírgula.
/* Número decimal com 7 dígitos, sendo 2 após a vírgula */
DCL SALARIO FIXED DECIMAL(7,2);
/* Número inteiro com até 31 bits */
DCL CONTADOR FIXED BINARY(31);
/* Número em ponto flutuante com 16 dígitos de precisão */
DCL MEDIA FLOAT DECIMAL(16); Tipos Numéricos
FIXED DECIMAL(p, s)
Número com precisão decimal. p é o total de dígitos e s é a quantidade após a vírgula.
Ex: FIXED DECIMAL(10,3) → até 7 dígitos antes da vírgula e 3 depois.
FIXED BINARY(n)
Número inteiro com n bits. O valor padrão é 31.
FLOAT DECIMAL(n)
Número em ponto flutuante com n dígitos de precisão. Ideal para cálculos científicos.
COMPLEX
Representa números complexos (parte real + imaginária). Usado em aplicações como transformadas de Fourier, em outras palavras, voce não vai utilizar isso nunca! Se usar um dia me manda só pra eu ver uma aplicacao real!
Tamanhos Padrão, se você não especificar o tamanho:
FIXED DECIMALassume(10,0)FIXED BINARYassume(15)
É sempre melhor ser explícito, mas o compilador cobre você se voce for preguiçoso ou ta copiando e colando de alguem que nao tinha declarado. Conversão Automática
O PL/I faz conversão automática entre tipos em expressões. Por exemplo, se você somar um número decimal com um ponto flutuante, o resultado será convertido para ponto flutuante automaticamente.
Tipos de Texto
CHARACTER(n)String de tamanho fixo comncaracteres.CHARACTER(n) VARYINGString de tamanho variável. Usa apenas o espaço necessário.CHARACTER(n) VARYINGZIgual ao anterior, mas termina com caractere nulo (x'00'), útil para interoperar com funções em C.
Outros Tipos Úteis
BIT(n)Cadeia de bits. Muito útil para representar flags e máscaras.POINTERArmazena endereços de memória. Permite trabalhar com estruturas dinâmicas.BASED(ptr)Declara uma variável que usa como base um ponteiro. Ideal para alocação dinâmica.ORDINALCria um tipo enumerado (enum), com valores nomeados e ordenados.
Inicialização e Constantes em PL/I
INIT – Inicialização simples
INIT – Inicialização simplesVocê pode usar INIT para atribuir um valor inicial à variável no momento da declaração. Esse valor pode ser alterado depois, se quiser. INIT é útil para garantir que a variável comece com um valor conhecido.
VALUE – Constante (imutável)
VALUE – Constante (imutável)Se você quiser declarar uma constante, ou seja, um valor que não pode ser alterado durante a execução do programa, use o atributo VALUE.
usando oVALUE, o compilador trata a variável como constante. Tentar alterar seu valor depois causará erro.
O PL/I oferece um conjunto robusto de tipos de dados que permite escrever código mais claro, seguro e eficiente. Com suporte nativo a números precisos, strings flexíveis, bits e ponteiros, você tem liberdade para modelar seus dados da forma mais adequada à lógica do seu programa.
Last updated