Algoritmos e Estruturas de Dados I

Aula 11: Tipos de Dados

Variável: posição de memória

Tipo: Conjunto de valores que a variável pode assumir

Tipos:

Scalar e Subrange

scalar:

type dia = 
   (seg, ter, qua, qui, sex, sab, dom);
var d: dia;
begin
  d := seg;
Subrange:

type mes: 1..12;
     letra: 'a'..'z';
     diautil: seg..sex;
Vantagens:

Array e Record

Array:

type t: array[mes] of letra;
var v1: t;
    v2: array [diautil] of t;
begin
  v1[12] := 'a';
  v2[seg, 1] := 'b';
Record:

type aluno: record
              numero: integer;
              nota: array[1..3] of real;
              conceito: 'A'..'E';
            end;
var a: aluno;
begin
  a.conceito := 'C';

Sets

type cores = (verde, vermelho, amarelo);
     cor = set of cores;
var c1, c2, c3: cor;
    c: cores;
    b: boolean;
begin
  c1 := [vermelho];
  c2 := [];
  c3 := c1 + c2;
  c := verde;
  b := c in c3;

Conta Letras

{ Contagem de letras em um arquivo }

program frequencia;

var c: char;
    f: array ['a'..'z'] of integer;
    letras: set of 'a'..'z';

begin
  letras := ['a'..'z'];
  for c := 'a' to 'z' do f[c] := 0;
  while not eof do begin
    read(c);
    if c in letras then begin
      f[c] := f[c]+1;
    end;
  end;
  for c := 'a' to 'z' do
    writeln(c, f[c]);
end.