Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Galera preciso fazer um algoritmo que determine o maior entre n numeros. a condição de parada é a entrada de um valor 0, ou seja, o algoritmo deve ficar calculando o maior até que a entrada seja igual a zero.
se alguem puder me ajudar, agradeço.
o CARA VALEU PELA ATENÇÃO, TENTEI FAZER NO VISUAL G MAS ESTA DANDO LOOPING INFINITO, TAMBEM NEM SEI SE MINHA LOGICA ESTA CERTA.
algoritmo "semnome"
// Função :
// Autor :
// Data : 16/11/2007
// Seção de Declarações
var
N,MAIOR,N2: INTEIRO
inicio
ESCREVAL ("DIGITE UM NUMERO")
LEIA (N)
ENQUANTO (N<>0) FACA
MAIOR<-N
ESCREVAL ("DIGITE UM NUMERO")
LEIA (N2)
SE (N2 > MAIOR) ENTAO
MAIOR<- N2
SENAO
MAIOR <- N
FIMSE
FIMENQUANTO
ESCREVAL ("O NUMERO NUMERO DIGITADO FOI ", MAIOR)
fimalgoritmo
precisa de alguns ajustes.
O loop está mesmo infinito a menos que o primeiro número seja 0.
Quem deve dizer para o loop para é n2 que é a variavel que recebe os valores de leitura.
faça maior receber n antes do laço.
e por último, voce está atribuindo o ultimo valor lido a maior.
algoritmo "semnome"
// Função :
// Autor :
// Data : 16/11/2007
// Seção de Declarações
var
N,MAIOR,N2: INTEIRO
inicio
ESCREVAL ("DIGITE UM NUMERO")
LEIA (N)
MAIOR<-N
ENQUANTO (N2<>0) FACA
ESCREVAL ("DIGITE UM NUMERO")
LEIA (N2)
SE (N2 > MAIOR) ENTAO
MAIOR<- N2
FIMSE
FIMENQUANTO
ESCREVAL ("O NUMERO NUMERO DIGITADO FOI ", MAIOR)
fimalgoritmo
Teste isso.
http://forum.imasters.com.br/public/style_emoticons/default/natal_happy.gif
Então kandrade, mesmo deste jeito esta dando looping infinito, teria que colocar um escreva la embaixo para parar esse problema, porem ai o algoritmo vai ficar errado, ta uma olhada nesse algoritmo, para mim a logica esta certa, fiz o teste de mesa, o problema é no visual g.
algoritmo "semnome"
// Função :
// Autor :
// Data : 16/11/2007
// Seção de Declarações
var
N,MAIOR,N2: INTEIRO
inicio
ESCREVAL ("DIGITE UM NUMERO")
LEIA (N)
ENQUANTO ( N <> 0 ) FACA
ESCREVAL ("DIGITE UM NUMERO")
LEIA (N2)
SE (N2 > N) ENTAO
MAIOR<- N2
SENAO
MAIOR <- N
FIMSE
FIMENQUANTO
ESCREVAL ("O MAIOR NUMERO NUMERO DIGITADO FOI ", MAIOR)
fimalgoritmo
vixi esta errado tem que ser feito com a sua logica mesmo. o visual g so precisa rodar, valeu
Teste o algoritmo que te passei.
O loop encerra quando voce entrar com 0.
http://forum.imasters.com.br/public/style_emoticons/default/natal_wink.gif
ja testei, mas não da certo, testa para você ver, quanto sobe o looping ele ficar pedindo so para digitar o n2
Ta bom, faça assim então:
algoritmo "semnome"
// Função :
// Autor :
// Data : 16/11/2007
// Seção de Declarações
var
N,MAIOR: INTEIRO
inicio
ESCREVAL ("DIGITE UM NUMERO")
LEIA (N)
MAIOR<-N
ENQUANTO (N<>0) FACA
ESCREVAL ("DIGITE UM NUMERO")
LEIA (N)
SE (N > MAIOR) ENTAO
MAIOR <- N
FIMSE
FIMENQUANTO
ESCREVAL ("O NUMERO NUMERO DIGITADO FOI ", MAIOR)
fimalgoritmo
http://forum.imasters.com.br/public/style_emoticons/default/natal_tongue.gif
kandrade valeu mesmo, funcionou legal, muito obrigado!!!!.
Opa, foi nada.
http://forum.imasters.com.br/public/style_emoticons/default/natal_biggrin.gif
KANDRADE VALEU MESMO, FUNCIONOU LEGAL, MUITO OBRIGADO!!!!.
Como saber se um número é maior que outro?
Voce deve usar um teste "se" e uma comparação.
Pense assim.
crie uma variavel n "numero" e uma m "maior".
leia o primeiro numero e atribua a m seu valor.
leia (n)
m <- n
Pronto, voce tem que maior é o primeiro número. Agora voce le o proximo numero e compara se é maior.
leia (n)
se (n > m) entao // novo numero é maior que o anterior, entao modifique m
m <- n
fimse
http://forum.imasters.com.br/public/style_emoticons/default/natal_wink.gif