Escolar Documentos
Profissional Documentos
Cultura Documentos
Pascal
Estruturas de Dados
Informática
+
Algoritmos
=
Programas 0101010
Sumário
Informática
0101010
Estruturas de Dados
Strings
Tipos definidos pelo utilizador
Tipos simples
Tipos definidos por enumeração
Tipos definidos por subdomínio
Estruturas complexas
Matrizes (Arrays)
Fichas (Records)
Ficheiros (Files)
Informática - OGE Paulo Melo 2
Cadeias de caracteres
Informática
Strings
0101010
Informática
Strings - Exemplo
0101010
Program TestaString;
Var
S: string;
S1: string[80];
Begin
Writeln('Introduza a string a analisar');
S:= 'A string que foi lida foi: ';
Readln(S1);
Writeln(S, S1);
Writeln('O comprimento da string "',S1,
'" é :',length(S1));
End.
Informática
Definição e Sintaxe
0101010
Informática
Exemplo de aplicação
0101010
...
Type
Testacoes=(primavera, verao, outono, inverno);
Tmeses= 1..12;
...
Var
estacao: Testacoes;
mes: Tmeses;
...
mes := 3;
estacao := primavera;
...
case estacao of
verao: writeln('bom tempo');
primavera, outono: writeln('tempo aceitável');
inverno: writeln('tempo mau');
end;
...
Informática
Matrizes e Vectores
0101010
Informática
Arrays unidimensionais
0101010
Sintaxe:
Type
tipo_array1 = array [ gama_de_valores1] of tipo_base1;
{define o tipo tipo_array1 como um vector de valores do tipo
tipo_base1 }
...
Var
nome_array1: tipo_array1;
{declaração de um tipo definido anteriormente, que é um array}
nome_array2: array [gama_de_valores2] of tipo_base2;
{declaração explícita}
Um vector é sempre definido sobre um tipo base Cada variável individual
Que pode ser qualquer tipo definido em Pascal tem a forma:
Que é o tipo das componentes individuais do vector
Qualquer tipo enumerado pode servir para a gama de valores nome_array[índice]
Exemplo:
Type tipolista= array [1..3] of real; Lista[1] Lista[2] Lista[3]
Var lista: tipolista;
Informática
Exemplos de aplicação
0101010
Informática
Exemplo de aplicação
0101010
Informática
Matrizes
0101010
Informática
Mais que duas dimensões - exemplo
0101010
Var
VCubo: Array [1..7, 1..10, 'A'..'D'] of integer;
VCubo
Tabela 'C'
Linha 5
VCubo[5,9,'C']
Coluna 9
Informática - OGE VCubo[7,3,'A'] Paulo Melo 12
Records
Informática
Fichas ou Registos
0101010
Livro
Em Pascal:
Titulo Type Tlivro = record
Titulo: string[80];
Autor
Autor: string;
Nº de Páginas
No_paginas: integer;
Ano de Edição Ano_edicao: 1457..2002;
Preço Preco: real;
End;
Informática - OGE Paulo Melo 13
Records
Informática
Sintaxe e Exemplo de aplicação
0101010
Informática
Comparação dos tipos estruturados
0101010
Comparação ARRAY-RECORD
São ambos mecanismos de estruturar informação, mas com
funções diferentes
Num registo, os tipos dos dados podem ser diferentes
Cada campo dentro de um record tem um tipo independente
dos restantes campos
Num registo, os nomes dos campos são identificadores
Cada componente de um array é indexado por um valor de
um tipo enumerado (X[1], Z[2,4], etc.)
É possível usar ciclos para iterar (e fazer operações) sobre todos
os elementos de um array
Cada componente de um record é indexado por um nome
(R.nome)
Não é possível iterar sobre os campos de um record
Informática
Informação persistente
0101010
Informática
Características e Limitações
0101010
Informática
Operações de Leitura ou Escrita
0101010
Leitura Escrita
Abrir o ficheiro para leitura Abrir o ficheiro para escrita
Reset(f); Rewrite(f);
Ler do ficheiro um valor para a
Escrever no ficheiro o valor da
variável x
variável x Write(f,x);
Read(f,x); Fechar o ficheiro
Fechar o ficheiro Close(f)
Close(f)
Informática
Exemplo de Aplicação
0101010
Informática
Exemplo de aplicação (código)
0101010