Pascal - Tipos de Dados
Os tipos de dados de uma entidade indicam o significado, restrições, valores possíveis, operações, funções e modo de armazenamento associado a ela.
Os tipos inteiro, real, booleano e de caractere são chamados de tipos de dados padrão. Os tipos de dados podem ser categorizados como escalares, ponteiros e tipos de dados estruturados. Exemplos de tipos de dados escalares são inteiro, real, booleano, caractere, subfaixa e enumerado. Os tipos de dados estruturados são feitos de tipos escalares; por exemplo, matrizes, registros, arquivos e conjuntos. Discutiremos os tipos de dados do ponteiro mais tarde.
Pascal Data Types
Os tipos de dados Pascal podem ser resumidos conforme abaixo no diagrama a seguir -
Declarações de tipo
A declaração de tipo é usada para declarar o tipo de dados de um identificador. A sintaxe da declaração de tipo é -
type-identifier-1, type-identfier-2 = type-specifier;
Por exemplo, a declaração a seguir define as variáveis dias e idade como tipo inteiro, sim e verdadeiro como tipo booleano, nome e cidade como tipo de string, taxas e despesas como tipo real.
type
days, age = integer;
yes, true = boolean;
name, city = string;
fees, expenses = real;
Tipos inteiros
A tabela a seguir fornece detalhes sobre tipos inteiros padrão com seus tamanhos de armazenamento e intervalos de valores usados em Object Pascal -
Tipo | Mínimo | Máximo | Formato |
---|---|---|---|
Inteiro | -2147483648 | 2147483647 | assinado de 32 bits |
Cardeal | 0 | 4294967295 | 32 bits sem sinal |
Shortint | -128 | 127 | assinado 8 bits |
Smallint | -32768 | 32767 | assinado de 16 bits |
Longint | -2147483648 | 2147483647 | assinado de 32 bits |
Int64 | -2 ^ 63 | 2 ^ 63 - 1 | assinado de 64 bits |
Byte | 0 | 255 | 8 bits sem sinal |
Palavra | 0 | 65535 | 16 bits sem sinal |
Longword | 0 | 4294967295 | 32 bits sem sinal |
Constantes
O uso de constantes torna o programa mais legível e ajuda a manter quantidades especiais em um lugar no início do programa. Pascal permite constantes numéricas, lógicas, de string e de caracteres . As constantes podem ser declaradas na parte de declaração do programa, especificando oconst declaração.
A sintaxe da declaração de tipo constante é a seguinte -
const
Identifier = contant_value;
A seguir estão alguns exemplos de declarações de constantes -
VELOCITY_LIGHT = 3.0E=10;
PIE = 3.141592;
NAME = 'Stuart Little';
CHOICE = yes;
OPERATOR = '+';
Todas as declarações de constantes devem ser fornecidas antes da declaração da variável.
Tipos enumerados
Os tipos de dados enumerados são tipos de dados definidos pelo usuário. Eles permitem que os valores sejam especificados em uma lista. Somente operadores de atribuição e operadores relacionais são permitidos em tipos de dados enumerados. Os tipos de dados enumerados podem ser declarados da seguinte forma -
type
enum-identifier = (item1, item2, item3, ... )
A seguir estão alguns exemplos de declarações de tipo enumerado -
type
SUMMER = (April, May, June, July, September);
COLORS = (Red, Green, Blue, Yellow, Magenta, Cyan, Black, White);
TRANSPORT = (Bus, Train, Airplane, Ship);
A ordem em que os itens são listados no domínio de um tipo enumerado define a ordem dos itens. Por exemplo, no tipo enumerado SUMMER, abril vem antes de maio, maio vem antes de junho e assim por diante. O domínio de identificadores de tipo enumerado não pode consistir em constantes numéricas ou de caracteres.
Tipos de Subrange
Os tipos de subfaixa permitem que uma variável assuma valores que estão dentro de uma determinada faixa. Por exemplo, se a idade dos eleitores deve estar entre 18 e 100 anos, uma variável chamada idade pode ser declarada como -
var
age: 18 ... 100;
Veremos a declaração de variáveis em detalhes na próxima seção. Você também pode definir um tipo de subfaixa usando a declaração de tipo. A sintaxe para declarar um tipo de subfaixa é a seguinte -
type
subrange-identifier = lower-limit ... upper-limit;
A seguir estão alguns exemplos de declarações de tipo de subfaixa -
const
P = 18;
Q = 90;
type
Number = 1 ... 100;
Value = P ... Q;
Os tipos de subrange podem ser criados a partir de um subconjunto de um tipo enumerado já definido, por exemplo -
type
months = (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec);
Summer = Apr ... Aug;
Winter = Oct ... Dec;