Documentos de Académico
Documentos de Profesional
Documentos de Cultura
4] IDSYSTEMS
Si esos fueran los elementos de un array de dos dimensiones (por ejemplo el array a) el
elemento resaltado (de verde) sería el a[3][1]. La declaración de arrays de dos dimensiones
se realiza así:
int a[3][6];
a es un array de tres filas y seis columnas. Otra forma de declarar es inicializar los valores:
int a[][]={{2,3,4},{4,5,2},{8,3,4},{3,5,4}};
Las matrices, tambien llamadas tablas bidimensionales, no son otra cosa que vectores con
dos dimensiones.
Por lo que los conceptos de acceso, inicializacion, etc. son similares. La declaracion de una
variable matriz tiene la forma siguiente:
1
[CURSO C++/LECCION 4.4] IDSYSTEMS
Otro hecho importante es que las matrices en C se almacenan “por filas”. Es decir, que los
elementos de cada fila se situan en memoria de forma contigua. Ası pues, en la matriz de la
figura anterior, el primer elemento almacenado en memoria es el (0,0), el segundo el (0,1), el
tercero el (0,2), . . . , (0,M-1), despues (1,0), y ası sucesivamente hasta el ultimo elemento, es
decir (N-1,M-1).
Ejemplo:
2
[CURSO C++/LECCION 4.4] IDSYSTEMS
El siguiente ejemplo calcula la matriz traspuesta de una matriz de enteros. La matriz tendria
unas dimensiones maximas seg´un la constante MAX.
Al igual que se utilizan arrays de dos dimensiones se pueden declarar arrays de más
dimensiones.
3
[CURSO C++/LECCION 4.4] IDSYSTEMS
Por ejemplo imaginemos que queremos almacenar las notas de 6 aulas que tienen cada una
20 alumnos y 6 asignaturas. Eso sería un array de una dimensión de 720 elementos, pero es
más claro el acceso si hay tres dimensiones: la primera para el aula, la segunda para el
alumno y la tercera para la asignatura.
4
[CURSO C++/LECCION 4.4] IDSYSTEMS
int a[6][20][6];
Y para colocar la nota en el aula cuarta al alumno cinco de la asignatura 3 (un ocho es la
nota):
a[3][4][2]=8;
Eso es incorrecto, en cuanto hiciéramos uso de un acceso a a[2][3], por ejemplo, no habría
manera de saber en qué posición de memoria está ese valor ya que sin saber cuántas
columnas forman parte del array, es imposible determinar esa posición. Lo correcto es:
Ejemplo
El siguiente ejemplo muestra el empleo de una tabla multidimensional. Concretamente, el
programa utiliza una tabla de 3 dimensiones para almacenar 1000 numeros aleatorios. Para
generar numeros aleatorios se usa la funcion rand de la librerıa estandar stdlib.h. Tambien se
ha usado la funcion getchar (stdio.h), que interrumpe el programa y espera a que el usuario
presione una tecla.
5
[CURSO C++/LECCION 4.4] IDSYSTEMS