estruturas de dados
DESCRIPTION
Estruturas de Dados. Algoritmos – Aula 04. Estruturas de Dados. Tópicos Vetores Matrizes Registros Registro de Conjuntos Conjuntos de Registros. Estruturas de Dados. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Estruturas de Dados](https://reader036.vdocuments.com.br/reader036/viewer/2022083005/56813589550346895d9cec60/html5/thumbnails/1.jpg)
ESTRUTURAS DE DADOS
Algoritmos – Aula 04
![Page 2: Estruturas de Dados](https://reader036.vdocuments.com.br/reader036/viewer/2022083005/56813589550346895d9cec60/html5/thumbnails/2.jpg)
Estruturas de Dados
Tópicos Vetores Matrizes Registros Registro de Conjuntos Conjuntos de Registros
![Page 3: Estruturas de Dados](https://reader036.vdocuments.com.br/reader036/viewer/2022083005/56813589550346895d9cec60/html5/thumbnails/3.jpg)
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.
![Page 4: Estruturas de Dados](https://reader036.vdocuments.com.br/reader036/viewer/2022083005/56813589550346895d9cec60/html5/thumbnails/4.jpg)
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
![Page 5: Estruturas de Dados](https://reader036.vdocuments.com.br/reader036/viewer/2022083005/56813589550346895d9cec60/html5/thumbnails/5.jpg)
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
![Page 6: Estruturas de Dados](https://reader036.vdocuments.com.br/reader036/viewer/2022083005/56813589550346895d9cec60/html5/thumbnails/6.jpg)
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
![Page 7: Estruturas de Dados](https://reader036.vdocuments.com.br/reader036/viewer/2022083005/56813589550346895d9cec60/html5/thumbnails/7.jpg)
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
![Page 8: Estruturas de Dados](https://reader036.vdocuments.com.br/reader036/viewer/2022083005/56813589550346895d9cec60/html5/thumbnails/8.jpg)
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:
int SALA [4][5];
Onde: SALA: Nome da matriz 4: capacidade da primeira dimensão 5: capacidade da segunda divisão. int: Tipo primitivo base da matriz
![Page 9: Estruturas de Dados](https://reader036.vdocuments.com.br/reader036/viewer/2022083005/56813589550346895d9cec60/html5/thumbnails/9.jpg)
Matrizes Manipulação:
0 1 2 3Int A, B;
SALA [ 1][2] = 5;
MSALA
SALA [ 2][1]= 6;SALA [ 0][1 ] = 7;A = 3;
SALA [ A][B ] = 8;SALA [ A ][B-2 ] = 9;SALA [ A-2 ][B-2 ] = 10;
0
1
2
3
5
6
7
89
10
11
12
SALA [ B ][ A ] = 11;SALA [ B-2 ][ A ] = 12;
B = 2;
![Page 10: Estruturas de Dados](https://reader036.vdocuments.com.br/reader036/viewer/2022083005/56813589550346895d9cec60/html5/thumbnails/10.jpg)
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
![Page 11: Estruturas de Dados](https://reader036.vdocuments.com.br/reader036/viewer/2022083005/56813589550346895d9cec60/html5/thumbnails/11.jpg)
Matrizes
int Loteria[14][3];int I, J, maisMar, nJogo, marLin;maisMar = 0;for(int I = 0; i<14; i++){marLin = 0;for( int J = 0; j <3; j++){if(mLoteria[I][J] ==1){marLin = marLin + 1;
}}if(marLin > maisMar} {maisMar = marLin;nJogo = I;
}}cout << “Jogo mais marcado: " << nJogo << "com " <<
maisMar;
Algoritmo 4.3 – Loteria Esportiva, jogo mais marcado
![Page 12: Estruturas de Dados](https://reader036.vdocuments.com.br/reader036/viewer/2022083005/56813589550346895d9cec60/html5/thumbnails/12.jpg)
Matrizes
int Loteria [14][ 3];inteiro I, J, maisMar, nColuna, marCol;maisMar = 0;for(int J=0; J<3; J++){marCol=0;for(int I=0 ; I<14; I++){if(mLoteria[ I][J] == 1){marCol = marCol + 1;
}}if(marCol > maisMar){maisMar = marCol;nColuna = J;
}}cout << "Coluna mais marcada: " << nColuna << "com " <<
maisMar;
Algoritmo 4.4 – Loteria Esportiva, coluna mais marcada
![Page 13: Estruturas de Dados](https://reader036.vdocuments.com.br/reader036/viewer/2022083005/56813589550346895d9cec60/html5/thumbnails/13.jpg)
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
![Page 14: Estruturas de Dados](https://reader036.vdocuments.com.br/reader036/viewer/2022083005/56813589550346895d9cec60/html5/thumbnails/14.jpg)
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;
![Page 15: Estruturas de Dados](https://reader036.vdocuments.com.br/reader036/viewer/2022083005/56813589550346895d9cec60/html5/thumbnails/15.jpg)
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
![Page 16: Estruturas de Dados](https://reader036.vdocuments.com.br/reader036/viewer/2022083005/56813589550346895d9cec60/html5/thumbnails/16.jpg)
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;
![Page 17: Estruturas de Dados](https://reader036.vdocuments.com.br/reader036/viewer/2022083005/56813589550346895d9cec60/html5/thumbnails/17.jpg)
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
![Page 18: Estruturas de Dados](https://reader036.vdocuments.com.br/reader036/viewer/2022083005/56813589550346895d9cec60/html5/thumbnails/18.jpg)
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;