Sei sulla pagina 1di 2

PROGRAMACIN

Arreglos Multidimensionales
Matrices

Arreglos multidimensionales pueden ser descritos como arreglos de arreglos.


Por ejemplo, un arreglo bidimensional se puede imaginar como una tabla
bidimensional de un tipo de dato concreto y uniforme.

matriz

matrizrepresenta un arreglo bidimensional de 3 por 5 valores de tipo int. La


manera de declarar este arreglo sera:
int matriz [3][5];
y por ejemplo, la manera de referenciar el segundo elemento verticalmente y
cuarto horizontalmente en una expresin sera:
matriz[1][3]

matriz

matriz [1][3]

(recuerde que los ndices de un arreglo siempre comienzan por 0).

Los Arreglos multidimensionales no estn limitados a dos ndices (dos


dimensiones). Pueden contener tantos ndices como sea necesario, aunque es
raro tener que representar ms de 3 dimensiones. Solo considere la cantidad
de memoria que un arreglo con muchos ndices puede requerir. Por ejemplo:
char century [100][365][24][60][60];

assigna un char para cada segundo contenido en un siglo, que es ms de 3 mil


millones de chars! Esto consumira cerca de 3000 megabytes de memoria
RAM si pudiramos declararlo.

Los arreglos multidimensionales no son ms que una abstraccin, ya que


podemos obtener los mismos resultados con un simple arreglo poniendo un
factor entre sus indices:

int matriz [3][5]; es equivalente a


int vector [15]; (3 * 5 = 15)

Pedro Nez Ypiz Pgina 1


PROGRAMACIN

Con la salvedad de que el compilador recuerda por nosotros la profundidad de


cada dimensin imaginaria. Sirva como ejemplos estos dos cdigos, con el
mismo resultado, uno usando arreglos bidimensional es y el otro usando solo
arreglos simples:

// Arreglos multidimensionales

#include <stdlib.h>
#include <stdio.h>

#define COLUMNA 5
#define RENGLON 3

int matriz [RENGLON][COLUMNA];


int i,j;

int main ()
{
for (i=0;i < RENGLON; i++)
{
for (j=0;j < COLUMNA; j++)
{
matriz[i][j]=(i+1)*(j+1);
}
}
return 0;
}

Este programa no produce salida por la pantalla, pero asigna valores al bloque
de memoria llamado matriz de la siguiente manera:

matriz

Hemos usado constantes definidas (#define) para simplificar posibles


modificaciones futuras del programa, por ejemplo, en caso de que decidamos
aumentar el arreglo a una altura de 4 en vez de 3 podramos hacerlo
cambiando la lnea:
#define RENGLON 3
por
#define RENGLON 4
sin necesidad de hacer otra modificacin al programa.

Pedro Nez Ypiz Pgina 2

Potrebbero piacerti anche