Está en la página 1de 7

CAPITULO: ARREGLOS BIDIMENSIONALES

Definición:

A) Un arreglo bidimensional es un arreglo de arreglos unidimensionales.


Constituyen la forma más simple de los arreglos multidimensionales.

B) Un arreglo bidimensional sigue siendo un arreglo, pero ahora en dos dimensiones,


denominadas filas y columnas, esto significa que sigue siendo una variable que permite
almacenar un conjunto de datos es una estructura, es decir es un conjunto de variables
que se citan y manejan con un mismo nombre, y que permite además ...

+
CAPITULO: ARREGLOS
Definición de arreglo de datos:

Un arreglo es un conjunto de elementos del mismo tipo agrupados en una sola variable.
Para ingresar a un elemento en particular, utilizamos un índice y se almacenan en
memoria continua.

Existen 3 tipos de arreglos:

a) Unidimensionales(vectores),
b) Bidimensionales (tablas o matrices) y
c) Tridimensionales(multidimensionales).

Su uso más común es en la implementación de cadenas de caracteres. Recuerda que en


C no existen variables de tipo cadena por lo cual se utiliza un arreglo de caracteres.

Físicamente, un arreglo es un conjunto de localidades de memoria contiguas donde la


dirección más baja corresponde al primer elemento y la dirección más alta al último. En un
arreglo de n elementos, éstos ocuparan desde la casilla 0 hasta la n-1. Por si mismo, el
nombre del arreglo apunta a la dirección del primer elemento del arreglo.
ARREGLOS BIDIMENSIONALES (CARACTERISTICAS):

Un arreglo bidimensional es un arreglo de arreglos unidimensionales. Constituyen


la forma más simple de los arreglos multidimensionales.

Su forma general de declaración es

tipo_dato variable[primer índice][segundo índice];

El primer índice corresponde a las filas y el segundo a las columnas.

Cuando se utiliza un arreglo bidimensional como argumento de una función,


realmente se pasa sólo la dirección del primer elemento (el[0][0]). Sin embargo, la función
que recibe un arreglo bidimensional como parámetro tiene que definir al menos la longitud
de la segunda dimensión. Esto es necesario debido a que el compilador de C necesita
"conocer" la longitud de cada fila para ordenar el arreglo correctamente.
Ejemplo: entero mat [3][4]

Entero tipo de dato


mat nombre de la variable que representa a todo el arreglo 3 tamaño
del arreglo en filas o renglones
4 tamaño del arreglo en columnas

0123
mat 0 52 85 26 49

1 24 47 48 53
2
35 15 36 24

Por ejemplo, una función que recibe un arreglo bidimensional de 5,9 se declara así:

funcion(intmatriz[5][9]) { Ejemplo
mat[1][3] = 53
. mat[2][0] = 35
. }

No es necesario especificar la primera dimensión, pero la segunda sí ya que el


compilador de C la necesita para saber dónde empieza la segunda fila.

También podemos utilizar arreglos bidimensionales para crear arreglos de cadenas. El


primer índice indicaría el número de cadenas y el segundo la longitud máxima de las
cadenas.

char mensajes[5][20];
En la declaración anterior se especifica que tenemos un arreglo llamado mensajes
el cual contiene 5 cadenas de 20 caracteres cada una.

Para acceder a una cadena en especial, sólo especificamos el número de cadena (de 0 al
número de cadenas menos 1). Ejemplo:

imprime(mensajes[3])

Aquí mandamos imprimir la cadena número 3 de la variable mensajes. Esto sería


equivalente a imprimir(mensajes[3][0]) aunque es más común utilizar la primera forma.

Otra forma de explicarlo:

Un arreglo es un conjunto de elementos del mismo tipo agrupados en una sola variable.
Para ingresar a un elemento en particular, utilizamos un índice y se almacenan en
memoria continua.

Existen arreglos unidimensionales (vectores), bidimensionales (tablas o matrices) y


tridimensionales.

ARREGLOS BIDIMENSIONALES (TABLAS O MATRICES):

Es un arreglo de R * C elementos organizados en dos dimensiones donde “R” es el


número de filas o reglones y “C” el número de columnas.
Para representar una matriz se necesita definir el tipo de dato a almacenar, un nombre de
matriz acompañado de dos índices. Ejemplo:

entero mat [R][C];


Donde: R indica el número de renglones y C indica el número de columnas, y nos define
la coordenada en la cual se encontrará almacenado el dato.

Representación gráfica de una matriz(coordenadas):

Fila o Renglón [R]


[C] 4,0 4,1 4,2 4,3 4,4
mat [R][C]

0,0 0,1, 0,2 0,3 0,4 Columna


1,0 1,1 1,2 1,3 1,4 2,0 2,1 2,2 2,3 2,4 3,0 3,1 [C]
3,2 3,3 3,4, [R]
Existen dos formas para el Llenado de una matriz y son:
• Por renglones

desde (R=0; R< = 4; R=R+1)


Inicia
desde (C=0; C< = 4; C=C+1)
Inicia

Leer mat [R][C]


Fin
Fin

• Por columnas

desde (C=0; C< = 4; C=C+1)


Inicia
desde (R=0; R< = 4; R=R+1)
Inicia

Leer mat [R][C]


Fin
Fin
Nota importante:
Para hacer el llenado de una matriz se deben de usar dos variables, una para cada
sub-índice y se utilizan 2 ciclos, uno para los renglones y otro para las columnas; a
estos ciclos se les llama ciclos anidados (un ciclo dentro de otro ciclo).

EJERCICIO RESUELTO 1;
LENGUAJE C:

Diseñar un algoritmo que llene e imprima una matriz de 2 renglones por 3 columnas.

//librerías
#include<stdlib.h>
#include<stdio.h>
#include<windows.h> // para utilizar la función de retardo Sleep();

/* Arreglos Bidimensionales (Matrices)


Tipos:
- Matrices de enteros **
- Matrices de flotantes **
- Matrices de caracteres **
*/
int main()
{
int tabla[2][3];
int i,j;

// matriz llenada por el usuario.


printf(“Llenado de la tabla 2 x 3: \n \n “);
for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
{
printf(“Ingresa el valor %: “, i,j); 2, 4, 6, 8, 10, 12 scanf("%d ",&tabla[i][j]);
}
printf("\n");
}
//Prueba de escritorio.

246
8 10 12

i 0, 1, 2 j 0, 1, 2, 3

printf(“Imprimir la tabla 2 x 3: \n \n “);

for(i=0;i<2;i++)
{
for(j=0;j<3;j++)
{ Sleep(600);

printf(“ \t %d “,tabla[i][j]);
}
printf("\n");
}
return 0;
}
Nota: para representarlo en seudocódigo solo hay que traducir los códigos a español.
EJERCICIO RESUELTO 2;

LENGUAJE C:

Diseñar un algoritmo que llene una matriz de 2 renglones por 3 columnas e imprima a,
b, c, d, e, f.

/* Arreglos Bidimensionales (Matrices)

- Matrices de enteros **
- Matrices de flotantes **
- Matrices de caracteres **
*/

#include<stdio.h>

int main(){
// matriz llenada previamente, justo cuando ha sido declarada. char tabla[2]
[3] = { {'a','b','c'} , {'d','e','f'} };
int i,j;

for(i=0;i<2;i++){
for(j=0;j<3;j++){
printf("%.c ",tabla[i][j]);
}
printf("\n");
}

return 0;
}
Nota: para representarlo en seudocódigo solo hay que traducir los códigos a español.

Representación de un arreglo en diagrama de flujo:

También podría gustarte