problemilla con matrices

Iniciado por Aeros, 9 Julio 2010, 23:56 PM

0 Miembros y 2 Visitantes están viendo este tema.

Aeros

tengo un problemilla con esta clase que quiero usar el metodo mostrar para q me enseñe la matriz, como puedo solucionarlo (solo quiero palabras que me ayuden  NO CODIGO).

Código (java) [Seleccionar]




package matrices;


public class Main {

    public static void main(String[] args) {
        Matriz v= new Matriz(); // LE TENGO QUE PASAR ALGO COMO PARAMETRO??? LE PODRIA PASAR LA MATRIZ??
        v.MostrarMatriz();
    }

}



Código (java) [Seleccionar]
package matrices;

class Matriz
{

    private int tamanno ;
    private int[][] datos ;
    public Matriz ()
        {
            int[][]datos = {{9,7,6},{3,6,8},{6,7,8}};
            this.tamanno = tamanno;


            }
public void MostrarMatriz(){
        for(int i=0;i<tamanno;i++){
            for(int j=0;j<tamanno;j++)
                System.out.print(datos[i][j]);
        }
    }

    }

Leyer

#1
Código (java) [Seleccionar]
this.tamanno = tamanno; es 0

prueba datos.length

un saludo.

Aeros

pero eso no me soluciona el problema :P

tengo una duda le puedo pasar como parametro una matriz a la clase ?? sin necesidad hacerlo en el constructor??

Código (java) [Seleccionar]
Matriz v= new Matriz(); // LE TENGO QUE PASAR ALGO COMO PARAMETRO??? LE PODRIA PASAR LA MATRIZ??

Leyer

#3
No me fije que estas creando un array nuevo en el constructor por eso no funciona, tendrias que asignarlo

Código (java) [Seleccionar]
int[][]datos = {{9,7,6},{3,6,8},{6,7,8}};
this.datos=datos;


y claro que le podrias pasar una matriz

Código (java) [Seleccionar]
public Matriz (int matriz[][]){}

Aeros

Grosoo gracias

codigo final

Código (java) [Seleccionar]

package matrices;

class Matriz
{
    private int tamanno ;
    private int[][] datos ;
    public Matriz (int datos[][])
        {
            this.datos = datos ;
            this.tamanno = datos.length;
    }
public void MostrarMatriz(){
        for(int i=0;i<tamanno+1;i++){
            for(int j=0;j<tamanno+1;j++){
                System.out.print(datos[i][j]);
        }
        System.out.println("");
}

    }
}


Código (java) [Seleccionar]



package matrices;


public class Main {

    public static void main(String[] args) {
        int pepe[][]={{5,6,7},{5,8,9}};
        Matriz v= new Matriz(pepe);
        v.MostrarMatriz();
    }

}

nicolas_cof

#5
Aeros, yo haria las siguientes modificaciones a tu codigo...

En Java una matriz bidimensional es un vector de vectores fila, o más en concreto un vector de referencias a los vectores fila. Con este esquema, cada fila podría tener un número de elementos diferente. Sabiendo esto hacer lo siguiente this.tamanio = datos.length; te daria error en el caso de variar como en el ejemplo planteado int pepe[][] = { {5,6,7}, {5,8,9,4} };

Código (java) [Seleccionar]
package matrices;

public class Main
{
public static void main( String[] args )
{
int pepe[][] = { { 5, 6, 7 }, { 5, 8, 9, 4 } };
Matriz v = new Matriz( pepe );
v.MostrarMatriz();
System.exit( 0 );
}
}


Código (java) [Seleccionar]
package matrices;

public class Matriz
{
private int tamanio;
private int[][] datos;

public Matriz( int datos[][] )
{
this.datos = datos;
this.tamanio = datos.length;
}

public void MostrarMatriz()
{
for ( int i = 0; i < tamanio; ++i )
{
for ( int j = 0; j < datos[i].length; ++j )
{
System.out.print( datos[i][j] );
}
System.out.println( "" );
}

}
}


Salu10.

Debci

Haber... por favor añadan las quotes de codigo java de GeShi... no quiero tener que borrar posts...  :¬¬

Saludos

Aeros

Cita de: nicolas_cof en 11 Julio 2010, 11:29 AM
Aeros, yo haria las siguientes modificaciones a tu codigo...

En Java una matriz bidimensional es un vector de vectores fila, o más en concreto un vector de referencias a los vectores fila. Con este esquema, cada fila podría tener un número de elementos diferente. Sabiendo esto hacer lo siguiente this.tamanio = datos.length; te daria error en el caso de variar como en el ejemplo planteado int pepe[][] = { {5,6,7}, {5,8,9,4} };

Código (java) [Seleccionar]
package matrices;

public class Main
{
public static void main( String[] args )
{
int pepe[][] = { { 5, 6, 7 }, { 5, 8, 9, 4 } };
Matriz v = new Matriz( pepe );
v.MostrarMatriz();
System.exit( 0 );
}
}


Código (java) [Seleccionar]
package matrices;

public class Matriz
{
private int tamanio;
private int[][] datos;

public Matriz( int datos[][] )
{
this.datos = datos;
this.tamanio = datos.length;
}

public void MostrarMatriz()
{
for ( int i = 0; i < tamanio; ++i )
{
for ( int j = 0; j < datos[i].length; ++j )
{
System.out.print( datos[i][j] );
}
System.out.println( "" );
}

}
}


Salu10.

si es verdad me apresure en postear :D

gracias nuevamente !