Arrays Multi
Arrays Multi
Arrays Multi
Arrays multidimensionales
Arrays bidimensionales
Las matrices, también conocidas como arrays bidimensionales o tablas bidimensionales, no son
otra cosa sino un array con dos dimensiones. Por lo que los conceptos de acceso, inicialización, etc.
son similares a las de un array ordinario.
Consulta
El acceso al contenido de una "celda" de la matriz se realiza mediante el nombre de ésta y sus
índices (uno para cada dimensión) entre corchetes. El primer índice representa la fila y el segundo
la columna en que se encuentra dicho elemento. El índice de las filas toma un valor entre 0 y el
número de filas menos uno y en el caso de las columnas el valor es entre 0 y el número de las
columnas menos uno. Es responsabilidad del programador garantizar este hecho.
nombre_matriz[índice_filas][índice_columnas];
Asignación
Para asignarle valores a una matriz se puede realizar de las siguientes formas:
El próximo ejemplo declara una matriz de 3x4 y le asigna los valores en la misma declaración. Ésta
práctica sólo puede hacerse en el momento de la declaración.
int matriz[3][4] = {1, 2, 3, 4, 10, 20, 30, 40, 100, 200, 300, 400};
Autor: Simón, Angel
Carrera: Técnico superior en programación
Materia: Laboratorio de Computación II
Tema: Arrays multidimensionales Tema nº: 02
El siguiente ejemplo declara una matriz de 3x4 y le asigna los valores en la misma declaración, para
mejor entendimiento del código se separan las filas entre llaves {}. Ésta práctica sólo puede hacerse
en el momento de la declaración.
int matriz[3][4] = { { 1, 2, 3, 4 } , { 10, 20, 30, 40} , { 100, 200, 300, 400 } };
Otra forma de para asignar valores es a través del nombre de la matriz y sus dimensiones entre
corchetes.
int matriz[3][4];
matriz[0][0] = 0;
matriz[2][3] = 100;
Ejercicio de ejemplo:
Se dispone de una matriz de 5x12 para almacenar los sueldos de las faltas de los cinco empleados
de una empresa
durante el año 2009.
Se propone generar un array con la cantidad de faltas en total por mes de toda la empresa.
#include<iostream>
using namespace std;
const int _EMPLEADOS = 5;
int main(void){
int mfaltasxMes[_EMPLEADOS][12], empleadoMax, mesMax;
char mMeses[12][15] =
{"Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","No
viembre","Diciembre"};
cargarFaltasRandom(mfaltasxMes);
listarFaltas(mfaltasxMes, mMeses);
system("pause");
buscarMaximo(mfaltasxMes, &empleadoMax, &mesMax);
cout << "El empleado " << (empleadoMax + 1) << " faltó " << mfaltasxMes[empleadoMax]
[mesMax] << " veces en el mes de " << mMeses[mesMax] << endl;
system("pause");
}
Arrays multidimensionales
Este tipo de "tablas" se caracterizan por tener tres o más dimensiones. Al igual que los vectores y
matrices, todos los elementos que allí se almacenan comparten el mismo tipo de datos.
tipos_de_dato nombre_variable[dimension1]...[dimensionN];
Ejemplos:
int m3[12][31][5];
float m4[2][5][10][5];
Para acceder a un elemento en particular será necesario tantos índices como dimensiones tenga la
"tabla".
Ejemplo:
cout << m3[0][10][3];
float num = m4[0][2][8][2];
Autor: Simón, Angel
Carrera: Técnico superior en programación
Materia: Laboratorio de Computación II
Tema: Arrays multidimensionales Tema nº: 02
Ejemplo:
#include<iostream>
using namespace std;
const int X = 3, Y = 2, Z = 4;
const int MAX_NUM = 10;
int main(void){
int Mat[X][Y][Z] = {0};
cargarMatriz3d(Mat);
mostrarMatriz3d(Mat);
}
Salida:
Matriz 1:
174
094
882
Matriz 2:
455
171
152
Matriz 3:
761
423
221
Matriz 4:
685
761
892
En el ejemplo anterior, se utilizan dos funciones cargarMatriz3d y mostrarMatriz3d para cargar una
matriz de tres dimensiones con números aleatorios y mostrarla por pantalla respectivamente. Se
declaran tres constantes de tipo de dato int para poder definir los subíndices de las dimensiones y
para definir el tope en el rango de valores que puede variar el número al azar en cargarMatriz3d.
El ejercicio no presenta ninguna solución a ningún problema, simplemente tiene como objetivo
mostrar el uso de una matriz de tres dimensiones.
Bibliografía