






Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Este documento aborda os conceitos básicos de vetores em programação, sua declaração, indexação, atribuição de valores, leitura e escrita, além de exemplos de algoritmos para cálculo de média e busca de elementos em um vetor. Também é apresentado o conceito de vetores multidimensionais.
Tipologia: Notas de aula
1 / 11
Esta página não é visível na pré-visualização
Não perca as partes importantes!







Prof. Patrick Pedreira
As estruturas de dados homogêneas que estudaremos são os vetores também conhecidos como arranjos. Os arranjos (vetores) são variáveis compostas que podem representar um conjunto de valores ao mesmo tempo. É uma forma de manipular conjuntos ou coleções de dados. Isso facilita muito a programação. Imagine a criação de mil variáveis para representar todas as notas dos alunos de uma escola... Vetores nada mais são que matrizes (uni ou multidimensionais). Matriz (Álgebra) -> Arranjo retangular de elementos de um conjunto. É importante ressaltar que vetores de qualquer dimensão são caracterizados por terem todos os seus elementos pertencentes ao mesmo tipo de dado. A Forma geral para se declarar um vetor unidimensional é:
Exemplo 1: exemplo: Vetor [50] de real;
Em função de um vetor se tratar de um arranjo de elementos torna-se necessária uma forma de acessar individualmente cada elemento. A indexação possibilita tal acesso. A especificação do intervalo dos índices além de definir o número de elemento indica quais serão os valores dos índices utilizados para acessar cada elemento. No exemplo anterior, os dados serão indexados de 1 a 50. Para acessá-los vamos escrever: exemplo[ 1 ] exemplo[ 2 ] . exemplo[ 10 ] Consideraremos que os índices iniciam em 1. Mas isso pode variar em algumas linguagens de programação.
Vetores não podem ser acessados como um todo Seus elementos precisam ser manipulados individualmente, pelo índice. Portanto, as operações seguintes são inválidas: exemplo: Vetor [50] de real; escreva(Exemplo); {ERRADO} leia(Exemplo); {ERRADO}
A única exceção que faremos à regra anterior será em relação aos vetores de caracteres. Neste caso, poderemos tratar os valores individualmente, pelo índice, ou como uma variável primitiva. Essa exceção também é implementada em diversas linguagens de programação, visto que há muitos casos em que precisamos lidar com textos completos e não com as letras. Nesses casos, a manipulação dos caracteres individualmente seria um trabalho grande e desnecessário. Portanto, as operações seguintes são válidas.
Nome_Aluno: Vetor [50] de caractere; leia(Nome_Aluno); { correto - variável tratada como primitiva} escreva(Nome_Aluno); Nome_Aluno”Caio”; Nome_Aluno[7]’O’; { correto - variável tratada como vetor} escreva(Nome_Aluno[2]); { correto - variável tratada como vetor} ...
Exemplo (Atribuição de valores a elementos específicos): exemplo[4] <- 5.
Para melhorar a legibilidade do código, é interessante a utilização de constantes para a definição do tamanho do vetor. Exemplo: constante TAM=100; var Notas: Vetor[TAM] de real; A definição de tipos diferentes dos primitivos para a declaração de variáveis compostas também auxilia na melhora de legibilidade do código tipo
Problema – Indicar a ocorrência e posição de um número em um vetor
constante TAM=100; tipo Vetor100: Vetor [TAM] de inteiro; Busca(V: Vetor100; num: inteiro): inteiro {cabeçalho do módulo} var i: inteiro; início i 1; {1} enquanto(V[i]<>num e i<=TAM) faça {2} ii+1; {3} se(i<=TAM) então {4} retorne(i); {5} senão retorne(-1); {6} fim
Teste de mesa para busca no vetor para num 8
Exercícios
ProblemaProblema (^) – – Ler e somar dois vetores de seisLer e somar dois vetores de seis elementos inteiros e armazenar em um terceiro elementos inteiros e armazenar em um terceiro vetor. O primeiro elemento do vetor A deve ser vetor. O primeiro elemento do vetor A deve ser somado com o somado com o úúltimo elemento do vetor B. Oltimo elemento do vetor B. O segundo de A com o pen segundo de A com o penúúltimo de B, e assimltimo de B, e assim sucessivamente. sucessivamente. ExemploExemplo
O problema da implementação anterior é a sobreposição de valores. Após o índice passar da metade do vetor, o algoritmo começa a colocar os mesmos valores que já atribuíra na primeira metade. Os valores inicialmente atribuídos sobrepõem os originais. Assim, a primeira metade do vetor é perdida.
Versão 2: Qual o inconveniente?
A utilização do vetor auxiliar resolve o problema da sobreposição de valores. O inconveniente é a duplicação de espaço no caso de um vetor com muitos elementos.
Versão 3: Melhorada
Exercício: faça o teste de mesa para as três versões do algoritmo
Problema – Ordenar os valores de um vetor de tamanho n.
Problema – Ordenar os valores de um vetor de tamanho n. A solução desse algoritmo não é trivial, já existe uma série de algoritmos disponíveis para resolvê-lo. Veremos o algoritmo Bolha (Bubblesort) que é um dos mais simples e depois o Quicksort, que é mais sofisticado e eficiente.
Para oPara o úúltimo elemento doltimo elemento do vetor, varrevetor, varre--se o vetorse o vetor trocando os elementos emtrocando os elementos em posiposiçções adjacentes queões adjacentes que estejam fora de ordem. Aoestejam fora de ordem. Ao final deste processo, ofinal deste processo, o maior elementomaior elemento necessariamente estarnecessariamente estaráá^ nana úúltima posiltima posiçção do vetor.ão do vetor. Depois repeteDepois repete--se essese esse processo e terprocesso e ter--sese--áá aa penpenúúltima posiltima posiçção, oão, o segundo maior elemento.segundo maior elemento.
Vetores bidimensionais São conhecidos como matrizes Estruturas precisam de dois parâmetros para identificá-las (linhas e colunas)
a1:real;a1:real; ^ M: Vetor[3,2] de real;M: Vetor[3,2] de real; escreva(M[1,1]);escreva(M[1,1]); {escrita da primeira{escrita da primeira linha, primeira coluna,linha, primeira coluna, ou seja, 1}ou seja, 1} escreva(M[3,2]);escreva(M[3,2]); {escrita do valor 0}{escrita do valor 0} M[1,1]M[1,1]90;90; a1a1 M[1,1];M[1,1];
Problema – Leitura de uma matriz 2 X 3
Abordagem inicial...Por que seria ruim?
Abordagem melhorada...Mas ainda não é a ideal Melhor abordagem
Vetores Multidimensionais
Exemplo Tipo Matriz_2X3X2: Vetor[2,3,2] de inteiro; Var Est_tridimensional: Matriz_2X3X2;