Estruturas de Dados

Propaganda
ESTRUTURAS DE DADOS
Algoritmos – Aula 04
Estruturas de Dados

Tópicos
 Vetores
 Matrizes
 Registros
 Registro
de Conjuntos
 Conjuntos de Registros
Estruturas de Dados



Os tipos primitivos (inteiro, real, caracter e lógico) não são
suficientes para representar todos os tipos de informação.
Particularmente quando temos mais de uma informação
relacionada. Ex: Lista dos nomes dos alunos de uma sala,
endereço de alguém etc.
Utilizaremos os tipos primitivos para construir outras estruturas
de dados mais complexas.
Vetores


Também denominados Estruturas compostas homogêneas
unidimensionais
Permitem a manipulação de um conjunto de informações de
um mesmo tipo primitivo

Declaração :
tipo CLASSE = vetor [1 .. 40] de reais;
CLASSE: VCLASSE;
Onde:
 CLASSE: Nome do tipo que está sendo construído
 1: Limite inicial do vetor
 40: Limite final do vetor
 reais: Tipo primitivo base do vetor
 VCLASSE: Nome da variável criada cf o tipo construído
Vetores
 Manipulação:
inteiro: A;
VCLASSE [ 7 ]  6,5;
VCLASSE [ 2 ]  7,8;
VCLASSE [ 4 ]  5,3;
leia (A); // supondo que foi informado 6
VCLASSE [ A ]  9,8;
VCLASSE [ A-1 ]  9,1;
leia ( VCLASSE [ A+3 ] ); // supondo que foi informado 4,7
VCLASSE
7,8
1
2
5,3
3
4
9,1
5
9,8
6,5
6
7
4,7
8
9
38
39
40
Vetores
Algoritmo 4.1 – Notas acima da média usando variáveis simples
início
inteiro: NotaAcima;
real: A, B, C, D, E, F, G, H, I, J, Média;
NotaAcima  0;
leia (A,B,C,D,E,F,G,H,I,J);
Média  (A + B + C + D + E + F + G + H + I + J)/10;
se (A > Média)
então NotaAcima  NotaAcima + 1;
fimse;
se (B > Média)
então NotaAcima  NotaAcima + 1;
fimse;
...
se (J > Média)
então NotaAcima  NotaAcima + 1;
fimse;
escreva (NotaAcima);
fim.
Vetores
Algoritmo 4.2 – Notas acima da média usando vetor
início
tipo Classe = vetor [1 .. 10] de reais;
Classe: VClasse;
inteiro: NotaAcima, X;
real: Soma, Média;
Soma  0;
NotaAcima  0;
para X de 1 até 10 passo 1 faça
leia ( VClasse[X] );
Soma  Soma + VClasse[X];
fimpara;
Média  Soma / 10;
para X de 1 até 10 passo 1 faça
se ( VClasse[X] > Média )
então NotaAcima  NotaAcima + 1;
fimse;
fimpara;
escreva (NotaAcima);
fim.
Matrizes


Também denominadas Estruturas compostas homogêneas
multidimensionais
Permitem a manipulação de um conjunto de informações de
um mesmo tipo primitivo

Declaração:
tipo SALA = matriz [1 .. 4, 1 .. 4] de inteiros;
SALA: MSALA;
Onde:
 SALA: Nome do tipo que está sendo construído
 1: Limite inicial da primeira e da segunda dimensão
 4: Limite final da primeira e da segunda dimensão
 inteiros: Tipo primitivo base da matriz
 MSALA: Nome da variável criada cf o tipo construído
Matrizes
 Manipulação:
inteiro : A, B;
MSALA [ 2, 3 ]  5;
MSALA [ 3, 2 ]  6;
MSALA [ 1, 2 ]  7;
A  4;
B  3;
MSALA [ A, B ]  8;
MSALA [ A, B-2 ]  9;
MSALA [ A-2, B-2 ]  10;
MSALA [ B, A ]  11;
MSALA [ B-2, A ]  12;
MSALA
1
1
2
7
2 10
3
4 9
3
4
12
5
6
11
8
Matrizes

