CLR: .Net / Mono / Boo / Otros CLR > C#

 Optimizar Declaraciones De Matrizes

(1/2) > >>

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

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa