viernes, 1 de junio de 2012

Matrices, arrays, conjuntos.


Cuando tenemos un grupo de variables que pueden ser muy numerosas y van a
almacenar el mismo tipo de dato,es mejor usar la posibilidad de Matrices.

Matrices,arrays en ingles. Y lo mas simple de entender. Es un conjunto de
valores con algo en común.

Supongamos que tenemos una lista de nombres.
Y vamos creando variables según las necesitamos para almacenar mas nombres.

DIM Nombre1 AS STRING
DIM Nombre2 AS STRING
….
DIM NombreX AS STRING

Entonces la cantidad de variables es grande.
Tenemos dos tipos de Matrices en Gambas.
Podemos definir el número de elementos de un array si conocemos de antemano
su tamaño o que sea dinámico, en el cual vamos añadiendo valores según lo necesitamos.

La manera de crear ambos tipos es la siguiente:
Recordar que en Gambas, el primer índice es el 0 en las matrices.

DIM Nombres AS NEW STRING[10] 'Declaramos un array con un tamaño definido.

DIM Nombres AS NEW STRING[] 'Declaramos un array dinámico


Podemos llenar el array de diferentes maneras.

Nombres[0]=”Juan”
Nombres[1]=”Maria”
Nombres[2]=”Antonio”
Nombres[3]=”Luisa”

O también de esta manera:

Nombres.Add(“Juan”)
Nombres.Add(“Maria”)
…..
Nombres.Add(“Luis”)

En el caso de que hemos definido el tamaño de las dimensiones como en el ejemplo.
Su primer índice es el 0 y el ultimo es el 9.

En el dinámico hacemos lo mismo, pero no hay un tamaño determinado.

Con un array dinámico podemos hacer esto directamente:

DIM Nombres AS STRING[]=[“Juan”,”Lucia”,”Antonio”]

Ahorrándonos números de lineas.

Los arrays dinámicos solo son de una dimensión.
Los otros pueden tener mas de una dimensión.


Imaginar que tenemos un grupo de ciudades y sus temperaturas.
Podíamos hacer dos arrays o uno solo.

Ejemplo con dos.

DIM ciudades AS NEW STRING[10]
DIM temperaturas AS NEW FLOAT[10] 'A lo mejor es un tamaño algo grande de variable.

Así en una almacenaríamos la ciudad y la temperatura en la otra.

¿ Como podríamos hacerlo con un solo array de dos dimensiones ?.

DIM CiudadTemp AS NEW STRING[2,10]

Usaríamos el primer índice para el nombre de la ciudad y el siguiente índice para la temperatura.
(Las temperaturas son ficticias). Recordar que el índice del primer elemento es 0 y el ultimo
en este caso es 9.

CiudadTemp[0,0]=”Madrid”
CiudadTemp[1,0]=”28º”

CiudadTemp[0,1]=”Córdoba”
CiudadTemp[1,1]=”30º”

CiudadTemp[0,2]=”Cádiz”
CiudadTemp[1,2]=”28º”



1 comentario: