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
Dim Valor As String
Console.WriteLine("Visualizamos el contenido")
' Visualizamos el vector
For Each Valor In Meses
Console.WriteLine(Valor)
Next
Console.ReadLine()
End Sub
End Module
Pero también se puede seguir haciendo lo clásico, con la función Ubound, aunque ahora también hay un método del objeto Meses, que se llama GetUpperBound.
Y también podemos utilizar los siguientes métodos, en lugar del X=0 to 11, o to Ubound(meses)
For X=Meses.GetLowerBound(0) To Meses.GetUpperBound(0)
O bien
For X = 0 To UBound(Meses)
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"}
Dim X As Int16
Dim Valor As String
Console.WriteLine("Visualizamos el contenido")
' Mostramos lo valores
For X = 0 To UBound(Meses)
Console.WriteLine(Meses(X))
Next
For X=Meses.GetLowerBound(0) To Meses.GetUpperBound(0)
Console.WriteLine(Meses(X).ToString)
Next
Console.ReadLine()
End Sub
End Module
Visto como se recorre el vector, veamos como se hace con una matriz, o un array de dos dimensiones.
Como principio, hay que indicar que una matriz necesita para recorrerse tantos contadores como dimensiones tiene, es decir tres dimensiones, tres contadores.
En el ejemplo utilizamos una matriz de dos dimensiones.
Veamos primero como cargar datos, usando una generación aleatoria de números.
Module Ejemplo
Sub Main()
' Declaración e inicialización
Dim M(3, 4) As Integer ‘ veinte elementos
Dim X As Integer
Dim Y As Integer
Randomize() ' inicializar el generador de números aleatorios
' generar la matriz
X = 0
Do
Y = 0
Do
M(X, Y) = CInt(Int((6 * Rnd()) + 1))
Y = Y + 1
Loop Until Y > UBound(M, 2)
X = X + 1
Loop Until X > UBound(M, 1)
End Sub
End Module
Una vez cargada la matriz para que tenga datos, vemos el uso completo carga y visualización.
Module Ejemplo
Sub Main()
' Declaración
Dim M(3, 4) As Integer ‘ veinte elementos 4 x 5
Dim X As Integer
Dim Y As Integer
Randomize() ' inicializar el generador de números aleatorios
' generar la matriz
X = 0
Do
Y = 0
Do
M(X, Y) = CInt(Int((6 * Rnd()) + 1))
Y = Y + 1
Loop Until Y > UBound(M, 2) ‘ columnas
X = X + 1
Console.WriteLine()
Loop Until X > UBound(M, 1) ‘ filas
Console.WriteLine("Visualizamos el contenido")
' Mostramos lo valores
X = 0
Do
Y = 0
Do
Console.WriteLine("Fila {0} Columna {1} Valor {2} ", X, Y, M(X, Y))
‘ Console.Write(" " & M(X, Y))
Y = Y + 1
Loop Until Y > UBound(M, 2) ‘ columnas
X = X + 1
Console.WriteLine()
Loop Until X > UBound(M, 1) ‘ filas
End Sub
End Module
En principio ésta es una forma de recorrer la matriz sin colocar en las condiciones del bucle el número de filas o de columnas de la matriz, que suele ser el formato normal, igual que se ha hecho para recorrer el vector podemos hacer con una matriz
Loop Until Y > UBound(M, 1) ‘ filas
para las filas, la primera dimensión, 1.
Loop Until Y > UBound(M, 2) ‘ columnas
para las columnas, la segunda dimensión, 2.
De ésta forma el bucle se ejecutará correctamente siempre independientemente del número de elementos del array.
Evidentemente la sintaxis que sigue también es correcta.
while (y < 5)
Loop Until Y > 5
En los ejemplos, por costumbre, se ha recorrido la matriz por filas, pero no hay nada que impida que se recorra por columnas.
Síguenos en: Facebook Sobre aulaClic Política de Cookies