Jump to content

recorrer una matriz


Recommended Posts

cual sería la diferencia entre estos dos metodos:

 

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

for (int i = 0; i < matriz1.length; i++) {

for (int j = 0; j < matriz1[0].length; j++) {

matrizSumada[j]=matriz1[j]+matriz2[j];

out+=matrizSumada[j]+"\t";

}

}

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

 

 

 

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

for (int i = 0; i < matriz.length; i++) {

for (int j = 0; j < matriz.length; j++) {

suma = matriz[j] + matriz1[j];

out += "\n" + suma;

 

}

}

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

 

me refiero especificamente a lo que sale en negrita.

porque ambas se recorren de la misma manera.

:banana:

Edited by 1942
Link to comment
Share on other sites

  • 2 weeks later...

Un valor de la matriz se expresa de la siguiente forma:

 

matriz[Y][X];

 

"Y" el número de fila, mientras que "X" sería el número de columna de esa fila. Ahora, no todas las filas tienen por que ser de igual longitud en columnas. Perfectamente se puede dar el caso de que la fila "1" tenga 5 columnas y la fila “2” tenga 10 columnas. Eso se ajusta al declarar la matriz.

 

Ahora, lo que está en negrita:

 

Matriz.length es un entero que te dice la cantidad de filas de la matriz, pero tal y como está utilizado ahí, estas utilizando ese valor para referenciar una columna, por lo cual la cantidad de columnas para toda fila de todas las matrices involucradas debe ser igual o mayor que la cantidad de filas en total de la matriz1. Si en alguna fila la cantidad de columnas es menor que el total de filas, se producirá una excepción por salirte de los márgenes de la matriz.

 

Matriz[0].length es un entero que te dice la cantidad de calumnas que tiene la fila “i” (hay que recordar que la primera fila es la numero 0 y no la número 1), por lo tanto ese bucle sirve para sumar columna por columna de todas las filas en la matriz 1 y la matriz 2 y poner los resultados en la matrizSumada. Aquí la condicion es que matrizSumada y matriz2 tengan igual o mayor cantidad de columnas en la fila 0 que la matriz 1, ya que esa estas usando para referenciar.

 

El método 1 es el más correcto ya que está un poco más preparado para distintas condiciones de longitud. El método 2 es una completa mala práctica y hace que el código sea muy propenso a errores o como mínimo muy ajustado a las dimensiones de la matriz para la cual fue ideado inicialmente.

 

La única forma de que el método 2 haga lo mismo que el método 1 sin producir errores es que ninguna fila de las matrices tenga menor cantidad de columnas que la cantidad total de filas de la matriz a la cual le estas sacando el “.length”

 

 

En resumen:

 

Matriz.length es el número de filas de la matriz

Matriz[0].length es el número de columnas de la primera fila de la matriz.

 

 

Sin intención de molestar, en este caso sí sería mejor hacer un dibujito para entender, pero lamentablemente no tengo tanto tiempo.

 

Saludos

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...