Você está na página 1de 10

CAPÍTULO 7 ­ VETORES

Objetivos da aula (previsão 8 h/aula)

Objetivos da aula

1) (   )  Entender a importância da utilizacão de vetores em um algoritmo

2) (   )  Entender o conceito de índice de vetor e aprender a sua utilizacão.

3) (   )  Aprender a trabalhar com vetores relacionados (associados)

4) (   )  Desenvolver algoritmos para a localizacão de valores em vetores.

(1) Totalmente Alcançado
(2) Parcialmente Alcançado
(3) Não Alcançado
7 Vetores  {texto extraído da apostila do Prof. Wilson Castello Branco Neto – 
UNIPLAC}

7.1 Introdução 

Os   vetores   são   variáveis   estruturadas   homogêneas   capazes   de   armazenar   uma   série   de 
informações de um mesmo tipo em uma única variável.

Sua utilização é importante quando é necessário armazenar várias informações, sobre as 
quais,   em   geral,   serão   realizados   os   mesmos   processamentos   dentro   do   programa.   Por 
exemplo, para armazenar a média dos vários alunos de uma turma na memória usando 
variáveis simples, seriam necessárias “n” variáveis com nomes distintos, o que torna  o 
programa mais complexo de ser elaborado e difícil de ser entendido. Neste caso pode­se 
criar uma variável única que contenha todas estas informações.

Os vetores são a forma mais simples de variáveis estruturadas homogêneas. São estruturas 
unidimensionais que armazenam um conjunto de valores de um mesmo tipo. Um vetor é, 
na   verdade,   um   conjunto   contínuo   de   posições   de   memória   identificado   por   um   nome 
único.

Ex. Vetor para armazenar as cinco notas de um aluno

Notas:
7 8 7 6 8

Para ler e/ou escrever informações dentro de um vetor são necessárias duas informações: 
1)O nome do mesmo; e 2) A posição dentro dele.

Ex: Para cadastrar a última nota do aluno deve ser utilizada o seguinte comando:

Notas[5] <­ 9

Neste comando pode­se observar que inicialmente foi definido o nome da variável. 
Como esta variável é um vetor, em seguida foi definida a posição onde o valor deve ser 
armazenado, neste caso na posição 5. A definição da posição que está sendo manipulada 
dentro do vetor é sempre feita entre colchetes [ ] após o nome da variável.

Gerando como resultado o vetor:

Notas:
7 8 7 6 9
Para ler ou escrever alguma informação de um vetor devem ser utilizados os comandos 
LEIA e ESCREVA, indicando além da variável a posição do vetor que se deseja ler ou 
escrever.

A linha de código a seguir faz a leitura conteúdo digitado no teclado pelo usuário e o 
armazena na primeira posição do vetor.

Leia(Notas[1])

A linha de código a seguir escreve na tela o conteúdo armazenado na segunda posição do 
vetor.

Escreval(Notas[2])

Variáveis podem ser utilizadas como índices de vetores. Por exemplo, o código a seguir 
deixará o vetor “Teste” com os seguintes valores.

inicio
X <­ 5;
Teste[1] <­10 * X;
Teste[2] <­ 3;
Teste[X­1] <­ 10;
Teste[X] <­ X + 10;
Fimalgoritmo

Teste

50 3 ? 10 15

O   símbolo   “?”   na   terceira   posição   indica   que   naquela   posição   existe   um   valor 
desconhecido.

7.2 Declaração de Vetores

Para declarar uma variável do tipo vetor, utilizamos a seguinte sintaxe:

Var
Teste : vetor[1..5] de inteiro
A palavra reservada vetor indica que a variável teste será uma variável estruturada 
homogênea. O intervalo 1..5, entre colchetes, indica a quantidade de posições do vetor. A 
palavra de, indica o tipo de informações que serão armazenadas dentro do vetor, neste caso 
números inteiros. 

Em geral, os vetores são utilizados com estruturas de repetição, e a variável utilizada como 
contador (cont), para fazer o controle do número de repetições, é também utilizado como 
índice do vetor. Desta forma, a cada iteração, o valor do contador é incrementado e uma 
nova posição do vetor e processada (lida, calculada ou escrita).

Exemplo 1 ­  Faça um algoritmo que leia um conjunto de 10 números reais e armazene­os 
em um vetor.

algoritmo "exemplo1"
var
  numeros: vetor[1..10] de real
  cont: inteiro
inicio
  para cont <­ 1 ate 10 faca
    escreval("digite um numero real")
    leia(numeros[cont])
  fimpara
fimalgoritmo

