Descargar la presentación
La descarga está en progreso. Por favor, espere
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
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.