Zarcan 0 Denunciar post Postado Fevereiro 25, 2011 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. Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Fevereiro 25, 2011 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 Compartilhar este post Link para o post Compartilhar em outros sites
Zarcan 0 Denunciar post Postado Fevereiro 25, 2011 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. Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Março 2, 2011 Para descobrir o maior você não precisa fazer o 'numero' entrar num loop, o loop acontece dentro da função fmaior. []s Compartilhar este post Link para o post Compartilhar em outros sites