1942 Posted January 3, 2011 Report Share Posted January 3, 2011 (edited) 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 January 3, 2011 by 1942 Link to comment Share on other sites More sharing options...
RigoPerdido Posted January 12, 2011 Report Share Posted January 12, 2011 Si las filas y las columnas son iguales, matriz.length sera igual que matriz.length supongo que de eso se trata :) Link to comment Share on other sites More sharing options...
xchanox Posted January 12, 2011 Report Share Posted January 12, 2011 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 More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now