ARREGLOS BIDIMENSIONALES
Enviado por omar_elias • 24 de Abril de 2013 • 1.474 Palabras (6 Páginas) • 1.097 Visitas
INSTITUTO POLITECNICO NACIONAL
ESCUELA SUPERIOR DE INGENIERÍA MECANICA Y ELECTRICA
UNIDAD ZACATENCO
FUNDAMENTOS DE PROGRAMACION
TENORIO HUERTAS JOSE JAVIER
EQUIPO 3
Díaz Moreno Marcos
Gómez García Luis Edgar
Sagrero Pérez Alan
Sánchez Cruces Gustavo
ING. ELÉCTRICA
1EV2
Objetivos
Que el alumno entienda el concepto de lo que so los arreglos bidimencionales y poder hacer problemas con algoritmos utilizando los arreglos.
ARREGLOS BIDIMENSIONALES
Un arreglos bidimensional esta compuesto, por un conjunto de elementos homogéneos y se puede acceder a los datos utilizando dos subíndices, este tipo de arreglo es también conocido como matriz.
Son estructuras de datos que agrupan muchos datos del mismo tipo, en donde cada elemento se puede trabajar individualmente y se puede referenciar con un mismo nombre. Se usan para representar datos que pueden verse como una tabla con filas y columnas.
Para referenciar un elemento de la matriz, debe darse un nombre de la matriz y el índice de la fila y de la columna que el elemento ocupa en dicha matriz. Es importante que los índices de las matrices tanto de las filas como de las columnas empiezan en 0 y terminan en tamaño fila-1 y tamaño columna-1 respectivamente.
DECLARACIÓN
Un arreglo bidimensional se define así:
int arreglo[10][10];
float matriz[10][10];
también podemos utilizar constantes para definir la dimensión del arreglo de dos dimensiones:
const int N = 10;
int arreglo[N][N];
A las matrices se le asignan automáticamente valores iniciales predeterminados a cada uno de sus elementos, de acuerdo a los siguientes criterios:
Si el tipo del arreglo es numérico, a sus elementos se les asigna el valor cero.
Si el tipo del arreglo es char, a sus elementos se les asigna el valor ‘\u0000′.
Si el tipo del arreglo es bool, a sus elementos se les asigna el valor false.
Si el tipo del arreglo es una clase, a sus elementos se les asigna el valor null.
El lenguaje C permite el uso de matrices, es decir, arrays bidimensionales. En general, todo lo que vamos a estudiar en esta sección se puede extrapolar a arrays incluso n-dimensionales (o tensores), aunque en la práctica el uso de arrays con más de 2 dimensiones no es muy común. La declaración de una matriz o array bidimensional es:
tipo variable_matriz[N][M];
Donde N y M son el número de filas y de columnas respectivamente (la dimensión de la matriz). Se ha escrito la dimensión con letras mayúsculas, ya que deben ser constantes, y al igual que con vectores se suelen definir con constantes, por ejemplo:
#define N 4 //número de filas de las matrices que voy a declarar
#define M 5 //número de columnas de las matrices que voy a declarar
main()
{
double matriz1[N][M], matriz2[N][M];
int matriz_entera[N][M];
...
}
Al igual que con vectores, las matrices se numeran empezando por el índice 0, con lo cual el elemento superior izquierdo es el [0][0] y el inferior derecho es el [N-1][M-1]. En la siguiente tabla se muestra cual sería la forma y los elementos de una matriz a[4][5], de tamaño 4×5. Véase que el primer elemento del array bidimensional es el a[0][0], el siguiente sería el a[0][1], y así, hasta llegar al elemento a[3][4].
Matriz bidimensional Elemento en Índice de columna
0 1 2 3 4
Índice de fila 0 a[0][0] a[0][1] a[0][2] a[0][3] a[0][4]
1 a[1][0] a[1][1] a[1][2] a[1][3] a[0][4]
2 a[2][0] a[2][1] a[2][2] a[2][3] a[0][4]
3 a[3][0] a[3][1] a[3][2] a[3][3] a[0][4]
Por otra parte, en lenguaje C las matrices se almacenan en memoria "por filas", es decir, los elementos de la fila primera (de índice 0) van consecutivos y cuando acaba el último de la primera fila empieza a almacenarse el primero de la segunda, y así sucesivamente hasta llegar a la última fila. La Figura 4.4 muestra como estaría almacenada en la memoria la matriz anterior a[4][5]. Hay que aclarar que algunos lenguajes de programación (FORTRAN) utilizan el convenio contrario, es decir, almacenan las matrices por columnas.
Distribución de una matriz bidimensional en memoria Fila 0 1 2 3
En memoria a[0][0] a[0][1] a[0][2] a[0][3] a[1][0] a[1][1] a[1][2] a[1][3] a[2][0] a[2][1] a[2][2] a[2][3] a[3][0] a[3][1] a[3][2] a[3][3]
Aunque se puede trabajar con elementos por separado de una matriz, lo habitual es hacer operaciones matriciales con todos los elementos en conjunto. Al igual que no existen operadores vectoriales en lenguaje C, no existen tampoco operadores matriciales, de manera que tales operaciones hay que realizarlas con bucles. Como ya vimos, el anidamiento de bucles permite el recorrido completo de un array bidimensional o matriz, y tal recorrido puede hacerse por filas o por columnas.
...