Una matriz es una estructura de datos homogénea formada por posiciones de memoria contiguas que se estructuran de forma multidimensional, lo cual quiere decir que en una matriz todos los datos pertenecen al mismo, que se ubican de forma continua en la memoria de la computadora y que se organizan en varias dimensiones.
La forma mas simple de una matriz, es una matriz bidimensional, es decir, una matriz de dos dimensiones, como la que mostramos en la imagen superior.
Las matrices bidimensionales a pesar de las concebimos mentalmente como una tabla en realidad son solo una secuencia de datos de la siguiente forma:
{ [1,2,3] , [34,45,78] , [23,45,67] }
El ejemplo anterior es una matriz bidimensional de 3 columnas por 3 filas, ahora cabe aclarar que aunque algunos autores hacen referencia a las matrices como tablas en las que cada posición es accesible por sus coordenadas de (fila, columna), de forma real es completamente indistinto si la matriz es concebida como (fila, columna) o como (columna, fila).
En el lenguaje C++ las matrices bidimensionales se declaran de la siguiente forma:
tipodedato nombrematriz[indice1][indice2];
en donde:
- tipodedato: puede ser int, float, char o cualquier otro tipo de datos de C++
- nombrematriz: el nombre de la matriz, el cual sigue las misma reglas de denominación que cualquier variable.
- indice1: numero de filas o columnas según sea el concepto.
- indice2: numero de filas o columnas según corresponda.
Los numero de índice (indice1 e indice2) definen el tamaño de la matriz y al igual que los vectores, las posiciones de las celdas se comienzan a numerar a partir del cero, de tal forma que la primera celda de una matriz llamada «datos» seria datos[0][0].
En la imagen siguiente, podemos observar un ejemplo muy simple de un programa que usa una matriz bidimensional, el programa solo pide los datos, presenta una celda y posteriormente presenta todo el contenido de la matriz en forma de tabla.
Como podemos ver en el ejemplo, para hacer el llenado de la matriz, debemos recurrir a dos ciclos anidados, uno para cambiar el numero de índice de las filas y otro para las columnaslas variables de los ciclos pueden ser cualquiera, en el ejemplo optamos por «c» y «f» para indicar columnas y filas
Dado que en el ejemplo son pocas columnas decidimos emplear solo un ciclo para presentar los datos al final como tabla, haciendo uso del carácter de escape \t, que inserta un tabulador (espaciado), pero si la matriz tuviera un gran numero de filas y columnas deberíamos optar por presentarlos haciendo uso de dos ciclos anidados como en el llenado de la matriz.
Para el caso de que la matriz tuviera mas de dos dimensiones se requieren tantos ciclos anidados como dimensiones o índices posea la matriz.
Ya para terminar debemos de indicar que el numero de filas y columnas de la matriz no se puede modificar durante la ejecución del programa y en la mayoría de los lenguajes los índices solo tienen un máximo de 255 posiciones, por lo que la matriz mas grande tendrá 255 posiciones por dimensión.