Professional Documents
Culture Documents
(Vectores)
Un arreglo es una estructura de datos conformada por una sucesión de celdas, que permite
almacenar en la memoria principal del computador un conjunto finito de elementos que tienen el
mismo tipo de dato.
Declaración General:
Adicionalmente, Visual Basic .NET nos permite hacer la declaración de un array haciendo uso
de un par de paréntesis en el nombre de la variable o del tipo, en el siguiente ejemplo se declara
un array de tipo String llamado nombres:
Pero solo se puede hace en el nombre, si esa cantidad de elementos se indica en el tipo, se
emitirá un error indicando que "los límites dela matriz no pueden aparecer en los
especificadores del tipo".
Para que quede claro que el límite inferior debe ser cero, en Visual Basicse puede utilizarla
instrucción 0 To para indicar el valor máximo del índicesuperior, ya que, tal como se puede
comprobar si se define 0 To 10, se declara un array con 11 elementos:
1
Declarar e inicializar un array
En Visual Basic también se inicializa un array al declararlo, para ello se pone los valores a
asignar dentro de un par de llaves,tal como se aprecia en el siguiente ejemplo:
Con el código anterior se crea un array de tipo String con tres valores cuyos índices van de cero
a dos. En este caso, cuando se inicia el array al declararlo, no se debe indicar el número de
elementos que tendrá ese array, ya que ese valor lo averiguará elcompilador cuando haga la
asignación. Tampoco es válido indicar el númerode elementos que se desea que tenga y solo
asignarle unos cuantos menos(o más), ya que se producirá un error en tiempo de compilación.
Una vez declarado un array y se le ha asignado valores, es posibleque sea de interés eliminar
esos valores de la memoria, para lograrlo,se puede hacer de tres formas:
1. Redimensionando el array indicando que tiene cero elementos, aunque en el mejor de los
casos, si no se estatrabajando con arrays de más de una dimensión, se tendría un array de un
elemento, ya que, los arrays de .NET el índice inferior es cero.
Llenado.
Para llenar el vector podemos usar cualquiera de los dos sistemas siguientes, llenado
manualmente
Module Ejemplo
Sub Main()
' Declaración del vector con un tamaño máximo de 100 posiciones
Dim VectorA(100) As Integer
' Declaramos la variable para poder recorrer el vector
Dim i,n As Integer
Console.WriteLine("Ingrese el tamaño del vector")
n = Console.ReadLine()
' Llenamos el vector
For i=0 To N
Console.WriteLine("Ingrese un valor en la posición {0}: ",i+1)
VectorA(i) = Console.ReadLine()
Next
Console.Readkey()
End Sub
End Module
2
Pero también se puede llenar con valores aleatorios,
Module Ejemplo
Sub Main()
' Declaración del vector con un tamaño máximo de 100 posiciones
Dim VectorA(100) As Integer
' Declaramos la variable para poder recorrer el vector
Dim i,n As Integer
Console.WriteLine("Ingrese el tamaño del vector")
n = Console.ReadLine()
' Funcion para el Random
Randomize()
' Llenamos el vector
For i=0 To N
Console.WriteLine("Ingrese un valor en la posición {0}: ",i+1)
VectorA(i) = Rnd() * 100 ' Se multiplica por el valor al cual
'queremos los números aleatorios, en este ejemplo van a salir números entre
'0 y 100
Next
Console.Readkey()
End Sub
End Module
Recorrido.
Para recorrer el vector podemos usar cualquiera de los dos sistemas, el de recorrerlo como una
colección.
Module Ejemplo
Sub Main()
' 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"}
' Declaramos la variable del mismo tipo para poder recorrer el 'vector
3
Pero también se puede seguir haciendo lo clásico,
Module Ejemplo
Sub Main()
' 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"}
' Declaramos la variable del mismo tipo para poder recorrer el 'vector
Dim x As Integer
Console.WriteLine("Visualizamos el contenido")
' Visualizamos el vector
For x = 0 To UBound(Meses)
Console.WriteLine(Meses(x))
Next
Console.Readkey()
End Sub
End Module
Métodos.
Vamos a ver la utilidad de cada uno de los métodos existentes en cada una de las dos clases.
Clear:
Siguiendo con el ejemplo anterior, el método Clear realiza el vaciado del contenido del vector,
pero no del número de elementos, que seguirá siendo el mismo
Module Ejemplo
Sub Main()
Dim Meses() As String = {"Enero", "Febrero", "Marzo", "Abril", "Mayo",
"Junio", "Julio", "Agosto","Septiembre", "Octubre", "Noviembre",
"Diciembre"}
Dim Valor As String
4
' Vaciado del vector
Meses.Clear(Meses, 0, Meses.Length)
Clone
Module Ejemplo
Sub Main()
Dim Meses() As String = {"Enero", "Febrero", "Marzo", "Abril", "Mayo",
"Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre",
"Diciembre"}
Dim OtrosMeses() As String
Dim Valor As String
5
Copy
A diferencia de Clone, Copy hace un duplicado del vector, solo del número de elementos que se
indica en el argumento.
Estos métodos devuelven el número de elementos del vector, el primer índice y el último.
6
Module Ejemplo
Sub Main()
Dim Meses() As String = {"Enero", "Febrero", "Marzo", "Abril", "Mayo",
"Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre",
"Diciembre"}
Console.WriteLine("Visualizamos el contenido ")
Console.WriteLine("Elementos del vector {0} ", Meses.GetLength(0))
GetValue
Console.WritelLine(Meses(3))
Module Ejemplo
Sub Main()
Dim X As Int16
DimMeses() As String = {"Enero", "Febrero", "Marzo", "Abril", "Mayo",
"Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre",
"Diciembre"}
Dim Valor As String
Console.WriteLine("Visualizamos el contenido ")
Console.WriteLine(Meses.GetValue(3))
7
Búsqueda, IndexOf, LastIndexOf
En el ejemplo el resultado es 1 y 7.
Module Ejemplo
Sub Main()
Dim X As Int16
Dim Meses() As String = {"Enero", "Febrero", "Marzo", "Abril", "Mayo",
"Junio", "Julio", "Febrero", "Septiembre", "Octubre", "Noviembre",
"Diciembre"}
Dim Valor As String
Rank
Reverse
Module Ejemplo
Sub Main()
Dim X As Int16
8
Dim Meses() As String = {"Enero", "Febrero", "Marzo", "Abril", "Mayo",
"Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre",
"Diciembre"}
Meses.Reverse(Meses)
[Array].Reverse(Meses) ' se queda como estaba