Neste caso, inicialmente a variável cont tem o valor 1, assim o primeiro número digitado 
será   armazenado   na   primeira   posição  do   vetor.   Na   segunda   iteração,   a   variável  cont  é 
incrementada   para   dois   e   o   segundo   número   digitado   será   armazenado   na   posição   de 
numero dois dentro do vetor. Este processo é repetido por dez vezes, e como a variável cont 
é   utilizada   como   índice   do   vetor   a   cada   nova   iteração   uma   nova   posição   do   vetor   é 
preenchida, ficando as dez posições completas ao final do programa.

7.3 Utilização de Vários Vetores Relacionados

Mais de um vetor pode ser utilizado em um mesmo programa para armazenar informações 
de diferentes tipos mas que se referem a uma mesma entidade. Por exemplo, supondo que se 
deseja armazenar o nome, a idade e o sexo de 100 pessoas. Para isto devem ser criados três 
vetores distintos, um para os nomes, outro para as idades e, por fim, outro para os sexos, 
conforme código abaixo:

Var
Nomes : vetor[1..100] de caracter
Idades : vetor[1..100] de inteiro
Sexos : vetor[1..100] de caracter

Nomes
   1     2       3 4   5 ............................  100
João Maria José
Idades
   1     2       3 4   5 ............................  100
25 32 19

Sexos
   1     2       3 4   5 ............................  100
M F M

Apesar dos vetores serem armazenados na memória como três variáveis independentes, eles 
estão   logicamente   relacionados   pelo   índice.     A   pessoa   cujo   nome   está   armazenado   na 
posição   1   do   vetor   “nomes”,   tem   sua   idade   armazenada   na   primeira   posição   do   vetor 
“idades” e o sexo na posição 1 do vetor “sexos”. Esta associação é facilmente implementada 
quando se utiliza o contador de uma estrutura de repetição como índice dos três vetores ao 
mesmo tempo. O trecho de código abaixo é responsável por fazer a leitura dos dados das 
100 pessoas e por armazená­los nos vetores.

Exemplo 2 – Leitura e armazenamento do nome, idade e sexo de 100 pessoas em três 
vetores distintos.

