Hola!

Registrándote como bakuno podrás publicar, compartir y comunicarte en privado con otros bakuos :D

Regístrame ya!

problema con matriz en java

redcar

Bovino Milenario
Desde
20 Jul 2008
Mensajes
1.088
Que onda corral, quiero ver si hay alguien que me oriente con un problema de matriz, siempreque se llenan, se llena de izquierda a derecha y pasa al siguiente renglon, lo que yo quiero saber es si hay alguna forma de llenarlo de aariba hacia abajo y pasar a la siguiente columna,

y tambien saber como puedo hacer lo siguiente:

1 2 3 4 5
6 7 8 9 0
1 2 3 4 5

pasar esa matriz a la siguiente posicion:

1 6 1
2 7 2
3 8 3
4 9 4
5 0 5

he intentado varias formas entre todas esta esta:

class Matriz{
public static void main(String args[])
{
int H[][] = new int[2][3];
int V[][] = new int[3][2];

for(int i=0;i<H.length;i++)
{
for(int j=0;j<H[0].length;j++)
{
H[j]=Leer.datoInt();


}
}

for(int a=0;a<V.length;a++)
{
for(int b=0;b<V[0].length;b++)
{
V[a]=H[a];

}
}

System.out.println("--------------Resultado--------------");
for(int i=0;i<V.length;i++)
{
for(int j=0;j<V[0].length;j++)
{
System.out.print(+V[j]);
}
System.out.println();
}
}
}


espero que haya alguien que me ayude gracias!
 
a ver, para empezar la matriz deberia de ser de [2][4] y la otra de [4][2]. y pues la logica es asi mira...

en u primera matriz el 1 esta en la posicion 0,0 osea en la fila 0 columna 0, el numero 2 esta en la fila 0 columna 1, el 3 en la fila 0 columna 2, el 4 en la fila 0 columna 3, el 5 en la fila 0 columna 4. entonces es solamente modificar la posicion de filas por columnas.

entonces si el 1 en la fila 0 columna 0 entonces nada mas cambias el valor la fila va a ser 0 la columna 0, el segundo numero 2 esta en la fila 0 y columna 1, entonces pasaria a estar en la fila 1 columna 0, el 3 esta en la fila 0 columna columna 2, pasaria a estar en la fila 2 columna 0... etc. entonces si ves donde haces el ciclo para meter los valores a la matriz V, solamente cambia a,b por b,a y asi tomaria su posicion correcta
 
Jeje, es algo sencillo, sé práctico, te recomiendo mucho hacer pruebas de escritorio.
Algo así, analízalo y adaptalo!
for (int columna = 0; columna<matrizOriginal.length(); columna++){
for (int fila = 0; fila<matrizOriginal.lenth(); fila++){
matrizNueva[c,f] = matrizOriginal[f,c];
}
}
Imprimes la nueva con tus dos 'for' y listo!
Saludos..
PD. Si me confundí haí me dicen porfa... y Checate este manual, pa practicar
http://sisuatf.galeon.com/pro2/matrices.pdf
 
a ver, para empezar la matriz deberia de ser de [2][4] y la otra de [4][2]. y pues la logica es asi mira...

en u primera matriz el 1 esta en la posicion 0,0 osea en la fila 0 columna 0, el numero 2 esta en la fila 0 columna 1, el 3 en la fila 0 columna 2, el 4 en la fila 0 columna 3, el 5 en la fila 0 columna 4. entonces es solamente modificar la posicion de filas por columnas.

entonces si el 1 en la fila 0 columna 0 entonces nada mas cambias el valor la fila va a ser 0 la columna 0, el segundo numero 2 esta en la fila 0 y columna 1, entonces pasaria a estar en la fila 1 columna 0, el 3 esta en la fila 0 columna columna 2, pasaria a estar en la fila 2 columna 0... etc. entonces si ves donde haces el ciclo para meter los valores a la matriz V, solamente cambia a,b por b,a y asi tomaria su posicion correcta


gracias por la respuesta carnal, ps creo que me dics algo que ya sabia, y eso de cambiar la a,b por b,a genera error, ya lo habia intentado

gracias!!:vientos:
 
Jeje, es algo sencillo, sé práctico, te recomiendo mucho hacer pruebas de escritorio.
Algo así, analízalo y adaptalo!
for (int columna = 0; columna<matrizOriginal.length(); columna++){
for (int fila = 0; fila<matrizOriginal.lenth(); fila++){
matrizNueva[c,f] = matrizOriginal[f,c];
}
}
Imprimes la nueva con tus dos 'for' y listo!
Saludos..
PD. Si me confundí haí me dicen porfa... y Checate este manual, pa practicar
http://sisuatf.galeon.com/pro2/matrices.pdf


que onda carnal, gracias por la respuesta, creo que ya lo intente =, pero marca error, de todas formas, ahorita vuelvo a checar haber si agarra, y muchas gracias por el manual

me va a ayudar mucho

Gracias!!:chavo:
 
por cierto, la matriz puede ser [2][3] y [3][2] no forzosamente [2][4] y [4][2] eso no tiene ni razon pero gracias!!
 
Pues ya copie tu codigo, y con la solucion que te mande da buen resultado:

public static void main(String[] args)
{
//
// TODO: Agregar aquí el código para iniciar la aplicación
//
int H[][] = new int[2][3];
int V[][] = new int[3][2];

for (int i = 0; i < H.length; i++)
{
for (int j = 0; j < H[0].length; j++)
{
H[j] = Leer.datoInt();


}
}

for (int a = 0; a < H[0].length; a++)
{
for (int b = 0; b < H.length; b++)
{
V[a] = H[a];
}
}


System.out.println("--------------Resultado--------------");
for (int i = 0; i < V.length; i++)
{
for (int j = 0; j < V[0].length; j++)
{
System.out.print(+V[j]);
}
System.out.println();
}
System.out.println("--------------Resultado--------------");
}
 
gracioas de nuevo lestatab

ya ejecute y corre bien

eres un genio

Gracias!!
 
Volver
Arriba