Exercício

38 respostas
rodrigoerocha

Como fazer ?

Um algoritmo que leia três números diferentes e os mostre em ordem decrescente.

38 Respostas

fraulein

você pelo menos tentou fazer sozinho??? :shock:

wbjava

Você tentou fazer este exercício? Ou nem sabe por onde começar?

:slight_smile:

Zeed01

Boa noite colegas !

rodrigoerocha

Ola pessoal.

Estou começando a pesquisar sobre Java agora… E estou querendo vereficar a forma mais rápida e simples de resolver problemas. Fiz o algoritimo, porém o arquivo ficou com o codigo enorme.

Abs, :lol:

el_loko

Posta o código pra gente tentar te ajudar…

D

codigo enorme?Amigo,este exercicio é um dos “hello world” de quem está começando a programar em qualquer linguagem,e ,honestamente,se seu codigo saiu enoooorme,é por q algo de errado deve ter…poste-o pra nós,e diremos ajustes a serem feitos.Abraço.

Dica:Mesmo quando vc tiver exercicio,n poste nunca com este titulo,pois muitos ignorarão( e eu apoio com esta atitute),se tem duvida,escreva como se fosse um sistema q está desenvolvendo,ou cmo se estivesse iniciando o estudo,faça tudo,menos pedi pra q resolvam teu exercicio e,sobre tudo POSTE TEUS CODIGOS ,ok?:slight_smile:

M

cara posta o algoritmo então pra gente ver como está o processo.

T

Não se preocupe se o código ficou enorme.

Eu sei que se eu tivesse que fazer o mesmo exercício ele também sairia com um monte de “ifs” encadeados, e ele acabaria ficando enorme mesmo.

Se estiver funcionando, então não deve ter problemas.

Você testou direitinho?

bbmany

rodrigoerocha:
Como fazer ?

Um algoritmo que leia três números diferentes e os mostre em ordem decrescente.


Rodrigo
se você quer o programa pronto não encontrá aqui;
se quiser a solução sem tentar, sem mostrar o que você já fez e onde está sua dúvida também não a encontrará.

Poste seu código identificando onde está a dúvida e/ou o erro.

A idéia do GUJ é ajudar, sempre…

rodrigoerocha

Ta ai… e obrigado pelas dicas. Abaixo consegui identificar o primeiro cartão

import java.util.Scanner;
public class Numeros {
	public static void main(String[] args) {
		float n1, n2, n3, maior, medio, menor;
		Scanner leitura = new Scanner(System.in);
		System.out.println("Digite o primeiro número");
		n1 = leitura.nextFloat();
		System.out.println("Digite o segundo número");
		n2 = leitura.nextFloat();
		System.out.println("Digite o terceiro número");
		n3 = leitura.nextFloat();
		if (n1 > n2 && n1 > n3){
			maior = n1;
		} else {
			if (n1 < n2 && n1 < n3){
				menor = n1;
				} else {
					if (n1 < n2 && n1 > n3){
					medio = n1;
					} else {
						if (n1 > n2 && n1 < n3){
						medio = n2;
						}
				}
		}
	}
}
A

como uso o for pra pegar os 3 valores direto?e com o JOptionPane
pra poder evitar isso:

import javax.swing.JOptionPane;
    public class Num{
     public static void main(String  []args){
         
         String input1,input2,input3;
         int  s1,s2,s3;       input1 = JOptionPane.showInputDialog(null,
         "Digitar numero: ","",JOptionPane.PLAIN_MESSAGE);
           s1 = Integer.parseInt(input1); 
           
           input2 = JOptionPane.showInputDialog(null,
         "Digitar numero: ","",JOptionPane.PLAIN_MESSAGE);
           s2 = Integer.parseInt(input1); 
           
           input3 = JOptionPane.showInputDialog(null,
         "Digitar numero: ","",JOptionPane.PLAIN_MESSAGE);
           s3 = Integer.parseInt(input1);

vlews

bbmany

rodrigoerocha:
Ta ai… e obrigado pelas dicas. Abaixo consegui identificar o primeiro cartão

import java.util.Scanner; public class Numeros { public static void main(String[] args) { float n1, n2, n3, maior, medio, menor; Scanner leitura = new Scanner(System.in); System.out.println("Digite o primeiro número"); n1 = leitura.nextFloat(); System.out.println("Digite o segundo número"); n2 = leitura.nextFloat(); System.out.println("Digite o terceiro número"); n3 = leitura.nextFloat(); if (n1 > n2 && n1 > n3){ maior = n1; } else { if (n1 < n2 && n1 < n3){ menor = n1; } else { if (n1 < n2 && n1 > n3){ medio = n1; } else { if (n1 > n2 && n1 < n3){ medio = n2; } } } } }

Qual a sua dúvida?

rodrigoerocha

Fazer o restante… hahahahaha

O problema é mais no algoritimo que no Java.

rodrigoerocha

Problema resolvido… quebrei a cabeça mas consegui.

Valew

import java.util.Scanner;
public class Decrescente {
	static float n1, n2, n3;
	public static void main(String[] args)
	  throws Exception {
	   Scanner leitura = new Scanner(System.in);
	   System.out.println("DESCRESCENTE");
	   System.out.println("INSIRA PRIMEIRO NUMERO");
	   n1 = leitura.nextFloat();
	   System.out.println("INSIRA SEGUNDO NUMERO");
	   n2 = leitura.nextFloat();
	   System.out.println("INSIRA TERCEIRO NUMERO");
	   n3 = leitura.nextFloat();
	   System.out.println("RESULTADO");
	   if ((n1 > n2) && (n1 > n3) && (n2 > n3) ) {
	      System.out.println(n1);
		  System.out.println(n2);
		  System.out.println(n3);
	   }
	   if ((n2 > n1) && (n2 > n3) && (n3 > n1) ) {
	      System.out.println(n2);
		  System.out.println(n3);
		  System.out.println(n1);
	   }
	   if ((n3 > n1) && (n3 > n2) && (n1 > n2) ) {
	      System.out.println(n3);
		  System.out.println(n1);
		  System.out.println(n2);
	   }
	   if ((n3 > n2) && (n3 > n1) && (n2 > n1) ) {
	      System.out.println(n3);
		  System.out.println(n2);
		  System.out.println(n1);
	   }
	   if ((n2 > n1) && (n2 > n3) && (n1 > n3) ) {
	      System.out.println(n2);
		  System.out.println(n1);
		  System.out.println(n3);
	   }
	   if ((n1 > n3) && (n1 > n2) && (n3 > n2) ) {
	      System.out.println(n1);
		  System.out.println(n3);
		  System.out.println(n2);
	   }
	   System.out.println("FIM");	   
	}
}
bbmany

rodrigoerocha:
Fazer o restante… hahahahaha

O problema é mais no algoritimo que no Java.


No momento não posso executar seu código, então ajudaria se você disse o que não está funcionando.

rodrigoerocha

Ola Brena Monteiro,

Consegui executar o codigo… Muito obrigado.

Abs, :stuck_out_tongue:

bbmany

As ordens.
Espero que aprenda a desfrutar da coloboração do GUJ.

Inté.

colored

Nas Coxa mas ta ai

import java.util.*;
public class Numbers {
	
	    public static void main(String[] args) {   
	        int n1 = 0, n2 = 0, n3 = 0, maior = 0, medio = 0, menor = 0;   
	        Scanner leitura = new Scanner(System.in);   
	        System.out.println("Digite o primeiro número");   
	        n1 = leitura.nextInt();   
	        System.out.println("Digite o segundo número");   
	        n2 = leitura.nextInt();   
	        System.out.println("Digite o terceiro número");   
	        n3 = leitura.nextInt();  
	        
	        
	        if(n1 > n2 && n1 > n3 && n2 < n3){
	        	maior = n1;
	        	medio = n3;
	        	menor = n2;
	        	}
	        else if(n1 > n2 && n1 > n3 && n3 < n2){
	        	maior = n1;
        		medio = n2;
        		menor = n3;
	        }
	        if(n2 > n1 && n2 > n3 && n1 < n3){
	        	maior = n2;
	        	medio = n3;
	        	menor = n1;
	        }
	        else if(n2 > n1 && n2 > n3 && n3 < n1){
	        	maior = n2;
	        	medio = n1;
	        	menor = n3;
	        }
	        if(n3 > n1 && n3 > n2 && n2 < n1){
	        	maior = n3;
	        	medio = n1;
	        	menor = n2;
	        }
	        else if(n3 > n1 && n3 > n2 && n1 < n2){
	        	maior = n3;
	        	medio = n2;
	        	menor = n1;
	        }
	        
	        
	      System.out.println(menor);
	      System.out.println(medio);
	      System.out.println(maior);

	}  
	    
	
}
bbmany

Albernardino:
como uso o for pra pegar os 3 valores direto?e com o JOptionPane
pra poder evitar isso:

import javax.swing.JOptionPane;
    public class Num{
     public static void main(String  []args){
         
         String input1,input2,input3;
         int  s1,s2,s3;       input1 = JOptionPane.showInputDialog(null,
         "Digitar numero: ","",JOptionPane.PLAIN_MESSAGE);
           s1 = Integer.parseInt(input1); 
           
           input2 = JOptionPane.showInputDialog(null,
         "Digitar numero: ","",JOptionPane.PLAIN_MESSAGE);
           s2 = Integer.parseInt(input1); 
           
           input3 = JOptionPane.showInputDialog(null,
         "Digitar numero: ","",JOptionPane.PLAIN_MESSAGE);
           s3 = Integer.parseInt(input1);

vlews


Já tentou fazer com FOR?

A

mas o q vc fez é oq eu fiz…

for(int i=1;i<4;i++){

input1 = JOptionPane.showInputDialog(null,  
     "Digitar numero: ","",JOptionPane.PLAIN_MESSAGE);  
         s1 = Integer.parseInt(input1);  }

algo assim mas tenho q relacionar o bloco com o i …

rissato

tenta assim:

  • pega os números num loop que dá um parseInt na String
  • depois coloca numa List
  • depois um Collections.sort() na lista
  • e um sysout da lista…

:slight_smile:

A

putz
eu so iniciante nun entendi quase nada do q vc quis dizer…

bbmany

Albernardino:
mas o q vc fez é oq eu fiz…

for(int i=1;i<4;i++){

input1 = JOptionPane.showInputDialog(null,  
     "Digitar numero: ","",JOptionPane.PLAIN_MESSAGE);  
         s1 = Integer.parseInt(input1);  }

algo assim mas tenho q relacionar o bloco com o i …

Desculpe estava tentando fazer outra coisa.
Com o for que você postou ele abre a janela três vezes?
Se sim basta inserir um vetor para ir capturando os numero digitados.

for(int i=1;i<4;i++){

input1 = JOptionPane.showInputDialog(null,  
     "Digitar numero: ","",JOptionPane.PLAIN_MESSAGE);  
         s1 = Integer.parseInt(input1); 
         // vet[i] = s1;

}
bbmany

Albernardino

Você sabe utilizar vetor?

A

em java nao
em C eu fazia isso:

for(i=1;i<4;i++){
               printf("Digite lo numero! ");
               scanf("%s",&z[i]);
               }
bbmany

Sem JOptionPane

// Adicione o importe para a classe Scanner;
import java.util.Scanner;

// Acrescente o início do seu código

 Scanner leitura = new Scanner(System.in);

 int vetor[3];

 for(i=0;i<3;i++){
             System.out.println("Digite o número");
             n = leitura.nextInt();
	     vetor[i];
}

Vê se funciona…

R

rissato:
tenta assim:

  • pega os números num loop que dá um parseInt na String
  • depois coloca numa List
  • depois um Collections.sort() na lista
  • e um sysout da lista…

:slight_smile:

e eu ainda prefiro que ele desenvolva o código na lógica do algoritmo, do que fazer isso nesse momento :smiley:
ja que está aprendendo :slight_smile:

bbmany

Modifique a linha 13 por:

vetor[i] = n;

M

hummm…

thegoergen

Com vetor fica mais simples. Pense assim, você tem 3 números, mas e se fossem 300?? Não iria poder fazer com IFs…

O vetor em Java é igual a C. Por enqaunto é isso que precisa saber, se falarem sobre Lists e Collections, ignore, é um pouco mais avançado… :slight_smile:

A
import java.util.scanner;
public class ae{

  public static void main(String []args){
      
             
         Scanner leitura = new Scanner(System.in);
         
         int vetor [3];
         
         for(i=0;i<3;i++){
             System.out.println("Digite o valor");
             n = leitura.nextInt();
             vetor[i]=n;
            }
        }
    }

aparece erro na declaração do vetor :
" ‘]’ expected "

e no caso o “n” que tu pos ae eh soh pra receber o valor digitado neh?o "n " nao deve ser declarado tb ou naum?

A

.

A
corrigindo...
int []vetor = new int [3];//sempre vai ser assim a declaração do vetor o q siginifica exatamente cada termo      dessa linha,como funciona a logica aqui?
         
         for(int i=0;i<3;i++){
             System.out.println("Digite o valor");
             int n = leitura.nextInt();
             vetor[i]=n;
            }
        }
    }
luistiagos

pesquise por quickSort e mergeSort… são os 2 melhores para este tipo de coisa…

J

boa tarde!

Pessoal sera que alguem poderia me ajudar nesse exercíco.

Obtenha do usuário três notas de exame e calcule a média dessas notas. Reproduza a
média dos três exames. Junto com a média, mostre também um :slight_smile: no resultado se a
média for maior ou igual a 60; caso contrário mostre :-(. Use a classe Scanner (ou a
classe BufferedReader) para obter as notas do usuário e System.out para mostrar o
resultado.

Ironlynx

Boa tarde e bem-vinda(o) ao GUJ.
Jureka, normalmente não gostamos que alguém peça para fazer um exercício sem ao menos tentar, mas como vc é novata(o), relevamos.Nesse seu exercício não há nada de mais.É só ler da entrada:

//imports como java.util.*;
e declarações como double nota1,nota2,nota3...
Scanner entrada= new Scanner(System.in);   
        System.out.println("--->Digite a primeira nota:");   
        nota1 = entrada.nextDouble();   
//faça isso 3 vezes

Divida por 3, e use uma condição(um if) para testes(verificar se é maior/menor que o que vc quer). :wink:

bbmany

Albernardino…

Seu código funciona! Parabéns!
Quanto a declaração do vetor

int []vetor = new int [3];

Assim fuinciona perfeitamente, não me recordo de outra maneira de declaração… faz tempo que não utilizo vetores.
Sobre a variavel “n” é melhor que ela seja declarada antes do FOR, porque dentro do FOR ela será criada a cada laço (acho que é assim mesmo…)
Qualquer coisa estamos aqui!
Inté

J

obriga gente, deu uma bela clareada, mais fique claro a eu jámtinha tentado porem n tinha conseguido. beijos beijos

Criado 17 de abril de 2008
Ultima resposta 19 de abr. de 2008
Respostas 38
Participantes 17