TIPOS


  O Pascal oferece opções para criar tipos de dados mais complexos além dos tipos primitivos existentes (integer, real, boolean, char e byte). Assim, exitem três possibilidades de declaração de tipos (type) no Pascal: escalar, array e registro.

  Tipo Escalar

  Além dos tipos primitivos do Pascal, é possível que o usuário defina outros tipos escalares. Assim, o programador define todos os valores possíveis, e em ordem, para uma variável. Ex:
type
  dia = (Segunda, Terca, Quarta, Quinta, Sexta, Sabado, Domingo);
  Boolean = (False, True);

  A seguir, um programa exemplo:
type
  dia = (Segunda, Terca, Quarta, Quinta, Sexta, Sabado, Domingo);

var
  d : dia;

begin
  d := Terca;
  writeln('Dia: ', d);
end.
Saída:
Dia: Terca

  É possível utilizar operadores para comparar dados de um tipos escalar. Operadores aceitos: =, <>, >, <, >=, e <=

  Além disso, é possível determinar o antecessor, o sucessor e o número de ordem: pred(var), succ(var) e ord(var)

Ex:
type
  dia = (Segunda, Terca, Quarta, Quinta, Sexta, Sabado, Domingo);

var
  d : dia;

begin
  writeln('Segunda e menor que Terca? ', Segunda < Terca);
  writeln('Depois da Quarta vem a ', succ(Quarta));
  writeln('Posicao da Sexta: ',ord(Sexta));
  writeln('Dia 3: ',dia(3));
end.
Saída:
Segunda e menor que Terca? TRUE
Depois da Quarta vem a Quinta
Posicao da Sexta: 4
Dia 3: Quinta

  É possível definirmos um subconjunto de dados consecutivos chamado de subrange. Ex:
type
  dia = (Segunda, Terca, Quarta, Quinta, Sexta, Sabado, Domingo);
  dia_util = (Segunda..Sexta);

  Tipo Array

  Difine uma variável do tipo vetor (array). Ex:
type
  nota = array[1..10] of integer;
  nome = String[40];

var
  n : nota;
  p : nome;

begin
  n[4] := 6;
  p := 'Katia';
end.

  Tipo Registro (Record)

  Difine uma variável composta, ou seja, com múltiplos tipos de variáveis. Ex:
type
  varficha = record
    nome : string[40];
    dia, mes, ano : integer;
    endereco : string;
  end;

  Para usarmos no programa, basta declarar a variável ficha do tipo varficha criada por você. Ex:
var ficha : varficha;
  O acesso a cada variável de dentro do registro é feito através do nome da variável mais um ponto (.) e o nome da variável do registro. Por exemplo, para acessar o nome da ficha, faz-se:
ficha.nome := 'Jose';
  Preenchendo todos os dados (corpo principal do programa):
begin
  ficha.nome := 'Guga';
  ficha.dia := 10;
  ficha.mes :=  9;
  ficha.ano := 1976;
  ficha.endereco := 'Floripa';
end;
  Para crirar um vetor de "varficha", é simples:
var ficha : array[1..20] of varficha;
  Um programa completo para inserir 20 nomes no array de varficha:
type
  varficha = record
    nome : string[40];
    dia, mes, ano : integer;
    endereco : string;
  end;

var ficha : array[1..20] of varficha;
    i : integer;

begin
  for i:=1 to 20 do
  begin
    writeln('Pessoa numero ',i);
    write('Nome: ');
    readln(ficha[i].nome);
    write('Dia de nascimento: ');
    readln(ficha[i].dia);
    write('Mes de nascimento:  ');
    readln(ficha[i].mes);
    write('Ano de nascimento:  ');
    readln(ficha[i].ano);
    write('Endereco: ');
    readln(ficha[i].endereco);
  end;
end.


/MARMSX/CURSOS/PASCAL