Posts
Explique o problema em si. � pra identificar o maior n�mero em um vetor? Entre dois n�meros? Ou seja, qual � o problema?
Ler 3 ou mais numeros e informar quem � o maior...depois tento desenrolar o resto. obrigada.
Nesse caso, sendo a quantidade de n�meros fixa e baixa, compensa mais utilizar alguns IFs (n�o ser�o muitos). Se forem mais n�meros, principalmente se for uma quantidade indefinida, a� seria mais interessante usar um array.
Segue o c�digo que captura o maior n�mero digitado: import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.List; public class MaiorNumero { /** * @param args * @throws IOException * @throws NumberFormatException */ public static void main(String[] args) throws NumberFormatException, IOException { BufferedReader rd = new BufferedReader(new InputStreamReader(System.in)); List<Integer> numeros = new ArrayList<Integer>(); int n = -1; do{ System.out.print("Digite o n�mero (-1 para mostrar o maior n�mero): "); n = Integer.parseInt(rd.readLine()); if (n == -1){ System.out.println("Maior numero �: "+retornaMaiorValor(numeros)); }else{ numeros.add(n); } }while(n != -1); } public static int retornaMaiorValor(List<Integer> numeros){ int aux = 0; for (int i = 0; i < numeros.size(); i ++){ if (numeros.get(i) > aux){ aux = numeros.get(i); } } return aux; } }
Funcionou legal...apartir dai a logica � a mesma para mostrar tambem o menor numero digitado?
Sim, o �nico local que voc� vai mudar � aqui: if (numeros.get(i) < aux){ aux = numeros.get(i); } Colocando o sinal de "<" (menor).
pronto, � s� renomear a variavel? encontrei um exemplo, me diz o que acha dele: if (numero1 > numero2 && numero1 > numero3 ||numero1 > numero3 && numero1 > numero2 ){ System.out.print("o primeiro numero: " + numero1 +" � o numero maior dos 3\n"); } se fosse utilizar seria com varios if�s.
pronto, � s� renomear a variavel? encontrei um exemplo, me diz o que acha dele: if (numero1 > numero2 && numero1 > numero3 ||numero1 > numero3 && numero1 > numero2 ){ System.out.print("o primeiro numero: " + numero1 +" � o numero maior dos 3\n"); } se fosse utilizar seria com varios if�s. Este � exemplo � limitado. Se voc� tiver 100 valores ? Vai fazer 100 ifs ?o que ti passei serve para 2 valores ou 1 milh�o de valores.
Pensando bem � isso mesmo, mas se for um exemplo simples, com poucos numeros. a melhor op��o � o if que citou?
Continuo dizendo que n�o. Sempre trabalhe em solu��es gen�ricas, a forma que voc� apresentou n�o � otimizada de tiver mais que 5 valores, se for apenas 2 ou 3 ent�o voc� pode usar sua solu��o.
As vezes me confundo com essa forma otimizada, sempre o codigo mais "curto" � melhor, tem como saber se a otimiza��o � valida atraves do debbug?
As vezes me confundo com essa forma otimizada, sempre o codigo mais "curto" � melhor, tem como saber se a otimiza��o � valida atraves do debbug? "Sempre o c�digo mais curto � melhor". Essa afirma��o n�o confere. C�digo curto n�o � sin�nimo de otimiza��o e nunca ser�, prova disso � que algoritmos de ordena��es mais complexos como o HEAP SORT s�o muito melhores que um INSERTION SORT que � bem mais simples e "curto". Voc� sabe se seu algoritmo � otimizado (melhor que um outro ou executa em tempo h�bil) atrav�s do c�lculo de complexidade do algoritmo, estude o pior caso, melhor caso e caso m�dio do seu algoritmo e categorize o desempenho como logaritm�ntico, exponencial e etc.Estude isso: http://pt.wikipedia.org/wiki/Complexidade_computacional
Na "m�o" mesmo � que sabemos se est� bom? legal Ronaldo, pensei que pudesse ser visualizado com ajuda de algo. obrigada pela dica.
Na "m�o" mesmo � que sabemos se est� bom? legal Ronaldo, pensei que pudesse ser visualizado com ajuda de algo. obrigada pela dica. UP!!! perguntinha...
Na "m�o" mesmo � que sabemos se est� bom? legal Ronaldo, pensei que pudesse ser visualizado com ajuda de algo. obrigada pela dica. Voc� tem que fazer testes de performance, medindo o tempo de execu��o dos algoritmos. Levando em considera��o que existem varia��es: Melhor Caso, Pior Caso e Caso M�dio.
Nesse tutorial de nossa apostila de Java, vamos resolver uma questão proposta em nossa lista de exercícios sobre o laço while: http://www.javaprogressivo.net/2012/08/questoes-usando-o-laco-while-java.html Essa questão gerou dúvidas, em mais de um de nossos leitores, então vamos resolver e comentar ela, passo-a-passo. Durante toda sua carreira como programador Java, ou simplesmente amante de programação, vai ser necessário você utilizar algoritmos (idéias) para descobrir qual o maior ou menor número de uma lista, portanto é muito importante que você tenha tentado resolver este exercício, e que realmente aprenda sua solução. O enunciando do exercício que vamos resolver é esse:
5. Achando o maior número mostre qual destes números é o maior.
Vamos usar uma variável chamada 'maior', que vai sempre armazenar o maior número fornecido pelo usuário. |