Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Rico Chivela

dada uma sequência de 20 numero achar o maior e o menor.....

Recommended Posts

estou cursando java primeiro ano e tenho algumas dificuldades

 

eu resolvi esse exercicio do seguinte modo

 

import javax.swing.JOptionPane; public class Comparacao {       static  final int r = 0;   static final float aux = 1;    public static void main(String[] args)     {     int  contador;      float numero, maximo, minimo;          maximo = minimo = contador = 0;     maximo = minimo = aux ;          numero = Float.parseFloat(JOptionPane.showInputDialog("Entre com a sequencia dos numeros?"));     if (numero == 0 )     JOptionPane.showMessageDialog(null,"Maximo é : " + (maximo -1) + "" + "Minimo é : "+ (minimo -1 ));     else     {     while ( numero != r )      {      if( numero > maximo )     {     maximo = numero;      }          if( numero  < minimo  )      {     minimo = numero;     }     contador ++;          numero = Float.parseFloat(JOptionPane.showInputDialog("Entre com os Valores?"));      }     JOptionPane.showMessageDialog(null,"Maximo é : " + maximo + "" + "Minimo é : "+ minimo );     }         }}
mas nao consigo obter resultados certos ajudem-me por favor
Editado por dif
utilizar a tag CODE. ela serve para manter seu código edentado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quais as solicitações do exercício?

 

De forma geral:

- remova r, aux e contador

- declare numero, maximo e minimo em linhas separadas e do tipo int

- declare maximo recebendo Integer.MIN_VALUE

- declare minimo recebendo Integer.MAX_VALUE

- Utilize Integer.parseInt ao invés de Float.parseFloat

- mude o texto de pergunta para "Entre com um número (0 para sair)"

- mantenha apenas uma linha de resultado no final do método main, não é necessário usar o if apenas o while

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • O exercício pede para entrar com 20 numero reais e quando entrar com o 0 ou chegar ate 20 numero reais o programa deve parar e mostrar o maior e o menor....

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Ok, então, conforme as dicas acima, não remova contador, mantenha o incremento em 1 a cada iteração do laço while.

    No while verifique se contador é menor que 20 e número informado não é zero.

    Você terá que ajustar a sequência lógica de entradas e comparações para que o último número entrado pelo usuário não seja rejeitado.

    Editado por Cweiler

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • Ok Cara eu fiz do jeito que indicaste mas quando eu coloco zero de inicio ele mostra os valores armazenados em max e min e eu qero que apresenta 0 pk nao houve nenhuma comparação. 

    fico assim :

     

    import javax.swing.JOptionPane; public class ComparacaoII {        public static void main(String[] args) {          int numero, contador;     int maximo;     int minimo;          contador = 0;     maximo = Integer.MIN_VALUE;     minimo = Integer.MAX_VALUE;          numero = Integer.parseInt(JOptionPane.showInputDialog("Entre com os Valores (Digite 0 para sair)"));     while ( numero !=0 )     {     if ( numero  > maximo   )     maximo = numero;     if (  numero <  minimo )     minimo = numero;     contador ++;     numero = Integer.parseInt(JOptionPane.showInputDialog("Entre com os Valores (Digite 0 para sair)"));     }     JOptionPane.showMessageDialog(null, "O maior numero é :\t"+ maximo + "O menor numero é" + minimo);    }}
    Editado por dif

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Uma opção seria verificar se contador ainda é zero, ou, outra opção se for aceitar somente números positivos, utilizar Math.max e Math.min

    if(contador == 0) {	maximo = 0;	minimo = 0;}

    ou 

    JOptionPane.showMessageDialog(null, "O maior numero é : "+ Math.max(maximo, 0) + "\nO menor numero é: " + Math.min(minimo,0));

    ** Faltou mudar o texto para "Entre com um valor".

     

    ** Faltou controlar se o contador chegou a 20.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • O contador é inicializado com 0 se fazer essa comparação a condição sera sempre verdadeira e fica sempre na condição em q se refere.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • Cweiler Cara muito obrigado consegui fazer o programa usando os resultados que esperava estão todos correto da uma olhadela e diz qualquer coisa: 

    import javax.swing.JOptionPane; public class ComparacaoII {        public static void main(String[] args) {          int numero, contador;     int maximo;     int minimo;          contador = 1;          maximo = Integer.MIN_VALUE;     minimo = Integer.MAX_VALUE;         numero = Integer.parseInt(JOptionPane.showInputDialog("Entre com um Valor (Digite 0 para sair)"));     if ( numero < 0 )      JOptionPane.showMessageDialog(null, "Numero negativo entre com valor possitivo");     else if ( numero == 0)     {       JOptionPane.showMessageDialog(null, "Impossivel comparar entre com dois ou mais numeros");     }     else      {       if ( contador == 0)        JOptionPane.showMessageDialog(null, "Numero negativo entre com valor possitivo");       else        {        while (( contador < 20 ) && ( numero != 0 ))     {      if ( numero  > maximo   )      maximo = numero;      if (  numero <  minimo )      minimo = numero;            numero = Integer.parseInt(JOptionPane.showInputDialog("Entre com um Valor (Digite 0 para sair)"));      contador ++;       }            if ( contador == 2 )      {      JOptionPane.showMessageDialog(null, "Comaparaçao nao pode ser feita apenas um valor introduzido deve entrar com mais de um valor");      }      else if ( maximo == minimo )      {      JOptionPane.showMessageDialog(null, "Impossivela comparar Maximo e Minimo com mesmo valor");      }            else      JOptionPane.showMessageDialog(null, "O Maximo é : " + maximo + "\nO Minimo é : " + minimo + " Contador :" + contador);       }           }        }}
    Editado por dif
    Por gentileza, use a tag CODE .

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Caso seu contador atinga 20 você irá perder o último número informado.

     

    Veja uma solução possível, analise e pergunte os pontos que tiver dúvida:

    import javax.swing.JOptionPane;public class ComparacaoII {	public static void main(String[] args) {		int numero;		int contador = 0;		int maximo = Integer.MIN_VALUE;		int minimo = Integer.MAX_VALUE;		while((contador < 20)) {			numero = Integer.parseInt(JOptionPane.showInputDialog("Entre com um Valor (Digite 0 para sair)"));			if(numero < 0) {				JOptionPane.showMessageDialog(null, "Numero negativo, entre com valor positivo");				continue;			} else if(numero == 0) {				break;			}			if(numero > maximo)				maximo = numero;			if(numero < minimo)				minimo = numero;			contador++;		}		switch(contador) {			case 0:				JOptionPane.showMessageDialog(null, "Não foram informados números.");				break;			case 1:				JOptionPane.showMessageDialog(null, String.format("Foi informado apenas o número %s.", maximo));				break;			default:				JOptionPane.showMessageDialog(null, String.format("Foram informados %s números.\nO Maximo é : %s\nO Minimo é : %s", contador, maximo, minimo));				break;		}	}}

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • O String.format para q serve? eu testei mas quando coloco dois numero iguais apresenta maximo e o minimo com os mesmo valores.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Quanto aos números iguais, o código não irá rejeitar tal situação. Se quiser evitar isso você terá que armazenar todos os valores informados e para cada novo número informado verificar se ele já foi informado previamente e rejeitar a entrada.

    Editado por dif
    Por gentileza, se quiser explicar sobre o String.format poste aqui no fórum. O link que postou é de blog pessoal e conta como divulgação. Att, Dif

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Crie uma conta ou entre para comentar

    Você precisar ser um membro para fazer um comentário






    Sobre o Clube do Hardware

    No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

    Direitos autorais

    Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

    ×