estrutura de dados exercÍcios e matrizes
DESCRIPTION
ESTRUTURA DE DADOS EXERCÍCIOS e MATRIZES. Professor Victor Sotero. Fazer um algoritmo que mostre os números pares. algoritmo pares vet: vetor [1..10] de inteiro i: inteiro inicio para iTRANSCRIPT
![Page 1: ESTRUTURA DE DADOS EXERCÍCIOS e MATRIZES](https://reader034.vdocuments.pub/reader034/viewer/2022042718/568153d5550346895dc1ca74/html5/thumbnails/1.jpg)
ESTRUTURA DE DADOSEXERCÍCIOS e MATRIZES
Professor Victor Sotero
Estrutura de Dados 1
![Page 2: ESTRUTURA DE DADOS EXERCÍCIOS e MATRIZES](https://reader034.vdocuments.pub/reader034/viewer/2022042718/568153d5550346895dc1ca74/html5/thumbnails/2.jpg)
ALGUNS EXEMPLOS DE VETORFazer um algoritmo que mostre os números pares.algoritmo pares
vet: vetor [1..10] de inteiroi: inteiro
iniciopara i<- 1 ate 10 facaEscreval ("Digite um numero")
leia(vet[i])fimparaPARA i<- 1 ate 10 facase (vet[i] mod 2=0) entao
Escreval(vet[i])fimsefimparafim
Estrutura de Dados 2
![Page 3: ESTRUTURA DE DADOS EXERCÍCIOS e MATRIZES](https://reader034.vdocuments.pub/reader034/viewer/2022042718/568153d5550346895dc1ca74/html5/thumbnails/3.jpg)
EXERCÍCIOS1-Faça um algoritmo que leia dois vetores de
seis elementos inteiros e calcule a soma de cada elemento, armazenando em um terceiro vetor. O primeiro elemento do vetor A deve ser somado como primeiro elemento do vetor B e assim sucessivamente.
Estrutura de Dados 3
![Page 4: ESTRUTURA DE DADOS EXERCÍCIOS e MATRIZES](https://reader034.vdocuments.pub/reader034/viewer/2022042718/568153d5550346895dc1ca74/html5/thumbnails/4.jpg)
RESPOSTAAlgoritmo"Soma_vetores“ Declare
i: inteirovetor_A: Vetor [1..6] de realvetor_B: Vetor [1..6] de realvetor_R: Vetor [1..6] de real
InicioPara i := 1 ate 6 Faca
Escreva("entre com o valor para a posição ", i ," no vetor A: ")Leia(vetor_A[i])Escreva ("entre com o valor para a posição ", i ,“no vetor B: ") Leia (vetor_B[i])
FimparaPara i := 1 ate 6 Faca
vetor_R[i]<- vetor_A[i] + vetor_B[i]FimparaPara i de 1 ate 6 faca
Escreval( i , " - " , vetor_R[ i ] ) Fimpara Fim
Estrutura de Dados 4
![Page 5: ESTRUTURA DE DADOS EXERCÍCIOS e MATRIZES](https://reader034.vdocuments.pub/reader034/viewer/2022042718/568153d5550346895dc1ca74/html5/thumbnails/5.jpg)
MATRIZ
Os vetores, ou variáveis compostas unidimensionais, têm como principal característica a necessidade de apenas um índice para endereçamento. Uma estrutura que precise de mais de um índice, como no caso de matrizes, será denominada estrutura composta multidimensional.
Estrutura de Dados 5
![Page 6: ESTRUTURA DE DADOS EXERCÍCIOS e MATRIZES](https://reader034.vdocuments.pub/reader034/viewer/2022042718/568153d5550346895dc1ca74/html5/thumbnails/6.jpg)
ATRIBUIÇÃO DE MATRIZES
• A atribuição é uma das formas de qualquer variável armazenar algum valor.
a) mat[3,4] ← 3.75 b) Para i de 1 até 5 faça
Para j de 1 até 5 faça Se(i = j) então x[i,j] ← 1
senão x[i,j] ← 0 Fim_se Fim_para Fim_para
Estrutura de Dados 6
![Page 7: ESTRUTURA DE DADOS EXERCÍCIOS e MATRIZES](https://reader034.vdocuments.pub/reader034/viewer/2022042718/568153d5550346895dc1ca74/html5/thumbnails/7.jpg)
LEITURA DE MATRIZESa) Para i de 1 até 20 faça Para j de 1 até 15 faça Leia ( mat[i,j] ) Fim_para Fim_para b) Escreva(“Digite números positivos:”) Para a de 1 até 10 faça Para b de 1 até 10 faça Escreva(“Atenção! Positivo.”) Leia( x ) Até ( x > 0 ) matriz[a,b] ← x Fim_para Fim_para
Estrutura de Dados 7
![Page 8: ESTRUTURA DE DADOS EXERCÍCIOS e MATRIZES](https://reader034.vdocuments.pub/reader034/viewer/2022042718/568153d5550346895dc1ca74/html5/thumbnails/8.jpg)
MATRIZUma matriz é uma variável composta homogênea multidimensional formada por uma seqüência de variáveis, todas do mesmo tipo, com o mesmo identificador (mesmo nome) e alocadas seqüencialmente na memória.
Estrutura de Dados 8
![Page 9: ESTRUTURA DE DADOS EXERCÍCIOS e MATRIZES](https://reader034.vdocuments.pub/reader034/viewer/2022042718/568153d5550346895dc1ca74/html5/thumbnails/9.jpg)
MATRIZ
Considerando que os andares de um prédio são divididos em apartamentos temos uma estrutura multidimensional. Para localizarmos um indivíduo neste prédio precisaremos de seu nome, o andar e o número do apartamento. Considerando uma estrutura bidimensional (dois índices: andar e apartamento), o primeiro índice indica a linha e o segundo, a coluna.
Estrutura de Dados 9
![Page 10: ESTRUTURA DE DADOS EXERCÍCIOS e MATRIZES](https://reader034.vdocuments.pub/reader034/viewer/2022042718/568153d5550346895dc1ca74/html5/thumbnails/10.jpg)
MATRIZES
Estrutura de Dados 10
![Page 11: ESTRUTURA DE DADOS EXERCÍCIOS e MATRIZES](https://reader034.vdocuments.pub/reader034/viewer/2022042718/568153d5550346895dc1ca74/html5/thumbnails/11.jpg)
EXEMPLOalgoritmo "matriz" // Função : // Autor : // Data : 16/3/2007 // Seção de Declarações var matrizA: vetor[1..2,1..2] de inteiro i,j: inteiro inicio escreval("Entre com os dados da matriz:") para i <- 1 ate 2 faca //varre a linha da matri para j <- 1 ate 2 faca //varre a coluna matriz leia(matrizA[i,j]) fimpara fimpara escreval("A matriz digitada foi:") para i <- 1 ate 2 faca para j <- 1 ate 2 faca escreva(matrizA[i,j]) fimpara escreval("") fimpara // Seção de Comandos fimalgoritmo
Estrutura de Dados 11
![Page 12: ESTRUTURA DE DADOS EXERCÍCIOS e MATRIZES](https://reader034.vdocuments.pub/reader034/viewer/2022042718/568153d5550346895dc1ca74/html5/thumbnails/12.jpg)
REGISTROS
• É uma variável composta heterogênea;• Até então nós vimos estruturas de dados de
armazenamento de mesmo tipo. Os registros armazenam estruturas de dados de tipos diferentes;
• Como exemplo temos um formulário de embarque de ônibus, onde terá informações como horário, número da passagem, origem, destino e etc...
Estrutura de Dados 12
![Page 13: ESTRUTURA DE DADOS EXERCÍCIOS e MATRIZES](https://reader034.vdocuments.pub/reader034/viewer/2022042718/568153d5550346895dc1ca74/html5/thumbnails/13.jpg)
REGISTROS
• Um registro é composto por campos que são partes que especificam cada uma das informações que o compões;
• Uma variável do tipo registro é uma variável composto que armazena valores de diversos tipo, logo heterogênea;
Estrutura de Dados 13
![Page 14: ESTRUTURA DE DADOS EXERCÍCIOS e MATRIZES](https://reader034.vdocuments.pub/reader034/viewer/2022042718/568153d5550346895dc1ca74/html5/thumbnails/14.jpg)
DECLARAÇÃO(REGISTROS)
• Primeiramente devemos declarar como é construído o tipo, seguido dos campos declarando suas variáveis com seus respectivos tipos.
• Ex.:tipo idregistro = registro
tipo primitivo : idcampo;fimregistro;
Estrutura de Dados 14
Nome associado ao tipo registro construído
Representa qualquer um dostipos básicos
Representa o nome associado a cada campo
![Page 15: ESTRUTURA DE DADOS EXERCÍCIOS e MATRIZES](https://reader034.vdocuments.pub/reader034/viewer/2022042718/568153d5550346895dc1ca74/html5/thumbnails/15.jpg)
EXEMPLO(REGISTRO)
• A representação da passagem de um ônibus, usando registros seria://definição do tipo registrotipo regEmbarque = registro
inteiro: Numpass, NumPoltrona, Idade;caracter: Nome, Data, Origem, Destino;
fimregistro//declaração da variável composta do tipo registro criadoregEmbarque: Embarque;
Estrutura de Dados 15
![Page 16: ESTRUTURA DE DADOS EXERCÍCIOS e MATRIZES](https://reader034.vdocuments.pub/reader034/viewer/2022042718/568153d5550346895dc1ca74/html5/thumbnails/16.jpg)
MANIPULAÇÃO DE REGISTROS• Em algum momento podemos precisar especificamente de algum
campo do registro. Quando acessamos genericamente o registro estamos referenciando obrigatoriamente todos os campos.Ex.: Leia(Embarque);Escreva(Embarque);
• Para usarmos um campo específico devemos referenciar esse campo, utilizando o ponto(.), separando o nome do registro do nome do campo;Ex.:Escreva(Embarque.Idade);Se (Embarque.Idade<18) então
Escreva(Embarque.Nome, “é menor de idade”);Fimse;
Estrutura de Dados 16
![Page 17: ESTRUTURA DE DADOS EXERCÍCIOS e MATRIZES](https://reader034.vdocuments.pub/reader034/viewer/2022042718/568153d5550346895dc1ca74/html5/thumbnails/17.jpg)
REGISTROS DE CONUNTOS• Até então, vimos tipos de registros que aceitam diversos tipos
primitivos;• Podemos também criar registros que aceitem tipos
construídos( vetor ou matriz);• Entendo melhor: Digamos que temos um registro de estoque
de produto, e devemos saber a baixa do produto todo dia, logo temos um campo numérico para isso. Podemos então criar um vetor de 6 posições, que represente os dias da semana.
Estrutura de Dados 17
Nome:_________________________________________________Código:_________________________Preço:__________________
Baixa:
1 2 3 4 5 6
![Page 18: ESTRUTURA DE DADOS EXERCÍCIOS e MATRIZES](https://reader034.vdocuments.pub/reader034/viewer/2022042718/568153d5550346895dc1ca74/html5/thumbnails/18.jpg)
REGISTROS DE CONJUNTO• Para definir o exemplo anterior, definimos um tipo de vetor;• Inicialmente declaramos as posições(6), depois o tipo do registro, definindo assim
todos os campos que serão incluídos dentro do registro, antes da variável composta://definição do vetortipo vDias = vetor[1..6] de inteiros;//definição do tipo registrotipo regProduto = registrointeiro: codigo;caracter: nome;real: preco;vdias: baixa; // tipo do vetor definidofimregistro;// declaração da vairável composta do tipo registro;regproduto: Produto;
Estrutura de Dados 18
![Page 19: ESTRUTURA DE DADOS EXERCÍCIOS e MATRIZES](https://reader034.vdocuments.pub/reader034/viewer/2022042718/568153d5550346895dc1ca74/html5/thumbnails/19.jpg)
REGISTROS DE CONJUNTOS• Registro de estoque de um produto que possa conter as
baixas referentes a 4 semanas, dessa forma iremos utilizar uma matriz:
Estrutura de Dados 19
Nome:_________________________________________________Código:_________________________Preço:__________________Baixa:
1 2 3 4 5 6
1
2
3
4
![Page 20: ESTRUTURA DE DADOS EXERCÍCIOS e MATRIZES](https://reader034.vdocuments.pub/reader034/viewer/2022042718/568153d5550346895dc1ca74/html5/thumbnails/20.jpg)
REGISTRO DE CONJUNTOS• Declaração:
//definição da matriztipo matDias = matriz[1..4,1..6] de inteiros;//definição do tipo do registrotipo regProduto = registro;
inteiro: Codigo;caracter: Nome;real: Preco;matDias: Baixa; //do tipo matriz definido
fimregistro;//declaração da variável composta do tipo registroregProduto: Produto;
Estrutura de Dados 20
![Page 21: ESTRUTURA DE DADOS EXERCÍCIOS e MATRIZES](https://reader034.vdocuments.pub/reader034/viewer/2022042718/568153d5550346895dc1ca74/html5/thumbnails/21.jpg)
MANIPULAÇÃO (REGISTRO DE CONJUNTOS)
• É da mesma forma que a manipulação das estruturas de dados definidas anteriormente;
• E.: Para acessar quanto foi vendido do produto no terceiro dia da quarta semana, teríamos:
Produto.baixa[4,3];
Estrutura de Dados 21
![Page 22: ESTRUTURA DE DADOS EXERCÍCIOS e MATRIZES](https://reader034.vdocuments.pub/reader034/viewer/2022042718/568153d5550346895dc1ca74/html5/thumbnails/22.jpg)
MANIPULAÇÃO(REGISTRO DE CONJUNTOS)
Estrutura de Dados 22
![Page 23: ESTRUTURA DE DADOS EXERCÍCIOS e MATRIZES](https://reader034.vdocuments.pub/reader034/viewer/2022042718/568153d5550346895dc1ca74/html5/thumbnails/23.jpg)
Estrutura de Dados 23
![Page 24: ESTRUTURA DE DADOS EXERCÍCIOS e MATRIZES](https://reader034.vdocuments.pub/reader034/viewer/2022042718/568153d5550346895dc1ca74/html5/thumbnails/24.jpg)
Estrutura de Dados 24
![Page 25: ESTRUTURA DE DADOS EXERCÍCIOS e MATRIZES](https://reader034.vdocuments.pub/reader034/viewer/2022042718/568153d5550346895dc1ca74/html5/thumbnails/25.jpg)
SUB-ROTINAS
• As subrotinas são divisões dos algoritmos, que são utilizadas para:
• Facilitar a manutenção dos algoritmos• Dividir as tarefas.• Dar maior organização aos algoritmos• Para reaproveitar os Algoritmos.• Existem 2 tipos Basicos de Subrotinas:
Estrutura de Dados 25
![Page 26: ESTRUTURA DE DADOS EXERCÍCIOS e MATRIZES](https://reader034.vdocuments.pub/reader034/viewer/2022042718/568153d5550346895dc1ca74/html5/thumbnails/26.jpg)
TIPOS DE SUB ROTINASFunção: È a subrotina que executa seus procedimentos, e ao final retorna um valor. Procedimento: È a subrotina que não faz retorno nenhum. Apenas executa os
procedimentos a ela associados. Para que possamos trabalhar com as subrotinas serão necessárias algumas
alterações nos nossos algoritmos.
Estrutura de Dados 26
![Page 27: ESTRUTURA DE DADOS EXERCÍCIOS e MATRIZES](https://reader034.vdocuments.pub/reader034/viewer/2022042718/568153d5550346895dc1ca74/html5/thumbnails/27.jpg)
ARGUMENTOS• Um argumento é um tipo especial de variável utilizada em um algoritmo. Ele
é especial porque dentro dele estará um valor predeterminado pelo usuário que esta utilizando o algoritmo.
• Isto quer dizer que o argumento é um valor que será colocado dentro de uma variável pelo usuário do algoritmo, que será utilizado pelo algoritmo como uma variável comum.
• Em tempo de processamento, isto quer dizer que os argumento serão passados como parâmetros na linha de comando da chamada do programa.
• A única diferença do argumento para uma variável comum é que ele já vem com um valor armazenado desde o inicio do algoritmo, enquanto que as outras variáveis necessitam ser inicializadas antes de serem usadas.
• No decorrer do algoritmo os argumentos poderão ser utilizados e alterados exatamente como as variáveis comuns, e inclusive deverão ser declarados.
Estrutura de Dados 27
![Page 28: ESTRUTURA DE DADOS EXERCÍCIOS e MATRIZES](https://reader034.vdocuments.pub/reader034/viewer/2022042718/568153d5550346895dc1ca74/html5/thumbnails/28.jpg)
LISTASÉ uma estrutura de dados linear que permite representar um conjunto de informações de forma a preservar uma relação de ordem entre eles. Esta estrutura deve também suportar os 4 tipos de atualizações :
• • Inclusão• Exclusão• Alteração• Atravessamento.
Estrutura de Dados 28
![Page 29: ESTRUTURA DE DADOS EXERCÍCIOS e MATRIZES](https://reader034.vdocuments.pub/reader034/viewer/2022042718/568153d5550346895dc1ca74/html5/thumbnails/29.jpg)
LISTAS (REPRESENTAÇÃO)Exemplo LISTA=(A,B,C,D,E)A=>B=>C=>D=>E Para representar as lista dentro de nossos algoritmos nós vamos utilizar
a estrutura do tipo matriz que foi vista anteriormente. As listas podem ser alocadas segundo duas relações:
Relação de ContigüidadeRelação de Encadeamento.
Estrutura de Dados 29
![Page 30: ESTRUTURA DE DADOS EXERCÍCIOS e MATRIZES](https://reader034.vdocuments.pub/reader034/viewer/2022042718/568153d5550346895dc1ca74/html5/thumbnails/30.jpg)
RELAÇÃO DE CONTINGUIDADEÉ a forma mais simples de se relacionar os elementos de uma lista. Nela um elemento aponta sempre para o seu sucessor seqüencial.Desta forma a nossa lista estará sempre na sua ordem física, ou seja os elementos estarão dispostos fisicamente dentro da lista de maneira que a ordem entre os elementos seja mantida.
Dentro de uma lista nós devemos permitir 4 operações básicas:
InclusãoExclusão AlteraçãoAtravessamento
Estrutura de Dados 30
![Page 31: ESTRUTURA DE DADOS EXERCÍCIOS e MATRIZES](https://reader034.vdocuments.pub/reader034/viewer/2022042718/568153d5550346895dc1ca74/html5/thumbnails/31.jpg)
ATRAVESSAMENTO
A operação de atravessamentos consiste em percorrer toda a lista, do seu começo até o seu final, visitando todos os seus elementos.O atravessamento começa pelo primeiro elemento da lista, mostra este elemento e vai sempre mostrado os próximos elementos até chegar no ultimo(N)
Estrutura de Dados 31
![Page 32: ESTRUTURA DE DADOS EXERCÍCIOS e MATRIZES](https://reader034.vdocuments.pub/reader034/viewer/2022042718/568153d5550346895dc1ca74/html5/thumbnails/32.jpg)
EXEMPLO
Estrutura de Dados 32
![Page 33: ESTRUTURA DE DADOS EXERCÍCIOS e MATRIZES](https://reader034.vdocuments.pub/reader034/viewer/2022042718/568153d5550346895dc1ca74/html5/thumbnails/33.jpg)
INCLUSÃO EM LINHAS CONTÍGUASA inclusão é a operação que visa a colocação de um novo elemento dentro da lista de maneira que a ordem entre os elementos seja mantida.Se a inclusão ocorre no final de lista , o seu procedimento é fácil. Porem se a inclusão acontecer no meio da lista, será necessário que todos os elementos após aquele que foi incluído sejam deslocados uma casa para baixo.
Note que para que possamos fazer uma inclusão nó devemos declarar a lista com 1 elemento a mais do que ele já possui, para reservar lugar para o novo elemento que será incluído.
Estrutura de Dados 33
![Page 34: ESTRUTURA DE DADOS EXERCÍCIOS e MATRIZES](https://reader034.vdocuments.pub/reader034/viewer/2022042718/568153d5550346895dc1ca74/html5/thumbnails/34.jpg)
PASSOS PARA INCLUSÃO
1-Criar um espaço em branco no final da lista2-Aceitar a letra que será incluída (ELEMENTO_NOVO)3-Achar a posição de inclusão da letra na lista (POS)4-Fazer uma critica para ver se a letra já não existe na lista5-Remanejar todos os elementos abaixo da posição de inclusão uma posição para baixo començando de baixo para cima.6-Incluir o elemento na posição de inclusão.8-N: = N + 1
Estrutura de Dados 34