Foro de elhacker.net

Programación => Ejercicios => Mensaje iniciado por: DomInYK en 24 Junio 2011, 04:09 am



Título: ayudenme a terminar este programa en java
Publicado por: DomInYK en 24 Junio 2011, 04:09 am
tenngo  q ordenar esta matriz en forma ascendente y no me sale y tambien si me pueden ayudar a en contrar los numero que se repiten y cuantas veces jeje
import javax.swing.JOptionPane;
public class Matriz21{
public static void main(String efra[]){
String salida,salida2;
salida="  MATRIZ ";
salida2="";
int matriz[][]=new int [4][3];
int mayor, menor,n;
mayor=0;
menor=0;
int posXMayor, posYMayor, posXMenor, posYMenor;
posXMayor=0;
posYMayor=0;
posXMenor=0;
posYMenor=0;

for(int i=0;i<4;i++)
{
   salida+="\n";
for(int j=0;j<3;j++)
{   
n=Integer.parseInt(JOptionPane.showInputDialog("INGRESA NUMERO"+ i, j));
matriz[j]=n;
salida+=matriz[j]+"  ";   
}
}

for(int i=0;i<4;i++)
{
for(int j=0;j<3;j++)
{
   

if(matriz[j] > mayor)
{
posXMayor = i;
posYMayor = j;
mayor = matriz[j];
}

if(matriz[j] < menor||)
{
posXMenor = i;
posYMenor = j;
menor = matriz[j];
}   
}
}
salida2+="NUMERO MENOR="+menor+"\nPOSICION="+posXMenor+","+ posYMenor+"\nNUMERO MAYOR="+mayor+"\nPOSICION="+posXMayor+","+ posYMayor;
JOptionPane.showMessageDialog(null,salida+"\n"+salida2,null,JOptionPane.PLAIN_MESSAGE);
}
}


Título: Re: ayudenme a terminar este programa en java
Publicado por: Valkyr en 12 Julio 2011, 15:27 pm
Por internet hay muchísimos métodos de ordenación, e incluso hay páginas que te los muestran ya implementados en algunos lenguajes, por ejemplo en Wikipedia está:

Código
  1. public static int[] OrdenarBurbuja(int[] n){
  2.        int temp;
  3.        int t = n.length;
  4.        for (int i = 1; i < t; i++) {
  5.            for (int k = t- 1; k >= i; k--) {
  6.                if(n[k] < n[k-1]){
  7.                    temp = n[k];
  8.                    n[k] = n[k-1];
  9.                    n[k-1]=  temp;
  10.                }//fin if
  11.            }// fin 2 for
  12.        }//fin 1 for
  13.        return n;
  14.    }

Puesto que el método lo que ordena es un array puedes hacer dos cosas, o lo modificas para que ordene una matríz (la modificación es mínima) o en vez de usar una matriz usas un array. Para saber los números que se repiten puedes usar un HashMap<Integer, Integer>. En este post expliqué algo parecido pero con palabras: http://foro.elhacker.net/java/como_elaborar_este_programa_en_java_no_puedooiexcliexcl-t330838.0.html

Solo tendrías que modificarlo un poco, y a la hora de recorrerlo si el número solo ha aparecido una vez no lo muestras, si ha aparecido más de 1 vez entonces es porque se repite.

Saludos.