Estruturas de Dados
description
Transcript of Estruturas de Dados
ESTRUTURAS DE DADOSAlgoritmos – 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:
1 2 3 4 5 6 7 8 9 38 39 40
inteiro: A;VCLASSE [ 7 ] ¬ 6,5;
6,57,8 5,3
VCLASSE
VCLASSE [ 2 ] ¬ 7,8;VCLASSE [ 4 ] ¬ 5,3;leia (A); // supondo que foi informado 6VCLASSE [ A ] ¬ 9,8;VCLASSE [ A-1 ] ¬ 9,1;leia ( VCLASSE [ A+3 ] ); // supondo que foi informado 4,7
9,89,1 4,7
Vetoresiní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.
Algoritmo 4.1 – Notas acima da média usando variáveis simples
Vetoresiní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.
Algoritmo 4.2 – Notas acima da média usando vetor
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:
1 2 3 4inteiro : A, B;MSALA [ 2, 3 ] ¬ 5;
MSALA
MSALA [ 3, 2 ] ¬ 6;MSALA [ 1, 2 ] ¬ 7;A ¬ 4;
MSALA [ A, B ] ¬ 8;MSALA [ A, B-2 ] ¬ 9;MSALA [ A-2, B-2 ] ¬ 10;
1
2
3
4
5
6
7
89
10
11
12
MSALA [ B, A ] ¬ 11;MSALA [ B-2, A ] ¬ 12;
B ¬ 3;
Matrizes Exemplo: Cartão da Loteria Esportiva
Jg Coluna 1 Ept Coluna 21 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
Matrizesiní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.
Algoritmo 4.3 – Loteria Esportiva, jogo mais marcado
Matrizesiní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.
Algoritmo 4.4 – Loteria Esportiva, coluna mais marcada
Registros Também denominadas Estruturas compostas
heterogêneas Permitem a manipulação de um conjunto de
informações de tipos primitivos diferentesExemplo: Passagem de ônibus
Número: 0001
De: ____________________ Para: _______________________
Data: ____ / ____ / _______ Horário: ________ : _________
Poltrona: ____________ Distância: ____________ km
Registros Declaração:
tipo regPassagem = registrointeiro: 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ídoExemplo: 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ídoExemplo: Ônibus formado por Passagem
Número: 0001
De: ____________________ Para: _______________________
Data: ____ / ____ / _______ Horário: ________ : _________
Poltrona: ____________ Distância: ____________ km
1
2
3
4
44
Conjunto de Registros Declaração:
tipo regPassagem = registrointeiro: 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;