Apúntate...


Consultas, desarrollo de programas y petición de presupuestos:

jueves, 23 de agosto de 2012

Arreglos, Arrays, Vectores, Matrices


Arreglos de una dimension

Los arreglos de una dimensión, también llamados vectores, o arrays , es
"es un tipo de dato estructurado que permite guardar colecciones de elementos del mismo tipo, donde los elementos del arreglo se enumeran consecutivamente 0,1,2,3,…"


Vamos a poner un ejemplo para explicártelo... imagina el nombre de los alumnos de una clase, que lo tienes que poner en un programa. Podíamos hacerlo así:
alumno_primero=”Julio”
alumno_segundo=”Jesus”
alumno_tercero=”Maria”
alumno_cuarto=”Eva”


Como ves, tenemos los nombres de los alumnos los asociamos  al nombre de una variable.
El problema nos viene al intentar hacer cosas con ellas, por ejemplo escribir una lista los nombres:

print alumno_primero,alumno_segundo,alumno_tercero,alumno_cuarto
 
¿Y si fueran cientos de alumnos? Seria imposible poderlo hacerlo asi...


¿que podemos usar entonces? Pues para eso tenemos los arreglos
Imagina que tienes una tabla de una columna por muchas filas, llamada “alumno”,
 Las filas de la tabla , las vamos a enumerar.
Se enumeran empezando por el numero 0 (ver nota), que seria la fila que contiene el dato "Julio". La fila 1, seria el dato "Jesus", y asi sucesivamente....

Fíjate como quedaría:


Ahora,  el arreglo lo usamos asi: Alumno[ numero_indice ], indicando en el numero_indice la fila. Llamamos “indice” del arreglo, al nº de fila.
 
Para ver el dato de una fila concreta, podemos poner Alumno[2], y veríamos el nombre del alumnos
print Alumno[2] -> equivale a ->print Alumno_tercero


Es un poco más fácil que usar nombre como _primero, _segundo, ¿verdad?

Además tiene otras ventajas, una de ellas es que podemos operar muy facilmente con bucles (por ejemplo el for next) para manejarlo.

Vamos a escribir la lista de alumnos, usando arreglos:

for a=0 to 3
print alumnos[a]
next

Fíjate lo fácil que es... incluso si fueran cientos de alumnos, podiamos usar este mismo bucle, cambiando unicamente el 3, por el numero de alumnos menos 1, (ya que empezamos por el 0 )

Notas:
¿por que empiezo por a=0? Los arreglos (en Gambas y en otros lenguajes de programación) siempre empieza por la fila “0”. Osea, para ver el 1º elemento, escribimos Alumnos[0], para ver el 2º elemento ponemos Alumnos[1], y asi...esto hay que tenerlo en cuenta en nuestros programas !!!.

Declaracion de arreglos:
Al igual que con cualquier tipo de variable, se debe declarar un arreglo antes de utilizarlo, Para declarar un arreglo se utiliza las siguiente sintaxis:
Public/Private/Dim nombre AS New tipo_dato[tamaño] ‘ para una dimension 

Para arreglos de varias dimensión (normalmente llamadas matrices):
Public/Private/Dim nombre AS New tipo_dato[tamaño1,tamaño2] ‘ para dos dimensiones,

Public/Private/Dim nombre AS New tipo_dato[tamaño1,tamaño2,tamaño3,....] ‘ para dos dimensiones,
Se pueden declarar hasta 8 dimensiones...
 
Donde tipo_dato es el tipo de los datos que almacenará el arreglo.
Es importante mencionar que se pueden declarar arreglos de los tipos primitivos de Gambas(integer, float, …), o bien de tipos definidos por el usuario (estructuras, clases).
Tamaño representa la cantidad de casillas que se reservan para el arreglo. En Gambas todos los arreglos empiezan en el subíndice 0 y llegan al subíndice tamaño-1.
Por ejemplo:
dim arr as new integer[6] ‘ arreglo de 6 elementos enteros, los subíndices van del 0 al 5
dim alumnos as new string[6] ‘ arreglo de 6 elementos de cadenas de caracteres
dim tabla2d as new float[40,100] ' esto seria una matriz de 40 filas por 100 columnas
Es importante distinqueir que los arreglos usan corchetes “[“ “]” y no parentecis “(“ ”)” , no confundir a la hora de definirlos y usarlos...
Si intentas acceder a un arreglo con parentesis, el programa interpreta que es una función lo que estamos usando, y dará un error.

Ejemplo:

Dim tabla As New Float[10, 20]
tabla[0, 2] = 34.34
Print tabla[0, 2]



Enlace a la documentación oficial:
http://gambaswiki.org/wiki/lang/arraydecl?l=es





No hay comentarios:

Publicar un comentario

A falta de donativos... un poco de publicidad