2
PROGRAMACIÓN Pedro Núñez Yépiz Página 1 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 matriz representa un arreglo bidimensional de 3 por 5 valores de tipo int. La manera de declarar este arreglo sería: int matriz [3][5]; y por ejemplo, la manera de referenciar el segundo elemento verticalmente y cuarto horizontalmente en una expresión sería: matriz[1][3] matriz matriz [1][3] (recuerde que los índices de un arreglo siempre comienzan por 0). Los Arreglos multidimensionales no están limitados a dos índices (dos dimensiones). Pueden contener tantos índices como sea necesario, aunque es raro tener que representar más 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 más de 3 mil millones de chars! Esto consumiría cerca de 3000 megabytes de memoria RAM si pudiéramos declararlo. Los arreglos multidimensionales no son más que una abstracción, 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)

Arreglos Multidimensionales - INICIOyepiz.webs.com/programacion 2013-2/Arreglos Multidimensionales.pdf · Matrices Arreglos multidimensionales pueden ser descritos como arreglos de

  • Upload
    trananh

  • View
    223

  • Download
    4

Embed Size (px)

Citation preview

Page 1: Arreglos Multidimensionales - INICIOyepiz.webs.com/programacion 2013-2/Arreglos Multidimensionales.pdf · Matrices Arreglos multidimensionales pueden ser descritos como arreglos de

PROGRAMACIÓN

Pedro Núñez Yépiz Página 1

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

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

manera de declarar este arreglo sería: int matriz [3][5]; y por ejemplo, la manera de referenciar el segundo elemento verticalmente y

cuarto horizontalmente en una expresión sería: matriz[1][3]

matriz

matriz [1][3]

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

Los Arreglos multidimensionales no están limitados a dos índices (dos

dimensiones). Pueden contener tantos índices como sea necesario, aunque es

raro tener que representar más 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 más de 3 mil

millones de chars! Esto consumiría cerca de 3000 megabytes de memoria

RAM si pudiéramos declararlo.

Los arreglos multidimensionales no son más que una abstracción, 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)

Page 2: Arreglos Multidimensionales - INICIOyepiz.webs.com/programacion 2013-2/Arreglos Multidimensionales.pdf · Matrices Arreglos multidimensionales pueden ser descritos como arreglos de

PROGRAMACIÓN

Pedro Núñez Yépiz Página 2

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

cada dimensión imaginaria. Sirva como ejemplos estos dos códigos, 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 podríamos hacerlo

cambiando la línea: #define RENGLON 3 por #define RENGLON 4 sin necesidad de hacer otra modificación al programa.