Foro de elhacker.net

Programación => Java => Mensaje iniciado por: RG4L en 3 Diciembre 2016, 05:37 am



Título: Problema con interfaz metodos de ordenamiento y arreglo (NetBeans)
Publicado por: RG4L en 3 Diciembre 2016, 05:37 am
Hola, soy nuevo en el foro, espero poder contribuir con lo poco que se y espero puedan aclarar las dudas que llegue a tener, o auxiliarme para aprender más. Muchas gracias

La verdad estoy aprendiendo a programar en java, así que espero no se molesten.

Estoy realizando una interfaz gráfica, que me permita ordenar una cantidad de números al azar mediante 3 métodos diferentes, los botones capturaran el número de elementos aleatorios, introduje el método dentro de ese mismo botón, para que ordene todos los números.

en la primera imagen todo corre bien cuando me da los numeros aleatorios.


pero me marca un error, no se que sea, pues no se mucho sobre java (prácticamente no se nada, pero quiero aprender),

les dejo el código del boton, al principio funcionaba bien, pero después simplemente ya no corre, el error me marca la línea que dejo en la segunda imagen.

(http://i66.tinypic.com/2nr3nsz.png)
(http://i67.tinypic.com/35nd8k5.png)


Código:
private void BurbujaActionPerformed(java.awt.event.ActionEvent evt) {

        int x = Integer.parseInt(JOptionPane.showInputDialog(null, "introduzca un número de elementos a ordenar", "Quicksort", JOptionPane.INFORMATION_MESSAGE));

        System.out.println("El valor ingresado es: " + x);
 
         int[] arreglo= new int[x];

       for (int i = 0; i < x; i++)
               {
                   arreglo[i]= (int) (Math.random()*100+1);
               }


      for (int i = 0; i < x; i++)
               {

                   System.out.print("|"+arreglo[i]);

               }


       System.out.println("");
       System.out.println("los numeros arreglados son: ");
 

       //antes de esto todo esta bien

        int aux;
        boolean cambios = false;
 
        while(true)
        {

            cambios = false;

            for(int i = 1; i < arreglo[i];i++)   //aqui es el primer error

            {

                if(arreglo[i]<arreglo[i-1])
                {
                    aux = arreglo[i];

                    arreglo[i] = arreglo[i-1];

                    arreglo[i-1] = aux;

                    cambios = true;

                }
            }

 

           if(cambios==false)
           {

               break;

           }

        }

            for(int i = 0; i < arreglo[i]; i++)
        {
            System.out.print("|" + arreglo[i]);

        }

            System.out.println();

    }

espero me puedan ayudar, y espero no infringir alguna norma de la comunidad

MOD:Imagenes adaptadas a lo permitido.


Título: Re: Problema con interfaz metodos de ordenamiento y arreglo (NetBeans)
Publicado por: 0xFer en 3 Diciembre 2016, 06:04 am
Bienvenido a la comunidad  ;D

Bueno tu error es porque usas arreglo en la parte condicional del for donde te marca el error, debería ser x quedando así:

Código
  1. for(int i = 1; i < x;i++)   //aqui es el primer error

Saludos y Bienvenido  ;-)
 


Título: Re: Problema con interfaz metodos de ordenamiento y arreglo (NetBeans)
Publicado por: RG4L en 3 Diciembre 2016, 19:22 pm
Bienvenido a la comunidad  ;D

Bueno tu error es porque usas arreglo en la parte condicional del for donde te marca el error, debería ser x quedando así:

Código
  1. for(int i = 1; i < x;i++)   //aqui es el primer error

Saludos y Bienvenido  ;-)
 



muchisimas, muchisimas gracias por tu ayuda, problema resuelto, me esta costando un poco java :) creo que aquí estaré muy cómodo. Saludos  :D