Este sitio web usa cookies de terceros para analizar el tráfico y personalizar los anuncios. Si no está de acuerdo, abandone el sitio y no siga navegando por él. ×


4.2. Arrays bidimensionales

Podemos declarar tablas de dos o más dimensiones. Por ejemplo, si un profesor quiere guardar datos de dos grupos de alumnos, cada uno de los cuales tiene 20 personas, tendría dos opciones:

En cualquier caso, si queremos indicar valores iniciales, lo haremos entre llaves, igual que si fuera una tabla de una única dimensión.

Vamos a ver un primer ejemplo de uso con arrays "rectangulares", de la forma [2,20], lo que podríamos llamar el "estilo Pascal". En este ejemplo usaremos tanto arrays con valores prefijados, como arrays para los que reservemos espacio con "new" y a los que demos valores en un segundo paso:

// Ejemplo_04_02a.cs
// Array de dos dimensiones "rectangulares" (estilo Pascal)
// Introducción a C#, por Nacho Cabanes

using System;

public class Ejemplo_04_02a
{
    public static void Main()
    {
        int[,] notas1 = new int[2,2]; // 2 bloques de 2 datos
        notas1[0,0] = 1; 
        notas1[0,1] = 2; 
        notas1[1,0] = 3; 
        notas1[1,1] = 4;

        int[,] notas2 = // 2 bloques de 10 datos, prefijados
        { 
            {1, 2, 3, 4, 5, 6, 7, 8, 9, 10},
            {11, 12, 13, 14, 15, 16, 17, 18, 19, 20} 
        };

        Console.WriteLine("La nota1 del segundo alumno del grupo 1 es {0}",
            notas1[0,1]);
        Console.WriteLine("La nota2 del tercer alumno del grupo 1 es {0}",
            notas2[0,2]);  
    }
}

Este tipo de tablas de varias dimensiones son las que se usan también para guardar matrices, cuando se trata de resolver problemas matemáticos más complejos que los que hemos visto hasta ahora. Si ya has estudiado la teoría de matrices, más adelante tienes algunos ejercicios propuestos para aplicar esos conocimientos al uso de arrays bidimensionales.

La otra forma de tener arrays multidimensionales son los "arrays de arrays", que, como ya hemos comentado, y como veremos en este ejemplo, pueden tener elementos de distinto tamaño. En ese caso nos puede interesar saber su longitud, para lo que podemos usar "a.Length":

// Ejemplo_04_02b.cs
// Array de arrays (array de dos dimensiones al estilo C)
// Introducción a C#, por Nacho Cabanes

using System;

public class Ejemplo_04_02b
{
    public static void Main()
    {
        int[][] notas;         // Array de dos dimensiones
        notas = new int[3][];  // Seran 3 bloques de datos
        notas[0] = new int[10];  // 10 notas en un grupo
        notas[1] = new int[15];  // 15 notas en otro grupo
        notas[2] = new int[12];  // 12 notas en el ultimo

        // Damos valores de ejemplo
        for (int i=0;i

La salida de este programa sería

0 1 2 3 4 5 6 7 8 9
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
2 3 4 5 6 7 8 9 10 11 12 13

Ejercicios propuestos:

Ejercicio propuesto 4.2.1: Un programa que pida al usuario dos bloques de 10 números enteros (usando un array de dos dimensiones). Después deberá mostrar el mayor dato que se ha introducido en cada uno de ellos.
Ejercicio propuesto 4.2.2: Un programa que pida al usuario dos bloques de 6 cadenas de texto. Después pedirá al usuario una nueva cadena y comprobará si aparece en alguno de los dos bloques de información anteriores.
Ejercicio propuesto 4.2.3: Un programa que pregunte al usuario el tamaño que tendrán dos bloques de números enteros (por ejemplo, uno de 10 elementos y otro de 12). Luego pedirá los datos para ambos bloques de datos. Finalmente deberá mostrar el mayor dato que se ha introducido en cada uno de ellos.

Si has estudiado álgebra de matrices:

Ejercicio propuesto 4.2.4: Un programa que calcule el determinante de una matriz de 2x2.
Ejercicio propuesto 4.2.5: Un programa que calcule el determinante de una matriz de 3x3.
Ejercicio propuesto 4.2.6: Un programa que calcule si las filas de una matriz son linealmente dependientes.
Ejercicio propuesto 4.2.7: Un programa que use matrices para resolver un sistema de ecuaciones lineales mediante el método de Gauss.