¿Qué es una matriz?
Una matriz es una variable de memoria estática la cual cuenta con dos dimensiones que almacenan una secuencia de datos del mismo tipo dentro de ella en segmentos de memoria continua, al igual que los arreglos, es estática debido a que se define el número de datos que se quieren guardar en ella. En algunos libros podemos encontrar las matrices con nombres como “arreglos bidimensionales” o “tablas”, pero se trata del mismo concepto. Esta también es llamada arreglo de arreglos, puesto que es una variable que, en vez de contener datos, contienen arreglos.
A continuación, se muestra una representación visual:
Los datos se van enumerando conforme van ingresando, al igual que en los arreglos de una dimensión, se señala la posición donde se quiere almacenar el dato, pero ahora se tienen dos dimensiones, la primera dimensión se refiere a las “filas” y la segunda para las “columnas”, los índices comienzan desde el (0,0), sigue un (0,1), después un (0,2), hasta llegar al número del tamaño máximo declarado de las columnas (0,n-1), posteriormente se pasa a la siguiente fila y se le suma 1 y se reinicia las columnas a 0, se tiene ahora (1,0) y se repite el incremento en las columnas de (1,0), (1,1), (1,2), todo esto se repite hasta llegar a los límites de las filas y columnas por igual, siendo (m-1 n-1) el último valor de la matriz.
¿Por qué a m-1 n-1?
Retomando lo mencionado en el capítulo de arreglos, los datos se guardan desde el índice 0, el cual sería su primer elemento, se seguirán guardando datos hasta el índice m-1.
Cuando hablamos de las filas de la matriz, ya que tendría un tamaño de m elementos, lo mismo sucede para las columnas, se guardarán los datos hasta el índice n-1. Si se guarda un dato en el índice m o n de la matriz tendría m+1 o n+1 elementos, lo cual no es correcto ya que sobrepasa el tamaño máximo declarado en la matriz, sin importar que sea las filas, las columnas o ambas a la vez.
Un ejemplo es si declaramos una matriz de dimensiones [4] [5], Si empezamos a llenar desde el 0, la fila abarcaría del 0 al 3, siendo esto 4 elementos y si llenamos las columnas, se llenará del 0 al 4, siento esto 5 elementos.
Ahora se tiene un límite máximo para las filas y otro para las columnas, no necesariamente tiene que ser el mismo. Para referirnos en Java a un elemento específico de la matriz hacemos uso de los índices de la siguiente manera:
a[m] [n]
Donde “a” es el nombre de nuestra matriz y “m” es el índice que le corresponde a las filas, mientras que “n” es el índice que corresponde a las columnas, ambos índices forman una coordenada que contiene el elemento almacenado en ese segmento, en este caso sería el primer elemento de la matriz por tener los índices 0 0. Una visión más completa es la siguiente:
Tipo de dato: se refiere al tipo de dato de los valores que se almacenarán en la matriz (int, float, char…etc).
Identificador: es el nombre que le pondrá a la matriz.
Corchetes: se agregará corchetes después del identificador, estos indicarán que lo que se está declarando es una variable que almacenará un conjunto de datos, dentro de ellas se indicarán cuantos datos se podrán almacenar como máximo, habrá dos pares de corchetes, uno para las filas y otro para las columnas.
Tamaño: el tamaño se refiere al número de datos máximos que podrás almacenar dentro de la matriz, es decir, no podrás guardar un dato de más en la matriz al llegar al tamaño limite, habrá un límite para las filas y otro para las columnas.
Palabra reservada (new): se tiene la palabra reservada “new” que forma parte de la sintaxis para poder declarar una matriz en este caso.
La forma de declarar una matriz es de la siguiente manera:
tipo de dato Identificador [] = new tipo de dato[tamaño] [tamaño];
A continuación, se muestra un ejemplo entre pseudocódigo y java.
Para poder insertar datos en una matriz es necesario haberlo declarado antes. Se insertarán los datos haciendo uso de los índices. Como se mencionó anteriormente, hay un límite para el número de datos que podrá contener la matriz, un límite para las filas y otro para las columnas. A continuación, se muestra la sintaxis:
Identificador.
Corchetes.
Índice: se refiere a la posición exacta donde se quiere almacenar un valor, proporcionando la fila y columna.
Operador: operador de igualdad que otorga el valor a la posición de la matriz.
Valor: dato que se almacenará en la posición de la matriz.
Identificador [indice] [indice] = valor;
A continuación se mostrará como seria en pseudocódigo y java
Existe otra manera de insertar datos una matriz, el cual consiste en rellenarlo justo después de declararlo. A continuación, se muestra un ejemplo en java:
Su diagrama de flujo es la siguiente:
Para mostrar los datos almacenados de una matriz se siguen ocupando los “índices”, se realiza de manera similar que cuando se inserta un dato en la matriz, pero en este caso se utilizará para mostrarlo, indicando la posición exacta que se quiere. Esto se ejemplifica de la siguiente manera:
Segmento identificador[0] [0].
Segmento identificador[0] [1].
Segmento identificador[0] [n-1].
Segmento identificador[1] [0].
Segmento identificador[m-1] [n-1].
A continuación se muestra la comparación entre pseudocódigo y java.
Por último, se muestra su diagrama de flujo