190 likes | 334 Views
Estruturas de Dados. Algoritmos – Aula 04. Estruturas de Dados. Tópicos Vetores Matrizes Registros Registro de Conjuntos Conjuntos de Registros. Estruturas de Dados.
E N D
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 5,3 9,1 9,8 6,5 4,7 1 2 3 4 5 6 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 MSALA • Manipulação: 1 2 3 4 inteiro : A, B; MSALA [ 2, 3 ] ¬ 5; 7 12 1 MSALA [ 3, 2 ] ¬ 6; 10 5 2 MSALA [ 1, 2 ] ¬ 7; A ¬ 4; 6 11 B ¬ 3; 3 MSALA [ A, B ] ¬ 8; 9 8 MSALA [ A, B-2 ] ¬ 9; 4 MSALA [ A-2, B-2 ] ¬ 10; MSALA [ B, A ] ¬ 11; MSALA [ B-2, A ] ¬ 12;
Matrizes • Exemplo: Cartão da Loteria Esportiva
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: tiporegPassagem = 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: tipovDias = vetor [ 1 .. 6 ] de inteiros; tiporegProd = 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 Número: 0001 De: ____________________ Para: _______________________ Data: ____ / ____ / _______ Horário: ________ : _________ Poltrona: ____________ Distância: ____________ km 1 2 3 4 44
Conjunto de Registros • Declaração: tiporegPassagem = registro inteiro: Número; caracter: Origem, Destino, Data, Horário; inteiro: Poltrona; real: Distância; fimregistro; TipovetPassagem = 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;