Bienvenidos sean a este post, hoy veremos una variante de los arrays.
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]
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]
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];
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;
}
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$
Estos valores si tuvieramos que hacer una comparacion sera similar a una tabla, a continuacion veremos como seria esta tabla:
| Dim 1 \ Dim 2 | pos 0 | pos 1 | pos 2 |
| pos 0 | 0 | 100 | 200 |
| pos 1 | 0 | 101 | 202 |
| pos 2 | 0 | 102 | 204 |
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.
Nota: Para el caso de las cadenas lo veremos mas adelante porque es bastante particular
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.


Donación
Es para mantenimento del sitio, gracias!
$1.50
