Anuncios

Bienvenidos sean a este post, hoy veremos una variante de los arrays.

Anuncios

En el post anterior vimos a los arrays pero algo que no mencionamos es que tambien se los denomina arrays unidimensionales, porque solo almacenan una posicion, los multidimensionales nos permiten almacenar mas de una dimension, por ejemplo un array de dos dimensiones se lo denomina bidimensional, un ejemplo seria el siguiente:

valores[0][1]
Anuncios

Como pueden ver simplemente pasamos otra posicion que representa a la segunda dimension, vamos a ver como es un array tridimensional:

valores[0][1][0]
Anuncios

Como pueden ver simplemente agregamos una nueva posicion para cada dimension que agreguemos al array, por lo tanto siempre sera:

tipo_dato nombre[d1][d2][d3]...[dN];
Anuncios

Donde por cada dimension debemos informar el tamaño, con todo esto comentado vamos a aplicar un ejemplo para ver como trabaja realmente, para este caso usaremos un array bidimensional, crearemos un nuevo archivo que llamaremos ejemplo09.c y le agregaremos el siguiente codigo:

ejemplo09.c

#include <stdio.h>

int main()
{
	int valores[3][3];

	int valor=100;

	for(int i=0; i < 3; i++)
	{
		for(int j=0; j < 3; j++)
		{
			valores[i][j] = (valor + i) * j;
		}
	}

	for(int i=0; i < 3; i++)
	{
		for(int j=0; j < 3; j++)
		{
			printf("Valor[%i][%i]: %i\n", i, j, valores[i][j]);
		}
	}

	return 0;
}
Anuncios
Anuncios

En nuestro codigo lo primero sera definir un array bidimensional, en este caso almacenaremos tres valores por cada dimension, lo siguiente sera definir una nueva variable con un valor, el siguiente paso sera un bucle donde contaremos hasta tres, luego anidaremos otro bucle que hara lo mismo, en ambos usaremos dos variables distintas, cada una sera para cada dimension del array siendo el primer bucle para la primera dimension y el otro para la segunda, en ella almacenaremos un valor de la operacion entre la variable definida en conjunto con i y j, una vez finalizado el bucle haremos exactamente lo mismo pero para mostrar el contenido de cada posicion en el array, observen como volvemos a utilizar lo mismo, de paso aprovechamos en el printf para mostrar correctamente cual valor esta relacionado a la posicion, compilemos y veamos como es su salida:

tinchicus@dbn001vrt:~/lenguajes/C$ ./prog/ejemplo09 
Valor[0][0]: 0
Valor[0][1]: 100
Valor[0][2]: 200
Valor[1][0]: 0
Valor[1][1]: 101
Valor[1][2]: 202
Valor[2][0]: 0
Valor[2][1]: 102
Valor[2][2]: 204
tinchicus@dbn001vrt:~/lenguajes/C$
Anuncios

Estos valores si tuvieramos que hacer una comparacion sera similar a una tabla, a continuacion veremos como seria esta tabla:

Dim 1 \ Dim 2pos 0pos 1pos 2
pos 00100200
pos 10101202
pos 20102204
Anuncios
Anuncios

Si observan la tabla, la primera dimension coincidira con las filas, la segunda dimension correspondera a cada columna, en la practica podriamos almacenar informacion correspondiente a un usuario en cada columna y los usuarios serian las filas, con un array tridimensional se agregaria un campo mas que no deja de ser otro cardinal mas para almacenar informacion, por ejemplo podriamos tener un personaje de un juego donde almacenariamos los tres ejes (x, y, z) para ubicarlo en el mapa, mientras mas complejo sea mas dimensiones necesitaran pero en la vida real es raro que vayan mas alla del tridimensional y donde el bidimensional y unidimensional seran los mas utilizados pero no quita que puedan necesitar crear arrays mas alla del tridimensional.

Anuncios
Nota: 
Para el caso de las cadenas lo veremos mas adelante porque es bastante particular
Anuncios

En resumen, hoy hemos visto array multidimensionales, que son, como se componen, para que nos pueden ser utiles, como se definen, como recuperar su informacion y algunas equivalencias de como almacena la informacion, espero les haya sido de utilidad sigueme en tumblr, Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Anuncios

Donación

Es para mantenimento del sitio, gracias!

$1.50