Beruflich Dokumente
Kultur Dokumente
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 podese
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 podese 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[X1] < 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 armazeneos
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, devese 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 armazenandoas 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 armazeneos
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
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.
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 sabendose 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