Exemplo: Cartão da Loteria Esportiva
Jg
Coluna 1
Ept
Coluna 2
1
Santos
Corinthians
2
Flamengo
Fluminense
3
Palmeiras
São Paulo
4
Vasco
Botafogo
5
Portuguesa
XV de jaú
6
São Caetano
XV de Piracicaba
7
Grêmio
Internacional
8
Havaí
Figueirense
9
Coritiba
Atlético-PR
10
Paysandú
Juventude
11
Atlético-MG
Cruzeiro
12
Brasiliense
Ponte Preta
13
Fortaleza
Goiás
14
Esportivo
Londrina
Matrizes
Algoritmo 4.3 – Loteria Esportiva, jogo mais marcado
início
tipo Loteria = vetor [1 .. 14, 1 .. 3] de caracteres;
Loteria: mLoteria;
inteiro: I, J, maisMar, nJogo, marLin;
maisMar  0;
para I de 1 até 14 faça
marLin  0;
para J de 1 até 3 faça
se mLoteria[ I, J] =‘x’;
então marLin  marLin + 1;
fimse;
fimpara;
se marLin > maisMar então
maisMar  marLin;
nJogo  I;
fimse;
fimpara;
escreva (“Jogo mais marcado: “, nJogo, “com “, maisMar);
fim.
Matrizes
Algoritmo 4.4 – Loteria Esportiva, coluna mais marcada
início
tipo Loteria = vetor [1 .. 14, 1 .. 3] de caracteres;
Loteria: mLoteria;
inteiro: I, J, maisMar, nColuna, marCol;
maisMar  0;
para J de 1 até 3 faça
marCol  0;
para I de 1 até 14 faça
se mLoteria[ I, J] =‘x’;
então marCol  marCol + 1;
fimse;
fimpara;
se marCol > maisMar então
maisMar  marCol;
nColuna  J;
fimse;
fimpara;
escreva (“Coluna mais marcada: “, nColuna, “com “, maisMar);
fim.
Registros


Também denominadas Estruturas compostas heterogêneas
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

Declaração:
tipo regPassagem = registro
inteiro: Número;
caracter: Origem, Destino, Data, Horário;
inteiro: Poltrona;
real: Distância;
fimregistro;
regPassagem: Passagem;
Manipulação:
leia (Passagem);
escreva (Passagem);
leia (Passagem.Origem);
escreva (Passagem.Destino);
Passagem.Distância  500;
Registro de Conjuntos


Combinação de estruturas heterogêneas com homogêneas
Podem ser obtidas ao incluir num registro outro tipo de dados
construído
Exemplo: Registro de Estoque com Baixa semanal
Nome: _____________________________________________
Código: ___________________ Preço: __________________
Baixa
1
2
3
4
5
6
Registro de Conjuntos

Declaração:
tipo vDias = vetor [ 1 .. 6 ] de inteiros;
tipo regProd = registro
caracter: Nome;
inteiro: Código;
real: Preço;
vDias: Baixa;
fimregistro;
regProduto: Produto;
Manipulação:
escreva (Produto.Nome);
escreva (Produto.Código);
escreva (Produto.Preço);
escreva (Produto.Baixa [ 1 ]);
Produto.Baixa [ 4 ]  500;
Conjunto de Registros


Combinação de estruturas homogêneas com heterogêneas
Podem ser obtidas ao formar um conjunto com outro tipo de dados
construído
Exemplo: Ônibus formado por Passagem
1
Número: 0001
2
De: ____________________ Para: _______________________
3
Data: ____ / ____ / _______ Horário: ________ : _________
4
Poltrona: ____________
44
Distância: ____________ km
Conjunto de Registros

Declaração:
tipo regPassagem = registro
inteiro: Número;
caracter: Origem, Destino, Data, Horário;
inteiro: Poltrona;
real: Distância;
fimregistro;
Tipo vetPassagem = vetor [ 1 .. 44 ] de regPassagem;
vetPassagem: Ônibus;
Manipulação:
leia (Passagem [ 7 ]);
escreva (Passagem [ 4 ]);
leia (Passagem [12].Origem);
escreva (Passagem [21].Destino);
Passagem [34].Distância  500;
Download