Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - kurupi13

#1
una vez me toco hacer lo mismo, obtener los cinco mayores numeros de un arreglo, en realidad todavia tengo el codigo que escribi pero no te voy a dar para que puedas pensar un poco.

Te voy a dar una pista de como hize, es un poco complicado pero funciona usando logica matematica.

Buscar el mayor de todos es facil, simplemente recorriendo el arreglo y preguntando si es mayor, etc. Podes hacer un metodo de eso que vamos a usar mas tarde, podria llamarse por ejemplo calcularMaximo(tu arreglo) y que al final retorne un int.

Ahora si se viene lo complicado, que seria calcular el resto de los numeros mayores sin incluir a los anteriores, yo hize de la siguiente manera:

Podrias usar un poco de logica y darte cuenta que el mayor de todos menos el segundo mayor produciria el menor resto de todos. Esa es la clave del algoritmo, ahora esta en tus manos si queres probar o no, ya te di la solucion, ahora te faltaria ver como restar el segundo con el tercero y asi sucesivamente hasta hallar los cinco mayores y podrias ir cargando los numeros en un nuevo arreglo para imprimir mas tarde.

A mi me llevo 25 lineas con algunas de comentarios, asi que no es muy largo pero un poco dificil de encarar el problema de esta forma, pero efectivo.

#2
Java / Re: Consulta sobre llamada a un metodo
1 Octubre 2013, 21:39 PM
bueno, dentro de este metodo en la clase FiuniPaint se encuentran los botones para crear las diferentes figuras, y tambien es donde deberia estar el boton que borra el ArrayList que las contiene.
La clase es muy extensa como para poner todo el codigo, puse solo lo mas importante, resumido, y es justamente en esta parte en donde estoy teniendo problemas para borrar el ArrayList con clear()

Clase FiuniPaint
Citar
private PanelDeFiguras panel = new PanelDeFiguras();
private JButton limpiar = new JButton("Borrar pantalla");
private JButton rectangulo = new JButton("Rectangulo");

private JPanel figuras() {
        JPanel panel = new JPanel();
        panel.setLayout(new FlowLayout());

        /*
         this.panel.borrarTodo();
         panel.add(limpiar);
         limpiar.addActionListener(new ActionListener(){
           
         @Override
         public void actionPerformed(ActionEvent ae){
         this.panel.borrarTodo();
         }
               
         });*/

       // limpiar.addActionListener(this.panel.borrarTodo());

        // Boton Figura Rectangulo
        panel.add(rectangulo);
        rectangulo.addActionListener(
                new SeleccionadorDeFigura(this, new RectanguloFactory()));

        return panel;
    }

en la clase PanelDeFiguras

Citar//ArrayList para guardar las figuras
private ArrayList<Figura> figuras = new ArrayList<>();

//Metodo que deberia de poder usar para borrar los objetos del ArrayList
public void borrarTodo() {
        this.figuras.clear();
    }

//De esta forma agregamos objetos al ArrayList
@Override
    public void paint(Graphics g) {
        for (int i = 0; i < figuras.size(); i++) {
            figuras.get(i).dibujar(g);
        }
    }


Es basicamente la parte con la que tengo problemas, no puedo poner todo el codigo simplemente porque es muy largo.
Reitero, lo que deberia de poder hacer es llamar al metodo borrarTodo() con un boton desde la clase FiuniPaint, pero eso me da un error void type not allowed here

Gracias al que pueda ayudarme.
#3
Java / Consulta sobre llamada a un metodo
1 Octubre 2013, 07:33 AM
Tengo un problema con un metodo al cual no logro llamar, el compilador me dice void type not allowed here.

Me explico, tengo una clase FiuniPaint extends JFrame implements MouseInputListener que es donde basicamente se dibujan figuras en pantalla como rectangulos, ovalos, etc. en eso no hay problema.

