Un arreglo bidimensional es un conjunto de n elementos del mismo tipo almacenados en memoria contigua en una matriz o tabla. A diferencia de los arreglos unidimensionales que solo requieren de un sub-indice, los arreglos bidimensionales para acceder a cada elemento del arreglo requieren de dos indices declarados en dos pares de corchetes, donde el primer corchete se refiere al tamaño de filas y el segundo al tamaño de las columnas.
Para declarar una matriz/tabla de 3 filas y 5 columnas se procede de la siguiente forma:
tipo_dato identificador_arreglo [tam_fila] [tam_columna] ;
int matriz [3] [5] ;
donde:
tipo_dato es el tipo de dato de la matriz
identificador_arreglo es el nombre de la matriz
tam_fila es el numero total de filas en la matriz
tam_columna es el numero total de columnas de la matriz
Inicializacion de matrices
En el momento de declarar el arreglo, se pueden especificar valores.
tipo_dato identificador_arreglo [tam_fila] [tam_columna] = { valores } ;
int matriz [3] [3] = { 1,2,3,4,5,6,7,8,9 } ;
Lectura en impresión de matrices
Para la lectura de datos, la computadora requiere de dos ciclos anidados (para ubicar la fila y la columna) y la instrucción leer scanf o leercad gets, almacenando con ello los valores en cada celda de la tabla o matriz.
En el siguiente ejemplo, se muestra como se pueden almacenar datos en una matriz de nombre mat de 3 filas y 4 columnas, se utiliza la instrucción leer scanf para guardar o leer los datos recibidos:
for ( z = 0 ; z < 3 ; z ++ ) --------------------------- Recorre cada fila z
for ( h = 0 ; h < 4 ; h ++ )------------------------ Recorre cada columna h
scanf ("%d", &mat[z][h]);--------------------Lee y almacena los datos en fila y columna
Cuando existen dos ciclos anidados, primero se inicializa el ciclo de fuera, posteriormente realiza el que se encuentra dentro y hasta que termine con el regresa al ciclo de fuera, en este caso, primero inicia el ciclo "z" y hasta que termina con todas las columnas "h" de la fila #0 y continua con la fila #1, iniciando de nuevo con la columna (h = 0).
En el siguiente ejemplo, se muestra como se pueden imprimir los datos almacenados en una matriz llamada mat de 3 filas y 4 columnas. Se utiliza la instrucción imprimir (printf) para escribir o mostrar el resultado:
for ( z = 0 ; z < 3 ; z ++ ) --------------------------- Recorre cada fila z
for ( h = 0 ; h < 4 ; h ++ )------------------------ Recorre cada columna h
printf ("%d", mat[z][h]); ------------------------ Imprime el valor recogido en el ejemplo siguiente
El ciclo desde (for) es equivalente a los enunciados de asignación siguientes:
Modificación de un elemento de una matriz
Los elementos de una matriz se pueden modificar en cualquier momento durante la ejecución del programa, solo es necesario especificar el nombre del arreglo bidimensional (matriz), la posición del elemento que deseamos modificar y el nuevo valor que tomará. A continuación se muestra un ejemplo modificando el valor de un elemento de una matriz:
tipo_dato identif_arre [fila][columna] = nuevo_valor;
int mat [2][4]= 7;
Donde:
- nuevo_valor es un dato o el resultado de una llamada a función o de alguna operación lógica o aritmética. En este ejemplo, se modifica el valor de elemento de la segunda fila y la cuarta columna a 7.
int z [4][4] ;
for (j=0 ; j<4 ; j++)
a[2][j]= 5 ;
- z[2][0] = 5
- z [2][1] = 5
- z [2][2] = 5
- z [2][3] = 5
No hay comentarios:
Publicar un comentario