CLR: .Net / Mono / Boo / Otros CLR > C#
Optimizar Declaraciones De Matrizes
sergiotarrillo:
--- Código: Text --- public void CrearMatriz(int[][] matrizA, int[][] matrizB) { int fil; int col; Console.Write("ingrese el numero de filas de la matriz: "); fil = int.Parse(Console.ReadLine()); Console.Write("ingrese el numero de columnas de la matriz: "); col = int.Parse(Console.ReadLine()); matrizA = new int[fil][]; for (int i = 0; i < fil; i++) matrizA[i] = new int[col]; matrizB = new int[fil][]; for (int i = 0; i < fil; i++) matrizB[i] = new int[col]; }
quiero optimizar ese codigo?, alguien tiene alguna idea?
Güorker:
Funcionaria esto?
--- Código: Text ---matrizA = new int[fil][col];
YO no le he probado, pero si funciona te ahorras los for.
Saludos
JuanK:
creo que no funciona.
JuanK:
Esto optimizaria tu codigo:
--- Código: Text --- public void CrearMatriz(out int[][] matrizA, out int[][] matrizB) { int col, i; Console.Write("ingrese el numero de filas de la matriz: "); matrizA = new int[int.Parse(Console.ReadLine())][]; Console.Write("ingrese el numero de columnas de la matriz: "); col = int.Parse(Console.ReadLine()); while(i<matrizA.Length) matrizA[i++] = new int[col]; matrizB = MatrizA.Clone(); } Esto se usa mucho pero con jagged matrix, es decir donde no necesariamente todas las filas son de 'n' columnas sino que algunas filas son de 'x' y otras de 'z' o'y' columnas.
Pero como segun veo lo que quieres es una matriz de n*m es mejor asi:
--- Código: Text --- public void CrearMatriz(out int[,] matrizA, out int[,] matrizB) { int col, fil; Console.Write("ingrese el numero de filas de la matriz: "); fil = int.Parse(Console.ReadLine()); Console.Write("ingrese el numero de columnas de la matriz: "); col = int.Parse(Console.ReadLine()); matrizA = new int[fil,col]; matrizB = matrizA.Clone(); }
Si te fijas en ambos casos coloqué en los parametros out, pero no estoy seguro si es permitido en el uso de matrices, eso lo tendrás que verificar tú.
sergiotarrillo:
diferencia entre estas dos declaraciones:
--- Código: Text ---int[][] M; int[,] M;
Navegación
[#] Página Siguiente
Ir a la versión completa