Aula 27 - Encontrar maior e menor valor do vetor
Questão#
Crie um programa que receba um vetor de 10 elementos do tipo inteiro e seu programa deve mostrar o valor do maior e do menor elemento do vetor.
$ Digite um valor inteiro: 10
$ Digite um valor inteiro: 5
$ Digite um valor inteiro: 30
$ Digite um valor inteiro: 40
$ Digite um valor inteiro: 50
$ Digite um valor inteiro: 60
$ Digite um valor inteiro: 70
$ Digite um valor inteiro: 800
$ Digite um valor inteiro: 90
$ Digite um valor inteiro: 0
O maior valor: 800 o menor valor: 0
Solução#
Para resolver este problema existem diversas maneiras, mas algumas delas podem apresentar alguns erros dependendo dos valores informados
Solução 1#
algoritmo "MaiorEMenor"
var
vet: vetor[0..9] de inteiro
maior, menor, i: inteiro
inicio
para i de 0 ate 9 faca
escreva("Digite um valor inteiro:")
leia(vet[i])
se vet[i] > maior entao
maior <- vet[i]
fimse
se vet[i] < menor entao
menor <- vet[i]
fimse
fimpara
escreva("Maior valor:", maior, "o menor valor:", menor)
fimalgoritmo
Aviso
Observe que se você digitar apenas valores positivos maiores que 0
, o programa irá informar que o menor valor é o número 0
. Isso acontece porque o Visualg inicializa todas as variáveis com o valor 0
.
Também note que se você informar apenas valores negativos o seu programa irá informar erroneamente que o maior valor é o número 0
. E também acontece por causa do valor inicial das variáveis.
Solução 2#
Para essa segunda solução, ao invés de utilizar as variáveis maior
e menor
para armazenar os valores em si, nós usaremos estas variáveis para guardar a posição do maior e menor valor no vetor.
algoritmo "MaiorEMenor"
var
vet: vetor[0..9] de inteiro
maior, menor, i: inteiro
inicio
para i de 0 ate 9 faca
escreva("Digite um valor inteiro:")
leia(vet[i])
se vet[i] > vet[maior] entao
maior <- i
fimse
se vet[i] < vet[menor] entao
menor <- i
fimse
fimpara
escreva("Maior valor:", vet[maior], "o menor valor:", vet[menor])
fimalgoritmo
Aula em vídeo#
Caso prefira também existe o conteúdo em forma de vídeo
Desafios#
Caso queira treinar um pouco mais você pode ver o(s) seguinte(s) enunciado(s):