Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Zarcan

[Resolvido] Função para pegar maior número de vetor

Recommended Posts

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.