jueves, 27 de noviembre de 2008

1.- ARRAYS

Un array permite referirse a una serie de elementos de un mismo tipo con un mismo nombre, haciendo referencia a un único elemento de la serie utilizando uno o más índices, como un vector o una matriz.

En Visual Basic se permiten definir arrays de variables de una o más dimensiones (hasta 60) y de cualquier tipo de datos. Además tiene la clase de arrays de controles (arrays de botones, de etiquetas, de paneles).

Los elementos de un array deben ser del mismo tipo y están almacenados de forma contigua en la memoria. Si el arrary es de tipo Variant cada elemento puede contener un dato de tipo diferente, e incluso puede contener otro array.

Entre los arrays de variables existen:

Arrays Estáticos: Su dimensión es siempre la misma y su declaración dependerá siempre de su ambito.

- La declaración de un array público se hace en la sección de declaraciones de un módulo utilizando la sentencia Public.

      Public cadena(1 To 12) As String
Este ejemplo declara un array de una dimensión, cadena, con doce elementos , cada uno de los cuales permite almacenar una cadena de caracteres.

- La declaración de un array a nivel del módulo o del formulario se hace en la sección de declaraciones del módulo o del formulario utilizando la sentencia Dim o Private.
      Dim vector (19) As Double
En este ejemplo se declara un array de una dimensión, llamado vector, con veinte elementos vector(0), vector(1),…,vector(19), cada uno de los cuales permite almacenar un Double.

La declaración de los arrays estáticos es bastante cómoda y se declaran una sola vez. Sin embargo tienen el inconveniente que en la mayoría de los casos están sobredimensionados y utilizan más memoria de la que realmente necesitan.

Arrays Dinámico: Su dimensión se puede modificar durante la ejecución del programa, este tipo de array puede ser redimensionado en cualquier momento de la ejecución. La mejor forma de redimensionar los arrays es mediante variables que contienen los valores adecuados.

Para crear un array dinámico primero hay que declararlo como si fuera un array estático, pero sin darle dimensión. Es decir se deja la lista entre paréntesis vacía sin ponerle ningún número y con la sentencia Public, si se quiere que sea global con Dim o Private.

Para asignar el número actual de elementos se utiliza la sentencia ReDim, esta sentencia puede aparecer solamente en un procedimiento y permite cambiar el número de elementos del array y sus límites inferior y superior, pero no el número de dimensiones, es decir, no se puede transformar un vector en una matriz.

Ejemplo:

Si se declara el array Matriz a nivel del formulario,
      Dim Matriz ( ) As Integer
Y luego en un procedimiento Calculo puede asignar espacio para el array:
       Sub Calculo ( )
….
ReDim Matriz(F, C)
….
End Sub
Cada vez que se ejecuta la sentencia ReDim, todos los valores almacenados en el array se pierden. Cuando se desee cambiar el tamaño del array conservando los valores del array, hay que ejecutar ReDim con la palabra Preserve.

      ReDim Preserve Matriz(F, C)

No hay comentarios: