AnteriorPosterior

5.3. Tablas bidimensionales

  Curso: Fundamentos de programación en C, por Nacho Cabanes

5.3. Tablas bidimensionales

Podemos declarar tablas de dos o más dimensiones. Por ejemplo, si queremos guardar datos de dos grupos de alumnos, cada uno de los cuales tiene 20 alumnos, tenemos dos opciones:

> Podemos usar int datosAlumnos[40] y entonces debemos recordar que los 20 primeros datos corresponden realmente a un grupo de alumnos y los 20 siguientes a otro grupo.
> O bien podemos emplear int datosAlumnos[2][20] y entonces sabemos que los datos de la forma datosAlumnos[0][i] son los del primer grupo, y los datosAlumnos[1][i] son los del segundo.

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 verlo con un ejemplo de su uso:

/*---------------------------*/
/*  Ejemplo en C nº 48:      */
/*  C048.C                   */
/*                           */
/*  Array de dos dimensiones */
/*                           */
/*  Curso de C,              */
/*    Nacho Cabanes          */
/*---------------------------*/
 
#include <stdio.h>
 
 
int main() 
{      
  int notas[2][10] = 
     { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
       11, 12, 13, 14, 15, 16, 17, 18, 19, 20 };
 
  printf("La nota del tercer alumno del grupos 1 es %d",
    notas[0][2]);
 
  return 0;
}
 

Este tipo de tablas son las que se usan también para guardar matrices, cuando hay que resolver problemas matemáticos más complejos.

También podemos usar arrays de dos dimensiones si queremos guardar una lista de cadenas de texto, como en este ejemplo:

/*---------------------------*/
/*  Ejemplo en C nº 49:      */
/*  C049.C                   */
/*                           */
/*  Array de cadenas         */
/*                           */
/*  Curso de C,              */
/*    Nacho Cabanes          */
/*---------------------------*/
 
#include <stdio.h>
 
int main() 
{      
  char mensajeError[5][80] = {
    "Fichero no encontrado",
    "El fichero no se puede abrir para escritura",
    "El fichero está vacío",
    "El fichero contiene datos de tipo incorrecto"
    "El fichero está siendo usado"
    };
 
  printf("El segundo mensaje de error es: %s",
    mensajeError[1]);
  printf("La primera letra del tercer mensaje de error es: %c",
    mensajeError[2][0]);
 
  return 0;
}
 

Ejercicios propuestos :

  • Un programa guarde los nombres de los meses. El usuario deberá indicar un número de mes (por ejemplo, 3) y se le mostrará el nombre de dicho mes (por ejemplo, Marzo).
  • Usar un array de 3 dimensiones para guardar los nombres de los meses en español e inglés. El usuario deberá indicar un número de mes (por ejemplo, 3) y se le mostrará el nombre de dicho mes en español (Marzo) y en inglés (March).

Actualizado el: 24-07-2014 15:34

AnteriorPosterior