Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Bom pessoal, estou com uma dúvida.
Não estou conseguindo fazer uma função calcular o maior número de um vetor de 10 elementos e exibir, ele sempre pega o ultimo número e exibe. Se alguém puder ajudar nessa dúvida eu agradeço.
algoritmo "Maior_Vetor"
var
vet : vetor[1..10] de inteiro
num,numero,i,maior :inteiro
funcao fnumero(num2:inteiro):inteiro
var
maior1:inteiro
inicio
se (num2 > maior1) entao
maior1 := num2
fimse
retorne maior1
fimfuncao
inicio
para i := 1 ate 10 faca
escreva ("Digite o número: ")
leia (vet[i])
numero := fnumero(num)
fimpara
escreva ("O maior número do vetor é ",numero)
fimalgoritmo
Estou usado o visualg, o exercicio diz para criar uma função, senão eu já tinha feito com um procedimento.
Edit:
Consegui, o algoritmo ficou assim:
algoritmo "Vetor_Maior"
var
vet: vetor[1..10] de inteiro
i,maior,numero: inteiro
funcao fmaior(var vet1,maior1:inteiro):inteiro
inicio
se i = 1 entao
maior1 := vet1
fimse
se vet1 > maior1 entao
maior1:=vet1
fimse
retorne maior1
fimfuncao
inicio
para i := 1 ate 10 faca
escreva ("Digite o número: ")
leia (vet[i])
limpatela
fimpara
maior := 0
para i := 1 ate 10 faca
numero:= fmaior(vet[i],maior)
fimpara
escreva ("Maior número do vetor é: ",numero)
fimalgoritmo
Agora vou tentar descobrir o menor valor.
Valeu pela ajuda.
Edit2:
Fiz o do menor, segue:
algoritmo "Vetor_Maior"
var
vet: vetor[1..10] de inteiro
i,menor,numero: inteiro
funcao fmaior(var vet1,menor1:inteiro):inteiro
inicio
se i = 1 entao
menor1 := vet1
fimse
se menor1 > vet1 entao
menor1:= vet1
fimse
retorne menor1
fimfuncao
inicio
para i := 1 ate 10 faca
escreva ("Digite o número: ")
leia (vet[i])
limpatela
fimpara
para i := 1 ate 10 faca
numero:= fmaior(vet[i],menor)
fimpara
escreva ("Menor número do vetor é: ",numero)
fimalgoritmo
Mais uma vez, obrigado.
Encerro por aqui.
Para descobrir o maior você não precisa fazer o 'numero' entrar num loop, o loop acontece dentro da função fmaior.
[]s
A sua função fNumero precisa estar fora do loop e de preferência esperar um array de inteiros e não apenas um inteiro..
Se você printar na tela oq acontece em cada retorno da fNumero(do jeito que está o programa), você vai entender o que está acontecendo.
Qualquer coisa vorrta ae.
[]s