matriz 2D
Una matriz bidimensional es una matriz que tiene dos índices para cada elemento (a menudo, estas matrices se denominan con una palabra: matriz).
Es conveniente almacenar y procesar varios datos tabulares en una matriz. Al igual que cualquier tabla se compone de filas y columnas, las matrices se componen de filas y columnas.
Para mayor claridad, puede representar una matriz como esta:
Aunque, de hecho, en la memoria de la computadora, la matriz se verá así:
Para usar una matriz en un programa, debe declararse como una matriz regular, especificando el tipo de datos y dos tamaños (números o constantes). También es posible (y deseable) establecer inmediatamente los valores iniciales. Por ejemplo, restablecer todos los elementos.
Ejemplo 1: Declarar una matriz de 3 filas y 3 columnas con valores iniciales arbitrarios
intA[3][3] = {{0,1,2},
{3,4,5},
{6,7,8} };
Ejemplo 2: Declarar una matriz de 5 filas y 10 columnas (el tamaño se establece a través de una constante) con valores iniciales cero
const int N = 5, M = 10;
doble B[N][M] = {};
Para referirnos a un elemento específico de la matriz, usamos dos pares de corchetes, en el primer paréntesis indicamos el número de fila, en el segundo, el número de columna.
Ejemplo:
A[0][2] = 100; //la numeración de filas y columnas comienza desde cero
Llenar la matriz y mostrarla
Para atravesar toda la matriz, se necesita un bucle anidado. Veamos cómo llenar y generar una matriz usando el ejemplo de un programa que solicita los valores de los elementos desde el teclado y simplemente muestra la matriz llena en la pantalla.
#incluye <iostream>
utilizando el espacio de nombres estándar;
int principal() {
/* Declarar un arreglo bidimensional */
const int N = 2, M = 3;
int A[N][M];
/* rellena los elementos de la matriz desde el teclado linea a linea */
i, j;
para (i = 0; i < N; i++)
para (j = 0; j < M; j++)
cin>> A[i][j];
//Mostrar todos los elementos de la matriz en la pantalla línea por línea
for (i = 0; i < N; i++) { //el bucle externo es responsable de iterar sobre las filas
for (j = 0; j < M; j++) //bucle para mostrar los elementos de la cadena
cout << A[i][j] << " ";
cout << fin; //después de mostrar los elementos de la j-ésima línea, pasamos a una nueva línea
}
devolver 0;
}
En el ejemplo anterior, tanto el llenado como la visualización de la matriz ocurren fila por fila (primero revisamos todos los valores j - el índice de las columnas, y solo luego cambia el índice de la fila - i)
Al intercambiar bucles (internos con externos), puede llenar y/o generar una matriz por columnas