Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Conceitos e operações básicas com vetores em programação, Notas de aula de Informática

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

Antes de 2010

Compartilhado em 24/02/2010

ygor-dos-santos-luz-3
ygor-dos-santos-luz-3 🇧🇷

4.7

(3)

55 documentos

1 / 11

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
1
Algoritmos e Estruturas de Dados
Prof. Patrick Pedreira
Estruturas de Dados
Estruturas de Dados
Homogêneas
Homogêneas
Vetores
Vetores
Vetores
Vetores
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 é:
<identificador> : Vetor [<número de elementos>] de <tipo>;
Vetores
Vetores
Exemplo 1:
exemplo: Vetor [50] de real;
Vetores
Vetores
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.
Please purchase 'e-PDF Converter and Creator' on http://www.e-pdfconverter.com to remove this message.
pf3
pf4
pf5
pf8
pf9
pfa

Pré-visualização parcial do texto

Baixe Conceitos e operações básicas com vetores em programação e outras Notas de aula em PDF para Informática, somente na Docsity!

Algoritmos e Estruturas de Dados

Prof. Patrick Pedreira

Estruturas de DadosEstruturas de Dados

Homogêneas Homogêneas

Vetores Vetores

VetoresVetores

 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 é:  : Vetor [<número de elementos>] de ;

VetoresVetores

Exemplo 1: exemplo: Vetor [50] de real;

VetoresVetores

 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.

VetoresVetores

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} ...

VetoresVetores

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 : Vetor [] de  Ex: tipo Vetor100: Vetor[100] de real;  var Notas: Vetor100;  A variável Notas pode ser utilizada como parâmetros de argumentos de módulos  Busca(V: Vetor100): inteiro {cabeçalho do módulo}  Busca(Notas);

Problema – Indicar a ocorrência e posição de um número em um vetor

VetoresVetores

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

VetoresVetores

Teste de mesa para busca no vetor para num 8

Exercícios

VetoresVetores

 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

VetoresVetores

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?

VetoresVetores

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.

VetoresVetores

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.

VetoresVetores

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.

VetoresVetores

 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];

VetoresVetores

Problema – Leitura de uma matriz 2 X 3

VetoresVetores

Abordagem inicial...Por que seria ruim?

Abordagem melhorada...Mas ainda não é a ideal Melhor abordagem

VetoresVetores

Vetores Multidimensionais

Exemplo Tipo Matriz_2X3X2: Vetor[2,3,2] de inteiro; Var Est_tridimensional: Matriz_2X3X2;