ESTRUTURA DE DADOS
- VARIÁVEIS COMPOSTAS
Prof. Angelo Augusto Frozza, M.Sc.
[email protected]
ROTEIRO
|
Variáveis compostas homogêneas
y
Arrays
Vetores
| Matrizes
|
|
Variáveis compostas heterogêneas
y
y
y
Registros
Registros de conjuntos
Conjuntos de registros
VARIÁVEIS COMPOSTAS
|
Os tipos Primitivos (inteiro, real, caracter e lógico)
não são suficientes para representar todos os tipos
de dados;
y
|
Geralmente são utilizados os tipos primitivos para
construir outras estruturas de dados mais complexas;
Essas são chamadas de Estruturas Compostas
de Dados
y
Dividem-se em duas formas fundamentais:
homogêneas (vetores e matrizes)
| heterogêneas (registros)
|
VETORES
|
Com os conhecimentos que possuímos até agora, podemos
concluir que ao utilizarmos variáveis, conseguimos armazenar
apenas um valor por vez;
|
Agora, imagine um programa que precisa armazenar as notas
das 5 provas realizadas por um aluno;
y Seria necessário criar cinco variáveis para armazenar as
notas:
NOTA1, NOTA2, NOTA3, NOTA4, NOTA5 : integer;
|
Em Pascal existem estruturas que permitem agrupar várias
informações dentro de uma mesma variável.
y Estas estruturas são chamadas de vetores e matrizes.
VETORES
|
Um vetor também é chamado de matriz (array) unidimensional;
|
Este tipo de estrutura é representado por seu nome, tamanho e
seu tipo:
<vetor> : array[tamanho] of <tipo_de_dado>;
|
onde:
y
y
y
vetor é o nome atribuído ao vetor;
tamanho é o tamanho atribuído ao vetor, em número de elementos;
tipo_de_dado é o tipo de elemento armazenado (inteiro, real ...).
VETORES
|
Como já visto, uma variável somente pode conter um valor
por vez;
|
No caso dos vetores, estes podem armazenar mais de um
valor por vez, pois são dimensionados exatamente para este
fim;
y
|
Porém, todos os valores devem ser do mesmo TIPO DE DADO;
Exemplo de vetor para armazenar as cinco notas do aluno:
notas : array[1..5] of real;
VETORES
|
A leitura e exibição de vetores são feitas indicando individualmente
quais elementos se deseja ler ou imprimir;
|
Exemplo:
y
y
y
y
y
|
:=
:=
:=
:=
:=
5.2;
8.0;
9.2;
7.5;
8.3;
Observe que o nome é um só, o que muda é a informação indicada
dentro dos colchetes (índice do vetor)
y
|
NOTA[1]
NOTA[2]
NOTA[3]
NOTA[4]
NOTA[5]
Índice é o endereço onde o valor está armazenado, ou seja, a posição da
nota do aluno no vetor;
Podemos imaginar o vetor como uma tabela com cinco colunas:
NOTA
5.2
8.0
9.2
7.5
8.3
VETORES
program LISTA_NOME;
var
nome: array[1..10] of string;
i: integer;
begin
writeln(‘Listagem de nomes’);
writeln;
{ *** Entrada dos Dados *** }
for i := 1 to 10 do
begin
write(‘Digite o ’, i:2, ‘ o. nome: ’);
readln(nome[i]);
end;
writeln;
{ *** Apresentação dos Nomes *** }
for i := 1 to 10 do
writeln(‘Nome: ’ , i:2, ‘ --> ’, nome[i]);
writeln;
writeln(‘Tecle <ENTER> para encerrar: ’);
readln;
end.
MATRIZES
|
Em breve...
REGISTROS
|
Registros são Estruturas Compostas Heterogêneas
y
|
Permitem a manipulação de um conjunto de informações de
tipos primitivos diferentes;
Exemplo:
PASSAGEM DE ÔNIBUS
NÚMERO: 0001
De:
Para:
Data: ___ / ___ / ___
Horário: ____ : ____
Poltrona: _________
Distância: ________ km
REGISTROS
|
Exemplo: Passagem de ônibus
y
Pode ser representada por uma variável
|
y
Passagem do tipo regPassagem
regPassagem é um tipo composto por:
Numero: inteiro
| Origem, Destino, Data e Horario: caracter
| Poltrona: inteiro
| Distancia: real
|
• É possível manipular estes tipos primitivos em conjunto
(registro) através dos comandos de leitura e escrita;
9Desta forma pode-se ler ou alterar as informações dos
elementos que compõem o registro;
REGISTROS
|
Declaração
y
Em Pascal, os tipos Registro devem ser declarados ou
atribuídos antes das definições das variáveis;
|
y
É muito comum ocorrer a necessidade de se declarar uma variável
com o tipo de registro atribuído;
Um tipo Registro é declarado em Pascal na seção type em
conjunto com o bloco record..end;
type
nomeRegistro = record
<lista de campos e tipos>
end;
REGISTROS
|
Declaração
DICA: use o prefixo reg
program Exemplo_Registros;
para identificar o nome
type
de um registro.
regPassagem = record
numero: integer;
origem: string;
destino: string;
data: string;
horario: string;
poltrona: integer;
distancia: real;
end;
var
passagem: regPassagem;
REGISTROS
|
Manipulação
begin
readln (passagem.numero);
readln (passagem.origem);
DICA: para acessar um
componente do registro
use a sintaxe:
variavel.componente
passagem.distancia := 500;
passagem.destino := 'Florianópolis';
writeln (passagem.numero);
writeln (passagem.destino);
end.
Download

ESTRUTURA DE DADOS - VARIÁVEIS COMPOSTAS