Tambien hay otra clase PanelDeFiguras extends JPanel, esa clase hace que todos los objetos que se dibujan en pantalla se guarden en un ArrayList, en esa clase esta este metodo.

figuras es el ArrayList

Citarpublic void borrarTodo() {
        this.figuras.clear();
    }

Lo que no consigo es poder llamar a este metodo desde la clase FiuniPaint con un JButton

estas son las formas que probe

limpiar es mi boton y panel es mi objeto PanelDeFiguras. Son de instancia las dos

Citar
panel.add(limpiar);
limpiar.addActionListener(this.panel.borrarTodo());

De esta forma obtengo void type not allowed here

-------------------------------

En esta me parece que esta la solucion pero no se puede llamar a la variable panel dentro de actionPerformed. No se por que no encuentra mi variable panel dentro de ese metodo escribiendo por ejemplo this.panel.borrarTodo();

Citar
panel.add(limpiar);
limpiar.addActionListener(new ActionListener(){
           
         @Override
         public void actionPerformed(ActionEvent ae){
         
         }           
         });

Les agradeceria si alguien me puede ayudar. Gracias de antemano.


#4
Java / Re: Ayuda con un programa..
28 Agosto 2013, 18:05 PM
Este tambien es otro metodo que hize, pero me carga en el arreglo lo mismo que en el String original, no divide en partes

public static String[] split(String str, String delim) {
        StringTokenizer t = new StringTokenizer(str, delim);
        int dimension = t.countTokens();
        String[] arreglo = new String[dimension];
        String a;
        int i = 0;
        while (t.hasMoreTokens() == true) {
            a = t.nextToken();
            arreglo = String.valueOf(str);
            System.out.println(arreglo);
            i++;
        }
        return arreglo;
    }
#5
Java / Re: Ayuda con un programa..
28 Agosto 2013, 18:03 PM
Gracias por el primero, este es el metodo que hize para el segundo

public static String[] split(String str,String delim){
        StringTokenizer t = new StringTokenizer(str,delim);
        String [] arreglo = new String[4];
        for(int i=0;i<4;i++){
            arreglo = t.nextToken();
           
        }
        return arreglo;
    }

Compila sin ningun error pero al ejecutar tira un error de NoSuchElementException
#6
Java / Ayuda con un programa..
28 Agosto 2013, 15:42 PM
Hola, necesito que alguien me pueda ayudar con unos programas simples en Java pero que hasta ahora no puedo hacer. Estoy empezando a programar.

1-Escriba el método estático nombredelmetodo(String str) que devuelve "" si str es nulo. También escriba nombredelmetodo(String str, String default) que utiliza el valor del parámetro default si str es nulo.

2- Escriba el método estático nombredelmetodo(String str, String delim) que divide str en varias cadenas según un delimitador (delim). Por ejemplo si str es "Lunes, Martes, Miercoles" y delim es ", " entonces devuelve un arreglo de String que contiene "Lunes", "Martes", y "Miercoles".

Nota: no se puede usar el metodo split()

3- Escriba el método estático nombredelmetodo(String[] str, String delim) que dado un arreglo de cadenas los junta en una sola cadena utilizando un delimitador. Por ejemplo, nombredelmetodo(new String[] { "Lunes", "Martes", "Miercoles" }, ", ") devuelve "Lunes, Martes, Miercoles". Es basicamente la operación inversa del ejercicio anterior.

Gracias al que me puede ayudar.
#7
Java / Android en Blackberry??
2 Mayo 2013, 18:33 PM
Hola, quisiera saber si alguien puede responderme a esta duda que tengo.

Sería posible por ejemplo bajar una apk y descompilar a codigo fuente y de alguna manera volver a compilar ya que ambos ejecutan java, para que pueda correr en Blackberry OS, exepto el 10 que si se puede con el runtime de android, pero para los demás.

Pregunto, se puede hacer eso?, y si es posible, sería complicado hacerlo?