Um vetor armazena vários valores do mesmo tipo sob um nome. Cada posição é acessada por um índice entre colchetes. No Portugol do VisuAlg, notas: vetor[1..4] de real declara quatro posições, numeradas de 1 a 4, para guardar notas com casas decimais.
Declaração e índices
A sintaxe é nome: vetor[inicio..fim] de tipo, na área var. Os limites fazem parte da declaração: vetor[0..3] também tem quatro posições, mas começa em zero. Para o vetor de notas de 1 a 4, o acesso notas[2] representa a segunda posição.
Preencher e ler uma posição
Atribua com notas[1] <- 8.5, receba uma entrada com leia(notas[1]) e mostre com escreval(notas[1]). O exemplo abaixo usa textos: execute e altere um nome para conferir o índice.
algoritmo "ListaNomes"
var
nomes: vetor[1..3] de caractere
inicio
nomes[1] <- "Ana"
nomes[2] <- "Carlos"
nomes[3] <- "João"
escreval("A pessoa na gaveta 2 é: ", nomes[2])
fimalgoritmoPercorrer um vetor com PARA
Use um contador para visitar cada índice. No próximo exemplo, o laço lê quatro notas e soma os valores. A soma começa em zero antes da repetição. Depois da leitura, outro laço pode mostrar cada nota com escreval(notas[i]). Revise o laço PARA se o contador ainda não estiver claro.
algoritmo "MediaNotas"
var
notas: vetor[1..4] de real
soma: real
i: inteiro
inicio
soma <- 0
// Lendo todas as gavetas rapidamente
para i de 1 ate 4 faca
escreva("Digite a nota do aluno ", i, ": ")
leia(notas[i])
soma <- soma + notas[i]
fimpara
escreval("A média da turma foi: ", soma / 4)
fimalgoritmoalgoritmo "PercorrerVetor"
var
valores: vetor[1..3] de inteiro
i: inteiro
inicio
valores[1] <- 10
valores[2] <- 20
valores[3] <- 30
para i de 1 ate 3 faca
escreval("Posição ", i, ": ", valores[i])
fimpara
fimalgoritmoErros comuns com vetores
- Acessar
notas[0]ounotas[5]quando a declaração évetor[1..4]. - Reiniciar a soma dentro do laço em vez de inicializá-la antes dele.
- Usar um índice fora do intervalo ou um valor incompatível com o tipo declarado.
Depois de preencher o vetor do exercício, mostre os valores em ordem inversa. Compare sua tentativa com os exercícios de vetores. Para organizar informações em linhas e colunas, o próximo conceito é matrizes.
Exercício: encontrar o maior valor de um vetor
Este caso usa apenas números negativos. O maior valor deve começar com o primeiro elemento do vetor, e não com zero: zero nem faz parte dos dados. Compare os outros elementos com o maior encontrado até o momento.
algoritmo "MaiorValor"
var
valores: vetor[1..3] de inteiro
i, maior: inteiro
inicio
valores[1] <- -8
valores[2] <- -3
valores[3] <- -11
maior <- valores[1]
para i de 2 ate 3 faca
se valores[i] > maior entao
maior <- valores[i]
fimse
fimpara
escreval("Maior: ", maior)
fimalgoritmo
Saída: Maior: -3. No início, o maior é -8; ao ler -3, ele é atualizado; ao ler -11, permanece -3. Troque os três valores por números iguais e confira que o resultado continua correto. Depois, adapte a comparação para encontrar o menor valor.