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;