La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Programación en Visual Basic

Presentaciones similares


Presentación del tema: "Programación en Visual Basic"— Transcripción de la presentación:

1 Programación en Visual Basic
Lección #7: Arreglos Por Antonio F. Huertas

2 Contenido Arreglos Colecciones Estructuras Tipos de datos enumerados
Arreglos unidimensionales Areglos bidimensionales Uso de ReDim y ReDim Preserve para arreglos dinámicos Colecciones Colección ArrayList Colección SortedList Estructuras Tipos de datos enumerados

3 Arreglos Un arreglo es un conjunto de valores de la misma clase almacenados en memoria primaria. A cada valor en un arreglo se le llama elemento y se identifica usando el nombre del arreglo y su posición con respecto al inicio del arreglo (el índice). En Visual Basic .NET todos los arreglos comienzan en el índice 0.

4 Arreglos unidimensionales
Un arreglo unidimensional es una lista de valores de la misma clase. Declaración: Dim nombreArreglo(límiteSuperior) As tipoDatos Ej.: Dim list(5) As Integer Ej.: Dim list() As Integer = {1, 2, 3, 4, 5, 6} Se creó el arreglo unidimensional list con 6 elementos en los índices 0 al 5.

5 Arreglos unidimensionales (cont.)
Acceso directo al elemento en el índice 3 (en otras palabras, el cuarto elemento): Ej.: MsgBox(list(3)) Recorriendo el arreglo unidimensional secuencialmente: For n = 0 To 5 MsgBox("Index: " & n & vbTab & _ "Value: " & list(n)) Next

6 Arreglos bidimensionales
Un arreglo bidimensional es una tabla de valores de la misma clase. Declaración: Dim nombreArreglo(límiteSuperiorFilas, límiteSuperiorColumnas) As tipoDatos Ej.: Dim table(3, 1) As Integer Ej.: Dim table(,) As Integer = _ {{1, 2}, {3, 4}, {5, 6}, {7, 8}} Se creó el arreglo bidimensional table con 4 filas (índices 0 al 3) y 2 columnas (índices 0 a 1).

7 Arreglos bidimensionales (cont.)
Acceso directo al elemento en la fila con índice 2 y columna con índice 0: Ej.: MsgBox(table(2,0)) Recorriendo el arreglo bidimensional secuencialmente (para cada fila, se visitan todas las columnas de la fila): For r = 0 To 3 For c = 0 To 1 MsgBox("Row: " & r & " " & "Col: " & c & _ "Value: " & table(r, c)) Next

8 Uso de ReDim y ReDim Preserve para arreglos dinámicos
En Visual Basic .NET es posible crear arreglos dinámicos, o sea arreglos cuyo tamaño puede variar durante la ejecución del programa. Para manipular dinámicamente el tamaño de un arreglo se usan ReDim y ReDim Preserve. ReDim es útil para crear un arreglo dinámicamente: Dim list() As Integer Dim capacity As Integer capacity = Val(InputBox("Enter capacity of array:")) ReDim list(capacity – 1)

9 Uso de ReDim y ReDim Preserve para arreglos dinámicos (cont.)
Para cambiar el tamaño de un arreglo dinámicamente se usa normalmente ReDim Preserve (preserva el contenido): If size = capacity Then capacity = capacity * 1.5 ReDim Preserve list(capacity – 1) End If La instrucción ReDim Preserve es computacionalmente costosa ya que debe reservar una serie de localizaciones continuas de memoria y copiar los elementos del arreglo original a estas localizaciones.

10 Uso de ReDim y ReDim Preserve para arreglos dinámicos (cont.)
Una alternativa para recorrer los arreglos dinámicos secuencialmente es el uso de la función UBound(). La función UBound()devuelve el límite superior del arreglo. For n = 0 To UBound(list) MsgBox("Index: " & n & vbTab & _ "Value: " & list(n)) Next

11 Arreglos: otras consideraciones
A diferencia de las variables simples, los arreglos son referencias. El nombre del arreglo contiene la dirección del primer elemento. Para copiar un arreglo a otro se tiene que usar el método Clone: Dim arr1() As Integer = {0,1, 2, 3} Dim arr2() As Integer arr2 = arr1.Clone Si no se usa Clone, los cambios en el arreglo arr2 se reflejarán también en el arreglo arr1 ya que apuntarían al mismo sitio.

12 Arreglos: otras consideraciones (cont.)
Los parámetros que representan arreglos pueden ser por valor (ByVal) o por referencia (ByRef). En ambos casos el parámetro contendrá la dirección del arreglo y cambios al parámetro afectarán al arreglo original. Pasar un arreglo por valor o por referencia sólo hace una diferencia si se usa un ReDim dentro del procedimiento. Si se desea modificar el arreglo original, se debe usar un parámetro por referencia.

13 Arreglos: otras consideraciones (cont.)
Dim capacity As Integer = 10 Private Sub ReadArray(ByVal fileNumber As Integer, _ ByRef list() As Single, _ ByRef sizeList As Integer) sizeList = 0 FileOpen(fileNumber, "data.txt", OpenMode.Input) Do While Not EOF(fileNumber) If sizeList = capacity Then capacity = 1.5 * capacity ReDim Preserve list(capacity – 1) End If Input(fileNumber, list(sizeList)) sizeList += 1 Loop FileClose(fileNumber) End Sub


Descargar ppt "Programación en Visual Basic"

Presentaciones similares


Anuncios Google