para cont<­ 1 ate 100 faca
  escreval(‘Digite o nome da pessoa : `)
     leia(nomes[cont])
  escreval(‘Digite a idade da pessoa : `)
     leia(idades[cont])
  escreval(‘Digite o sexo da pessoa : `)
     leia(sexos[cont])
fimpara

O relacionamento entre os diferentes vetores para a recuperação de informações também é 
feito através dos índices dos mesmos. Por exemplo, para imprimir, o nome da pessoa mais 
jovem, deve­se inicialmente procurar a menor idade no vetor idades. Em seguida, de posse 
da   posição   onde  estava   armazenada  a   menor   idade,   é   possível   recuperar   o  nome   desta 
pessoa, já que ele estará armazenado nesta mesma posição no vetor nomes.

Exemplo 3 – Código para encontrar o nome da pessoa mais jovem.

{Código para encontrar a menor idade}
MenorIdade <­ Idades[1]
para cont <­ 2 to 100 faca
se Idades[cont] < MenorIdade entao
MenorIdade <­ Idades[cont]
PosicaoMenorIdade <­ cont
            fimse
      fimpara
Escreval(’Pessoa mais jovem : ‘, nomes[PosicaoMenorIdade])
 
Neste   código,   inicialmente,   é   buscada   a   menor   idade   no   vetor   de   “idades”.   Além   de 
armazenar o valor da menor idade na variável “MenorIdade”, o programa guarda a posição 
que está esta idade na variável “PosicãoMenorIdade”. Se a menor idade está na posição 
“PosicãoMenorIdade” no vetor idade, então o nome desta pessoa estará na mesma posição 
do vetor nomes, como mostrado no último comando do código acima.
7.1 Exercícios

1) Faça o teste de mesa para os algoritmos abaixo.

a.
Algoritmo "dez_nomes"
var
  nomes: vetor[1..10] de caracter
  i: inteiro
inicio
  para i:= 1 ate 10 faca
    nomes[i]<­ "Joao"
  fimpara
  
  para i:= 1 ate 10 faca
    escreva(nomes[i], " na posicao ", i)
  fimpara
fimalgoritmo

b.
algoritmo "t"
var
  t: vetor[1..10] de inteiro
  i, n: inteiro
inicio
  escreva("digite um numero")
  leia(n)
  para i<­ 1 ate 10 faca
    t[i]<­ i * n
  fimpara
  
  para i<­ 1 ate 10 faca
    escreval(i ," X ", n , " = " ,  t[i])
  fimpara
  
fimalgoritmo

c.
algoritmo "varias_notas"
var
  notas: vetor[1..5] de real
  cont: inteiro
inicio
  para cont<­ 1 ate 5 faca
    escreva("digite a nota do aluno ", cont)
    leia(notas[cont])
  fimpara

  para cont<­ 1 ate 5 faca
    escreval("o aluno " , cont , " tirou nota " , notas[cont])
  fimpara
fimalgoritmo
2) Implemente os algoritmos do exercício anterior no Visualg e observe a execução dos 
mesmos.

3)  Implemente um algoritmo que leia as notas de 10 alunos armazenando­as em um vetor 
(matriz) de 10 posições. Ao final escreva na tela somente as notas maiores que 5.0.

4)   Implemente um algoritmo que leia as notas e os nomes de 5 alunos armazenando os 
dados em vetores (matriz) de 5 posições, sendo que as notas serão armazenadas em um 
vetor de reais e os nomes em um outro vetor do tipo caractere. Ao final o algoritmo deve 
escrever na tela somente os nomes dos alunos que tiraram nota maior que 5.0.

5) Desenvolva um algoritmo que leia um conjunto de 15 números inteiros e armazene­os 
em um vetor A. Após a leitura dos dados o algoritmo deve multiplicar todos os números 
do vetor A por 3 e armazenar o resultado em um segundo vetor B.

6) Construa um algoritmo que solicite ao usuário o sexo de várias pessoas armazenando os 
dados em um vetor. Ao final o algoritmo deve imprimir quantas pessoas são do sexo 
masculino e quantas são do sexo feminino. O algoritmo deve parar de solicitar o sexo 
quando o número de pessoas chegar a 30.

7.2 Exercícios

Desenvolva   os   algoritmos   abaixo,   observando   as   gradativas   alterações   nos   códigos   à 


medida que são solicitadas novas características ao problema.

1) Algoritmo para fazer a leitura da idade de dez pessoas e armazená­las em um vetor

2) Algoritmo para localizar a menor idade entre as 10 idades que estão armazenadas em 
um vetor de idades.

3) Algoritmo que leia o nome e a idade de dez pessoas  armazenando os dados em vetores.

4) Algoritmo que leia o nome e a idade de dez pessoas  armazenando os dados em vetores 
e que localize o nome da pessoa de menor idade.

5) Algoritmo que leia o nome, a idade, e o sexo de dez pessoas  armazenando os dados em 
vetores.

6) Algoritmo que leia o nome, a idade, e o sexo de dez pessoas  armazenando os dados em 
vetores e que localize o nome e o sexo da pessoa de menor idade.

7) Algoritmo que leia o nome, a idade, e o sexo de dez pessoas  armazenando os dados em 
vetores e que faca a contagem do numero de pessoas do sexo masculino e do sexo 
feminino que possuem idade maior que 18.
8) Algoritmo que leia o nome, a idade, e o sexo de dez pessoas  armazenando os dados em 
vetores e que imprima o nome das pessoas do sexo masculino que possuem idade maior 
que 18. 

7.3 Exercícios

1) Elabore um algoritmo que leia a nota de 80 alunos e que imprima ao final a nota de 
cada aluno e a média da turma (utilize a estrutura de repetição enquanto faca).

2) Elabore um algoritmo que leia a nota de 80 alunos e que imprima ao final a nota de 
cada aluno e a média da turma (utilize a estrutura de repetição para faca).

3) Elabore um algoritmo que armazene o nome e duas notas de 5 alunos e imprima uma 
listagem contendo nome, as duas notas e a média de cada aluno.

4) Elabore   um   algoritmo   que   armazene   números   em   dois   vetores   inteiros   de   cinco 


elementos cada, gere e imprima o vetor soma.

5) Um   armazém   trabalha   com   100   mercadorias   diferentes   identificadas   pelos   números 


inteiros de 1 a 100. O dono do armazém anota a quantidade de cada mercadoria vendida 
durante o mês. Ele tem uma tabela que indica para cada mercadoria o preço de venda. 
Elabore um algoritmo para calcular o faturamento mensal do armazém, ou seja:

faturamento = ∑ (quantidadei * preçoi);

Exemplo
Quantidade Preço Subtotal (R$)
1 20,00 20,00
4 10,00 40,00
6 15,00 90,00
Faturamento 150,00

6) Elabore um algoritmo que leia um conjunto X com 10 números e calcule a diferença 
entre o maior e o menor elemento existente.

7) Elabore um algoritmo que leia um conjunto X com 10 números e calcule a diferença 
entre as posições que maior e o menor elemento existentes ocupam.

8) Dada uma coleção de N números, imprimir o índice do primeiro número negativo, se 
houver.
9) Elabore um algoritmo que leia nome e salário de 20 pessoas. Calcular e armazenar o 
novo  salário  sabendo­se  que  o  reajuste  foi   de  8%.  Ao  final   imprimir   uma  listagem 
numerada com nome e novo salário.

10) Elabore um algoritmo que leia o nome, a idade e o sexo de 10 pessoas e imprima (Caso 
preferir, desenvolva algoritmos separados para cada item):

a) média de idade das pessoas
b) nome da pessoa mais jovem
c) nome da pessoa mais idosa
d) nome e a idade do homem mais jovem
e) nome e idade da mulher mais idosa