Você está na página 1de 5

17/09/2009

Vetores e Matrizes
 Temos os seguintes tipos de dados básicos:
 inteiros,
 reais,
 lógicos e
 literais.

 Para trabalhar com conjuntos de variáveis do mesmo tipo


Vetores e Matrizes básico, usamos o conceito de matriz.
 Conceito equivalente ao da matemática.

Prof. Giovani Rubert Librelotto, PhD

Matriz Notação Matrizes


 Matriz é um conjunto de variáveis, cada uma com um valor  nome_variável(dimensão1,...,dimensãoN): Mat de tipo
associado, como se fossem variáveis simples, mas todas
compartilham o mesmo nome.
 Onde Mat indica que a variável é do tipo matriz com N
dimensões.
 Índices são utilizados para referenciar os elementos deste
conjunto.  Exemplo: V(3) é uma matriz com uma dimensão de tamanho 3.
 Ex.: um conjunto A de 3 elementos é representado por
A1 A2 A3
onde A é o nome do conjunto e a identificação dos elementos
individuais é feita pelo nome do conjunto seguido do índice. Logo, A2
é o segundo elemento.

V1 V2 V3

Vetores
 Exemplo: M(3,3) é uma matriz de duas dimensões, respectivamente 3  Vetores são matrizes que possuem somente uma dimensão.
linhas e 3 colunas.

 Podem ser vistos como listas de elementos do mesmo tipo.


M1,1 M1,2 M1,3

M2,1 M2,2 M2,3  Operações principais sobre vetores:


 leitura
M3,1 M3,2 M3,3
 escrita
 soma dos elementos
 ordenação

1
17/09/2009

 Leitura de um vetor V(3)  Soma dos elementos de um vetor V(3)


Para i = 1 até 3 soma = 0
Ler( V(i) ) Para i = 1 até 3
Fim_para soma := soma + V(i)
Fim_para
 Escrita de um vetor V(3)
Para j = 1 até 3  CUIDADO: a variação do índice do vetor deve ficar dentro
Escrever( V(j)) dos limites da dimensão que o índice representa.
Fim_para

Exemplo
Algoritmo Média
 Ler um vetor N com 80 elementos, onde cada elemento N(80): Mat inteiro
representa a nota de um aluno. Calcular a média das notas e soma,media: real
escrever a média e o número de notas acima da média. cont,ind: inteiro
Início
soma:=0
para i=1 até 80
Início
ler( N(i))
soma:=soma+N(i)
fim_para
media:= soma/80
cont:=0
para i=1 até 80
se N(i)>=media então cont:=cont+1
fim_para
escrever("Média: ",media)
escrever("Acima: ",cont)
Fim

Ordenação de Vetores
 Existem vários algoritmos para ordenar uma lista de  Método1:
elementos.  Consiste em percorrer o vetor, comparando-se cada elemento do vetor
com o elemento imediatamente seguinte (V(i) com V(i+1)).

 Cada algoritmo apresenta uma eficiência diferente.


 Se o elemento comparado for menor ou igual ao elemento seguinte,
compara-se o segundo valor com o próximo até esgotar o vetor.
 Apresentaremos dois algoritmos simples para ordenação
crescente.  Se o elemento comparado for maior do que o imediatamente seguinte,
troca-se entre si os dois elementos e continua-se comparando o
segundo valor com o próximo até esgotar o vetor.

2
17/09/2009

15 7 1 4 17 10

Para i=1 até 5 7 15 1 4 17 10


se V(i) > V(i+1) então
Início
x:=V(i)
7 1 15 4 17 10
V(i):=V(i+1)
V(i+1):=x
Fim
Fim_para 7 1 4 15 17 10

7 1 4 15 17 10

7 1 4 15 10 17

7 1 4 15 10 17

 O vetor está agora próximo de uma ordenação, mas ainda não é a 1 7 4 15 10 17


ordenação desejada.

 Isso indica que devemos repetir o processo mais vezes até que o vetor
esteja ordenado. 1 4 7 15 10 17

 Executando mais uma vez o trecho de algoritmo...


1 4 7 15 10 17

1 4 7 10 15 17

1 4 7 10 15 17

 O número máximo de execuções do trecho do algoritmo para que  É sempre necessário repetir o passo N-1 vezes?
o vetor fique ordenado é N-1 vezes, onde N é o número de  No exemplo apresentado em apenas duas execuções do algoritmo o
elementos do vetor.
vetor já estava ordenado!
Para n=1 até 5
Início
Para i=1 até 5  Como controlar o número de vezes?
se V(i) > V(i+1) então  Se o vetor já estiver ordenado, não precisa repetir o passo mais uma
Início vez. Como saber?
x:=V(i)  Se não houve trocas entre os elementos do vetor ao executar o
V(i):=V(i+1) trecho do algoritmo, então está ordenado.
V(i+1):=x
Fim
Fim_para  Algoritmo Método da Bolha.
Fim_para

3
17/09/2009

fim:=falso  Método2:
enquanto fim=falso
 Outro processo de ordenação consiste em achar o maior elemento do
Início
conjunto e trocá-lo com a última posição.
fim:=verdadeiro
para i:=1 até 5
 Em seguida, achar o maior elemento do conjunto restante e troca-se
se V(i)>V(i+1) então
com a penúltima posição.
Início
x:=V(i)
V(i):=V(i+1)  Procede-se da mesma maneira até que o conjunto restante contenha
V(i+1):=x apenas um elemento.
fim:=falso
Fim
Fim_para
Fim_enquanto

15 7 1 4 17 10

15 7 1 4 10 17 ultimo:=6
enquanto ultimo>1
Início
maior:=V(1)
10 7 1 4 15 17 posmaior:=1
para i:=2 até 6
se maior<V(i) então
4 7 1 10 15 17 Início
maior:=V(i)
posmaior:=i
Fim
4 1 7 10 15 17 Fim_para
aux:=V(ultimo)
V(ultimo):=V(posmaior)
V(posmaior):=aux
1 4 7 10 15 17
ultimo:=ultimo-1
Fim_enquanto

Exercícios:
1. Escreva um algoritmo que leia dois vetores de 10 posições 2. Escreva um algoritmo que leia e mostre um vetor de 20
e faça a multiplicação dos elementos de mesmo índice, elementos inteiros. A seguir, conte quantos valores pares
colocando o resultado em um terceiro vetor. Mostre o vetor existem no vetor.
resultante.
3. Escreva um algoritmo que leia um vetor de 80 elementos
inteiros. Depois, encontre e mostre o menor elemento e sua
posição no vetor.

4
17/09/2009

4. Escreva um algoritmo que leia um vetor de 20 posições e


mostre-o. Em seguida, troque o primeiro elemento com o
último, o segundo com o penúltimo, o terceiro com o
antepenúltimo, e assim sucessivamente. Mostre o novo
vetor depois da troca.