Arreglos
20-Feb-2006
Arreglos.
¿Qué veremos de los arreglos?
• Que son
• Como declararlo
• Como acceder a los elementos
• Como modificar el tamaño
• Como remover todos los elementos
Hemos visto como es una variable de un tipo de dato.
Que harías si te gustaría tener muchos valores de un mismo tipo guardados tan compactos como sea posible y tener el mismo nombre y algunos esquemas de índices que te permitan identificar cualquier valor? La respuesta es muy sencilla: tendrías un arreglo.
Por ejemplo consideremos que necesitas manejar cinco cuentas, darle nombre a cada una de las cuentas. Podrías declarar una variable por cada una de las cuentas que va a contener cada uno de los balances para esa cuenta, como en el siguiente ejemplo.
Dim balance1 As Decimal
Dim balance2 As Decimal
Dim balance3 As Decimal
Dim balance4 As Decimal
Dim balance5 As Decimal
O podrías usar un arreglo de cinco cuentas de balance- En este caso un arreglo de cinco valores Decimales. Un arreglo es un tipo de dato que puede contener mas de un valor de un tipo de dato dado. Estos valores son llamados elementos de un arreglo (elementos) y son del mismo tipo de datos (especificado en la declaración del arreglo). Puedes pensar en un arreglo como una lista de elementos, cada elemento en la lista es un elemento de un arreglo. Declararemos un arreglo de la siguiente manera:
Dim balance(4) As Decimal
Este enunciado va a hacer algo muy similar que en la declaración de 5 variables del tipo Decimal. Va a reservar memoria para cinco valores de tipo Decimal. La manera de acceder a estos valores es ligeramente diferente, como veremos a continuación. El número entre paréntesis después de la declaración de la variable del arreglo balance es conocido como el limite superior de un arreglo (array upper Bound), y representa el numero de valores en el arreglo, mas uno. La manera de acceder a cualquier valor en el arreglo que uses, es a traves de un índice. El índice (index) de un elemento de un arreglo es la posición actual de ese elemento en el arreglo. El primer elemento en el arreglo se encuentra en la posición 0. El siguiente se encuentra en la posición 1, y así los siguientes hasta la posición límite superior del arreglo -1, donde el tamaño del arreglo es el tamaño declarado en la declaración del arreglo. Echemos un vistazo en el siguiente ejemplo:
Dim balance(4) As Decimal
balance (0) = 100
balance(4) = 250
El primer enunciado declara un arreglo de Decimales que tiene cinco elementos (índice del 0 al 4). El siguiente enunciado es la asignación literal de un valor 100 al primer elemento del arreglo. El último enunciado le asigna el valor de 250 al último elemento del arreglo. Note la manera individual de acceder a un elemento del arreglo es indicándolo entre paréntesis al índice. balance(0) va a representar el primer elemento en el arreglo, mientras balance(4) va a representar el último elemento en el arreglo. Si tuvieras que acceder a un elemento que no esta en el arreglo –digamos elemento 7, como elemento 6, recibirías un excepción de ejecución (runtime exception) y el programa terminaría. Este tipo de excepción es conocida como excepción de acceso de un arreglo fuera de límite.
Los valores en cualquier índice dado en un arreglo pueden ser usados como una expresión, lo mismo que cualquier otra variable regular. En realidad son (desde cualquier punto de vista del compilador) solamente una variable regular, solamente la notación es diferente. Por ejemplo:
Dim balance(4) As Decimal
blance(0) = 100
Dim b As Bolean
B= balance(0) <=250
Este código va a crear un arreglo de cinco Decimales, le asignará un valor al primer elemento del arreglo a 100, y luego va a declarar una variable Boolean y se lo asignará al resultado de evaluar una expresión lógica. La expresión lógica compara el valor del elemento del arreglo en la posición 0 (al que se le asigno 100) al valor literal de 250. En una forma similar podrías utilizar elementos de un arreglo en cualquier tipo de expresión.
Hemos visto que las variables regulares pueden ser inicializadas cuando son declaradas. ¿Podremos hacer lo mismo con los arreglos? La respuesta es si y el ejemplo siguiente nos ilustra como hacerlo. Crea un proyecto de consola y nombralo EjemplodeArreglo. Después introduce el siguiente código.
Sub Main ()
Dim balance() As Decimal = {100, 200, 300, 400, 250}
Console.WriteLine(“El valor en el arreglo elemento 0 es {0}”, balance(0))
Console.WriteLine(“El valor en el arreglo elemento 1 es {0}”, balance(1))
Console.WriteLine(“El valor en el arreglo elemento 2 es {0}”, balance(2))
Console.WriteLine(“El valor en el arreglo elemento 3 es {0}”, balance(3))
Console.WriteLine(“El valor en el arreglo elemento 4 es {0}”, balance(4))
Dim b As Bolean
B= balance (0) <= 500
Console.WriteLine (“El valor b es {0}”, b)
Console.WriteLine(“Presiona
Console.ReadLine()
End Sub
Note por favor la primer línea, la cual es la declaración y el enunciado de inicialización para el arreglo. La primer diferencia que ves es que no hay tamaño de arreglo especificado entre paréntesis (pero los paréntesis están presentes). Después, es facil ver el código de inicialización siguiéndole el signo de =. El arreglo es inicializado usando un set de valores literales del tipo apropiado, delimitado por llaves abiertas y cerradas. Las comas son necesarias para delimitar cualquier elemento del arreglo de otro. El compilador conoce exactamente cuantos elementos se encuentran en los valores de inicialización valores literales (estos son los valores entre { y } las llaves), no necesita de un tamaño para los arreglos que son inicializados como se muestra. Es en realidad un error de sintaxis proveer de un tamaño, y el IDE (Integrated Development Enviroment = Ambiente de Desarrollo Integrado) y el compilador lo administrara apropiadamente.
Es necesario algunas veces conocer cual es el tamaño del arreglo que vas a necesitar. Algunas veces es determinado en ejecución (runtime). Esto implica que necesitas la capacidad de declarar un arreglo vacio (o placeholder) y luego inicializarlo cuando sepas que tamaño del arreglo es. Esto es llamado inicialización dinámica de un arreglo. Nuestro ejemplo puede ser modificado para ilustrar como usar un arreglo.
Sub Main ()
Dim balance () As Decimal
Balance = New Decimal(4) {100, 200, 400, 250} Console.WriteLine(“El valor en el arreglo elemento 0 es {0}”, balance(0))
Console.WriteLine(“El valor en el arreglo elemento 1 es {0}”, balance(1))
Console.WriteLine(“El valor en el arreglo elemento 2 es {0}”, balance(2))
Console.WriteLine(“El valor en el arreglo elemento 3 es {0}”, balance(3))
Console.WriteLine(“El valor en el arreglo elemento 4 es {0}”, balance(4))
Dim b As Bolean
B= balance (0) <= 500
Console.WriteLine (“El valor b es {0}”, b)
Console.WriteLine(“Presiona
Console.ReadLine()
End Sub
Como puedes ver las modificaciones son menores; se ha removido el código de inicialización de la línea de declaración del arreglo, y se le ha añadido una línea que le asigna un nuevo arreglo de cinco valores Decimales (especificados entre las llaves {}) a la variable del arreglo del balance. Si no conocieras los valores para el nuevo arreglo podrías usar algo como:
Balance = New Decimal (n) {}
Donde n es el limite superior del nuevo arreglo (y puede ser una variable), mientras que las llaves vacías son necesarias para indicar que es un arreglo que se esta construyendo. Note también la palabra New que es usado en la declaración de objetos y clases.
Bibliografía: Visual Basic .Net By Example
páginas (119-125)