Unidad 34. Arrays en VB (I)





34.1. Objetivos del tema.

Hecha la introducción a los arrays en el tema anterior, toca ahora su visión desde VB, las distintas acciones que se pueden llevar a cabo con ellos y su utilización.

34.2. Introducción.

Los arrays, también se pueden conocer como vectores, cuando son de una sola dimensión y como matrices cuando son de más de una dimensión.

 

 

El ejemplo superior es un vector de 7 elementos, un array de una dimensión.

El ejemplo lateral, es una matriz de dos dimensiones,   3 x 3, un array de dos dimensiones.

 

Hasta ahora en las estructuras de datos hemos visto que utilizamos variables para almacenar cada uno de los datos que se utilizan en un programa.

 

Pero en algunas ocasiones, en un programa es necesario guardar muchos datos que en su conjunto pueden tener el mismo nombre, por ejemplo podríamos guardar el nombre de un mes, y podríamos llamar a la variable NombreMes, pero también tenemos que tener presente que para asignarle el nombre, tendríamos que hacer antes un sin fin de sentencias condicionales hasta localizar la que coincida el nombre del mes con el de la fecha.

 

if mes = 1 then

  nombremes = ”Enero”

 else if mes = 2 then

  nombremes = ”Febrero”

‘    ... / ...

 

o bien

 

 Select Case Mes

   Case 1

     nombremes = "Enero"

   case 2

     nombremes = "Febrero"

   case 3

     nombremes = "Marzo"

‘     ... / ...

 End Select

 

Por supuesto es válido, porque funciona, pero existe una alternativa mucho más cómoda a la solución anterior, y es crear un array de doce elementos en el que almacenamos el nombre de todos los meses y luego para hacer referencia al que nos interesa utilizamos la variable del ejemplo anterior como índice, y quedaría algo parecido a lo siguiente.

 

 ' Declaración e inicialización del vector con los

 ' nombres de los meses, de tipo string

 Dim Meses() As String = {"Enero", "Febrero", "Marzo", _

                           "Abril", "Mayo", "Junio", _

                           "Julio", "Agosto", "Septiembre", _

                           "Octubre", "Noviembre", "Diciembre"}     

 Dim mes as Integer = 1

 Console.writeln(NomMeses[mes])  

 

Y si probamos éste ejemplo, veremos como el resultado es que el mes es Febrero, sí, porque la primera posición del array es cero y es el mes de Enero, y al índice  que es  la variable “mes”, le hemos dado el valor uno, que es la posición del mes de “Febrero”.

 

Los arrays son direccionables, no hay que buscar un elemento para utilizarlo, si es que conoces su dirección, por el contrario, en según que acciones son mucho más lentos que las listas.

Las listas no son direccionables, para utilizar un elemento hay que llegar a él, hay que buscarlo.

Las listas son unas estructuras dinámicas en cuanto a su tamaño, los arrays por principio no, aunque en muchos lenguajes se dispone de instrucciones para cambiar su tamaño en tiempo de ejecución.

En cuanto a la discrepancia entre listas o arrays, es una historia absurda, lo adecuado es tener claro el funcionamiento de ambas estructuras y utilizarlas cada una en el momento adecuado, pero para ello hay que tener un criterio abierto, o  no hay que cerrarse en banda, igual que con los lenguajes de programación.

Pero si que hay que tener claro que no tiene sentido implementar una lista con un array.

34.3. Declaración

Cuando declaramos un vector

 

Dim V(11) as String

 

Este vector tiene en realidad doce elementos, que van desde el cero hasta el once, en total doce.

 

Hay varias formas de declarar un vector en VB.

 

Podemos declararlo de forma estática.

Podemos declarar e inicializar.

Podemos declarar de forma dinámica.

1    Declaración estática.

La declaración estática es la de siempre.

 

Dim Meses(11) as String

 

Meses(0) = "Enero"

Meses(1) = "Febrero"

Meses(2) = "Marzo"   .. / ..      

 

Pero si se ha de cargar dentro del programa con datos, no tiene sentido.

Si se carga después desde un archivo o por teclado, si.

2    Declaración estática inicializada.

 

  ' Declaración e inicialización del vector con los

  ' nombres de los meses, de tipo string

  Dim Meses() As String = {"Enero", "Febrero", "Marzo", _

                           "Abril", "Mayo", "Junio", _

                           "Julio", "Agosto", "Septiembre", _

                           "Octubre", "Noviembre", "Diciembre"}   

 

3    Declaración dinámica.

Para cuando la dimensión del array depende de la ejecución del programa.

 

Module Ejemplo

  Sub Main()

      Dim Valor As String

    ‘ Declaración e inicialización

    Dim Meses() As String = {"Enero", "Febrero", "Marzo", _

                             "Abril", "Mayo", "Junio", _

                             "Julio", "Agosto", "Septiembre", _

                             "Octubre", "Noviembre", "Diciembre"}

 

   ‘ Declaración dinámica

    Dim OtrosMeses() As String

 

    ‘ En esta línea nos dará Nothing, no hay asignación todavía

    Console.WriteLine("Tipo del vector {0} ", TypeName(OtrosMeses))

 

    ‘ Asignación de dimensión

    ReDim Otrosmeses(Meses.GetUpperBound(0))

 

    ‘ Aquí el resultado será String

    Console.WriteLine("Tipo del vector {0} ", TypeName(OtrosMeses))

       

    Console.WriteLine("Visualizamos el contenido ")

 

    ‘ Copia de meses sobre otros meses

    Meses.CopyTo(OtrosMeses, 0)

   

    ‘ Visualización del vector

    For Each Valor In OtrosMeses

      Console.WriteLine(Valor)

    Next

 

    Console.WriteLine("Elementos del vector {0} ", OtrosMeses.GetLength(0))

    Console.WriteLine("Primer índice {0} ", OtrosMeses.GetLowerBound(0))

    Console.WriteLine("Ultimo índice {0} ", OtrosMeses.GetUpperBound(0))

    Console.WriteLine("Visualizamos el contenido ")

    Console.ReadLine() 

  End Sub

End Module

Octubre-2010
Pág. 34.1

Atrás  Inicio  Adelante






Página inicial  Cursos Informática Gratuitos

Síguenos en:   Facebook       Sobre aulaClic            Política de Cookies