Ordem crescente e decrescente
Faça um programa que receba obrigatoriamente 3 números obrigatoriamente em ordem crescente e um quarto número que não siga esta regra. Mostre, em seguida, os 4 números em ordem [b]decrescente[/b].
[b]
[i]Como vocês podem ver meu código está correto até a parte do quarto número , não estou conseguindo alinhar ele para a ordem decrescente correta.[/i][/b]
package Lista_P2;
import javax.swing.JOptionPane;
public class exercicio11 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int numero1;
int numero2;
int numero3;
int numero4;
int auxiliar;
numero1 = Integer.parseInt(JOptionPane.showInputDialog("Digite o numero 1"));
numero2 = Integer.parseInt(JOptionPane.showInputDialog("Digite o numero 2"));
numero3 = Integer.parseInt(JOptionPane.showInputDialog("Digite o numero 3"));
numero4 = Integer.parseInt(JOptionPane.showInputDialog("Digite o numero 4"));
if (numero1 > numero2) {
auxiliar = numero1;
numero1 = numero2;
numero2 = auxiliar;
}
if (numero2 > numero3) {
auxiliar = numero2;
numero2 = numero3;
numero3 = auxiliar;
}
if (numero1 > numero2) {
auxiliar = numero1;
numero1 = numero2;
numero2 = auxiliar;
}
JOptionPane.showMessageDialog(null, "Ordem crescente: " + numero1 + " " + numero2 + " " + numero3);
JOptionPane.showMessageDialog(null, "Ordem decescente: " +numero4 +" "+ numero3 + " " + numero2 + " " + numero1);
}
}
Ismael Silva
Curtidas 0
Melhor post
Merilyn Ribeiro
08/07/2016
import javax.swing.JOptionPane ;
public class Exercicio_3 {
public static void main( String[ ] args ) {
int[ ] numeros = new int[ ] {
Integer.parseInt( JOptionPane.showInputDialog( "Digite o primeiro número" ) ),
Integer.parseInt( JOptionPane.showInputDialog( "Digite o segundo número" ) ),
Integer.parseInt( JOptionPane.showInputDialog( "Digite o terceiro número" ) ),
} ;
JOptionPane.showMessageDialog( null, "Digitados:\n" + numeros[ 0 ] + "\n" + numeros[ 1 ] + "\n" + numeros[ 2 ] ) ;
ordenacaoCrescente( numeros ) ;
JOptionPane.showMessageDialog( null, "Ordenação crescente:\n" + numeros[ 0 ] + "\n" + numeros[ 1 ] + "\n" + numeros[ 2 ] ) ;
ordenacaoDecrescente( numeros ) ;
JOptionPane.showMessageDialog( null, "Ordenação decrescente:\n" + numeros[ 0 ] + "\n" + numeros[ 1 ] + "\n" + numeros[ 2 ] ) ;
}
static void ordenacaoCrescente( int[ ] numeros ) {
int quantidade = numeros.length ;
int primeiro = 0 ;
int segundo = 1 ;
while ( segundo < quantidade ) {
// na ordenação crescente troca os valores quando o primeiro é maior que o segundo
if ( numeros[ primeiro ] > numeros[ segundo ] ) {
int troca = numeros[ primeiro ] ;
numeros[ primeiro ] = numeros[ segundo ] ;
numeros[ segundo ] = troca ;
primeiro = 0 ;
segundo = 1 ;
} else {
primeiro++ ;
segundo++ ;
}
}
}
static void ordenacaoDecrescente( int[ ] numeros ) {
int quantidade = numeros.length ;
int primeiro = 0 ;
int segundo = 1 ;
while ( segundo < quantidade ) {
// na ordenação decrescente troca os valores quando o primeiro é menor que o segundo
if ( numeros[ primeiro ] < numeros[ segundo ] ) {
int troca = numeros[ primeiro ] ;
numeros[ primeiro ] = numeros[ segundo ] ;
numeros[ segundo ] = troca ;
primeiro = 0 ;
segundo = 1 ;
} else {
primeiro++ ;
segundo++ ;
}
}
}
}
GOSTEI 1
Mais Respostas
Davi Costa
28/08/2012
Vc vai pegar seus números transformar em uma lista e implementa um bubble sorting decrescente:
Veja também esse link:
http://www.roseindia.net/java/beginners/arrayexamples/bubblesort.shtml
abcs
public class bubbleSort {
public static void main(String a[]) {
int i;
int array[] = { 12, 9, 4, 99, 120, 1, 3, 10 };
System.out.println("Values Before the sort:\n");
for (i = 0; i < array.length; i++)
System.out.print(array[i] + " ");
System.out.println();
bubble_srt(array, array.length);
System.out.print("Values after the sort:\n");
for (i = 0; i < array.length; i++)
System.out.print(array[i] + " ");
System.out.println();
System.out.println("PAUSE");
}
public static void bubble_srt(int a[], int n) {
int i, j, t = 0;
for (i = 0; i < n; i++) {
for (j = 1; j < (n - i); j++) {
if (a[j - 1] < a[j]) {
t = a[j - 1];
a[j - 1] = a[j];
a[j] = t;
}
}
}
}
}
GOSTEI 0
Ismael Silva
28/08/2012
[quote="davi.costa"]Vc vai pegar seus números transformar em uma lista e implementa um bubble sorting decrescente:
Veja também esse link:
http://www.roseindia.net/java/beginners/arrayexamples/bubblesort.shtml
abcs
VAleu :!:
vou dar uma estudada agora nesse código , pq minha turma ainda não chegou a ver esse comando bubble sort.
public class bubbleSort {
public static void main(String a[]) {
int i;
int array[] = { 12, 9, 4, 99, 120, 1, 3, 10 };
System.out.println("Values Before the sort:\n");
for (i = 0; i < array.length; i++)
System.out.print(array[i] + " ");
System.out.println();
bubble_srt(array, array.length);
System.out.print("Values after the sort:\n");
for (i = 0; i < array.length; i++)
System.out.print(array[i] + " ");
System.out.println();
System.out.println("PAUSE");
}
public static void bubble_srt(int a[], int n) {
int i, j, t = 0;
for (i = 0; i < n; i++) {
for (j = 1; j < (n - i); j++) {
if (a[j - 1] < a[j]) {
t = a[j - 1];
a[j - 1] = a[j];
a[j] = t;
}
}
}
}
}
GOSTEI 0
Davi Costa
28/08/2012
Beleza companheiro, caso veja os fontes do link, observa que lá é crescente, mas os fontes que te passei já está decrescente.
O que precisar só avisar.
abcs
GOSTEI 0
Ismael Silva
28/08/2012
Davi , aproveitando o tópico para não criar outro , você ou outro membro saberia me responder essa (sei que é fácil , mas esqueci como faz xz') :
dividir um ano por 400 para saber se é bissexto ou não, para que não seja bissexto é necessário que ele seja divisível por 4 e não divisível por 100 ...
e fazer um triângulo , é necessário pedir 3 seguimentos de reta(maior que zero) é necessário que cada segmento seja menor que a soma dos dois outros segmentos.
Desculpa se pergunto de mais , é que não estou saindo do canto aqui e tenho que entregar essa listagem hoje , foram 19 questões , está faltando essas daí . Obg (:!:)
GOSTEI 0
Davi Costa
28/08/2012
só para ajudar:
abcs
if(ano %4==0){
//...
}
GOSTEI 0
Davi Costa
28/08/2012
Olá bom dia Davi, gostei muito de sua resposta, o código feito por vc é muito bem estruturado e de fácil entendimento, contudo gostaria que se possível vc fizesse este código usando a classe Scanner para receber os valores do array, ao invés de passar estes valores no código. Tenho que resolver um problema deste jeito e não tou conseguindo.
Desde já muito obrigado.
GOSTEI 0
Marcelo Senaga
28/08/2012
[quote="JBLiraJr"]Olá bom dia Davi, gostei muito de sua resposta, o código feito por vc é muito bem estruturado e de fácil entendimento, contudo gostaria que se possível vc fizesse este código usando a classe Scanner para receber os valores do array, ao invés de passar estes valores no código. Tenho que resolver um problema deste jeito e não tou conseguindo.
Desde já muito obrigado.
É melhor você tentar por si próprio desenvolver o programa:
http://javafree.uol.com.br/topic-859742-duvida-sobre-Scanner.html
GOSTEI 0
Bruno Silva
28/08/2012
Codigo no java.... Está funcionando ;)
Decrescente!!
import javax.swing.JOptionPane;
public class Exercicio_3 {
public static void main ( String []args) {
String numero1 = JOptionPane.showInputDialog("Digite o primeiro número");
String numero2 = JOptionPane.showInputDialog("Digite o segundo número");
String numero3 = JOptionPane.showInputDialog("Digite o terceiro número");
int n1 = Integer.parseInt(numero1);
int n2 = Integer.parseInt(numero2);
int n3 = Integer.parseInt(numero3);
int aux;
if(n1> n2 ){
aux=n1; n1=n2; n2=aux;
}
if(n2>n3){
aux=n2; n2=n3; n3=aux;
}
if(n1> n2){
aux=n1; n1=n2; n2=aux;
}
JOptionPane.showMessageDialog(null, n3 + "\n" + n2 + "\n" + n1);
}
}
GOSTEI 0
Merilyn Ribeiro
28/08/2012
Olá gostaria que alguem me explicasse a parte da comparação desse programa pois eu não entendi :(
[quote="Brunrb96"]Codigo no java.... Está funcionando ;)
Decrescente!!
import javax.swing.JOptionPane;
public class Exercicio_3 {
public static void main ( String []args) {
String numero1 = JOptionPane.showInputDialog("Digite o primeiro número");
String numero2 = JOptionPane.showInputDialog("Digite o segundo número");
String numero3 = JOptionPane.showInputDialog("Digite o terceiro número");
int n1 = Integer.parseInt(numero1);
int n2 = Integer.parseInt(numero2);
int n3 = Integer.parseInt(numero3);
int aux;
if(n1> n2 ){
aux=n1; n1=n2; n2=aux;
}
if(n2>n3){
aux=n2; n2=n3; n3=aux;
}
if(n1> n2){
aux=n1; n1=n2; n2=aux;
}
JOptionPane.showMessageDialog(null, n3 + "\n" + n2 + "\n" + n1);
}
}
GOSTEI 0
Merilyn Ribeiro
28/08/2012
if ( n1 > n2 ) { // se n1 for maior que n2
aux = n1; // aux recebe o valor de n1
n1 = n2; // n1 recebe o valor de n2
n2 = aux; // n2 recebe o valor de aux
}
if ( n2 > n3 ) { // se n1 for maior que n2
aux = n2; // aux recebe o valor de n2
n2 = n3; // n2 recebe o valor de n3
n3 = aux; // n3 recebe o valor de aux
}
if ( n1 > n2 ) { // se n1 for maior que n2
aux = n1; // aux recebe o valor de n1
n1 = n2; // n1 recebe o valor de n2
n2 = aux; // n2 recebe o valor de aux
}
GOSTEI 0
Merilyn Ribeiro
28/08/2012
Mas e se for por exemplo os números 3,1,2. Ele começa a a fazer as comparações só que vai chegar num momento que a ordem vai estar 1,2,3 e as comparações vão ser sempre falsas, isto é, o n1 não é maior que o n2 e nem o n2 maior que o n3. Como ele faz? compara o n3 com o n1??
GOSTEI 0
Merilyn Ribeiro
28/08/2012
Faz um teste de mesa que você vai entender
"vai chegar num momento que a ordem vai estar 1,2,3 e as comparações vão ser sempre falsas"
Perfeito, nesta situação, os numeros estarão ordenados como deveriam estar.
"O n1 não é maior que o n2 e nem o n2 maior que o n3. Como ele faz? compara o n3 com o n1?"
Se o n1 é menor que o n2 e o n2 é menor que o n3 então o n1 será menor que o n3, não havendo necessidade de comparar n3 com n1.
GOSTEI 0
Merilyn Ribeiro
28/08/2012
Sim, eu já fiz o teste de mesa. Exatamente por isso não sei o q ele faz quando esta 1,2,3 para ficar de ordem decrescente.
GOSTEI 0