Hemos empleado variables de distinto tipo para el almacenamiento de datos (variables Integer, Single, String) En esta sección veremos otros tipos de variables que permiten almacenar un conjunto de datos en una única variable.
Un vector es una estructura de datos que permite almacenar un CONJUNTO de datos del MISMO tipo.
Con un único nombre se define un vector y por medio de un subíndice hacemos referencia a cada elemento del mismo (componente)
Se desea guardar los sueldos de 5 operarios.
Según lo conocido deberíamos definir 5 variables si queremos tener en un cierto momento los 5 sueldos almacenados en memoria.
Empleando un vector solo se requiere definir un único nombre y accedemos a cada elemento por medio del subíndice.

Para definir una propiedad de una clase de tipo vector utilizamos la siguiente sintaxis:
Private sueldos(4) As Integer
Estamos definiendo un vector llamado sueldos que puede almacenar 5 componentes (esto debido a que las componentes comienzan a numerarse en cero).
Los elementos o componentes del vector sueldos solo pueden almacenar valores enteros. No podemos tener componentes de distinto tipo.
Module Module1
Public Class PruebaVector1
Private sueldos(4) As Integer
Public Sub Cargar()
Dim f As Integer
For f = 0 To 4
Console.Write("Ingrese importe del sueldo:")
sueldos(f) = Console.ReadLine()
Next
End Sub
Public Sub Imprimir()
Dim f As Integer
For f = 0 To 4
Console.WriteLine(sueldos(f))
Next
Console.ReadKey()
End Sub
End Class
Sub Main()
Dim pv As New PruebaVector1()
pv.Cargar()
pv.Imprimir()
End Sub
End Module
Como atributo de la clase declaramos el vector:
Private sueldos(4) As Integer
Lo definimos como atributo de la clase ya que lo utilizaremos en los dos métodos.
Para cargar cada componente debemos indicar entre paréntesis que elemento del vector estamos accediendo, es común utilizar un ciclo For para indicar el índice de la componente:
Public Sub Cargar()
Dim f As Integer
For f = 0 To 4
Console.Write("Ingrese importe del sueldo:")
sueldos(f) = Console.ReadLine()
Next
End Sub
Cuando f vale cero estamos accediendo a la primer componente del vector (en nuestro caso sería):
sueldos(f) = Console.ReadLine()
Lo mas común es utilizar una estructura repetitiva For para recorrer cada componente del vector.
Utilizar el For nos reduce la cantidad de código, si no utilizo un For debería en forma secuencial implementar el siguiente código:
Console.Write("Ingrese importe del sueldo:")
sueldos(0) = Console.ReadLine()
Console.Write("Ingrese importe del sueldo:")
sueldos(1) = Console.ReadLine()
Console.Write("Ingrese importe del sueldo:")
sueldos(2) = Console.ReadLine()
Console.Write("Ingrese importe del sueldo:")
sueldos(3) = Console.ReadLine()
Console.Write("Ingrese importe del sueldo:")
sueldos(4) = Console.ReadLine()
La impresión de las componentes del vector lo hacemos en el otro método y también utilizamos un For para reducir el código a programar:
Public Sub Imprimir()
Dim f As Integer
For f = 0 To 4
Console.WriteLine(sueldos(f))
Next
Console.ReadKey()
End Sub
Siempre que queremos acceder a una componente del vector debemos indicar entre paréntesis la componente, dicho valor comienza a numerarse en cero y continua hasta el valor que indicamos al definir el vector, en nuestro caso creamos el vector indicando un 4, es decir tiene 5 elementos:
Private sueldos(4) As Integer
Por último en este programa creamos un objeto en la Main y llamamos a lo métodos de Cargar e Imprimir el vector:
Sub Main()
Dim pv As New PruebaVector1()
pv.Cargar()
pv.Imprimir()
End Sub
Definir un vector de 5 componentes de tipo Single que representen las alturas de 5 personas.
Obtener el promedio de las mismas. Contar cuántas personas son más altas que el promedio y cuántas más bajas.
Module Module1
Public Class PruebaVector2
Private alturas(4) As Single
Private promedio As Single
Public Sub Cargar()
Dim f As Integer
For f = 0 To 4
Console.Write("Ingrese la altura de la persona:")
alturas(f) = Console.ReadLine()
Next
End Sub
Public Sub CalcularPromedio()
Dim suma As Single
suma = 0
Dim f As Integer
For f = 0 To 4
suma = suma + alturas(f)
Next
promedio = suma / 5
Console.WriteLine("Promedio de alturas:" & promedio)
End Sub
Public Sub MayoresMenores()
Dim may, men As Integer
may = 0
men = 0
Dim f As Integer
For f = 0 To 4
If alturas(f) > promedio Then
may = may + 1
Else
If alturas(f) < promedio Then
men = men + 1
End If
End If
Next
Console.WriteLine("Cantidad de personas mayores al promedio:" & may)
Console.WriteLine("Cantidad de personas menores al promedio:" & men)
Console.ReadKey()
End Sub
End Class
Sub Main()
Dim pv2 As New PruebaVector2()
pv2.Cargar()
pv2.CalcularPromedio()
pv2.MayoresMenores()
End Sub
End Module
Definimos como atributo un vector donde almacenaremos las alturas. También definimos un atributo "promedio" ya que se lo calculará en un método y lo consultará en otro:
Private alturas(4) As Single
Private promedio As Single
Procedemos seguidamente a cargar todos sus elementos en el método Cargar:
Public Sub Cargar()
Dim f As Integer
For f = 0 To 4
Console.Write("Ingrese la altura de la persona:")
alturas(f) = Console.ReadLine()
Next
End Sub
En otro método procedemos a sumar todas sus componentes y obtener el promedio. El promedio lo almacenamos en un atributo de la clase ya que lo necesitamos en otro método:
Public Sub CalcularPromedio()
Dim suma As Single
suma = 0
Dim f As Integer
For f = 0 To 4
suma = suma + alturas(f)
Next
promedio = suma / 5
Console.WriteLine("Promedio de alturas:" & promedio)
End Sub
Por último en un tercer método comparamos cada componente del vector con el atributo promedio, si el valor almacenado supera al promedio incrementamos un contador en caso que sea menor al promedio incrementamos otro contador:
Public Sub MayoresMenores()
Dim may, men As Integer
may = 0
men = 0
Dim f As Integer
For f = 0 To 4
If alturas(f) > promedio Then
may = may + 1
Else
If alturas(f) < promedio Then
men = men + 1
End If
End If
Next
Console.WriteLine("Cantidad de personas mayores al promedio:" & may)
Console.WriteLine("Cantidad de personas menores al promedio:" & men)
Console.ReadKey()
End Sub
En este problema podemos observar una ventaja de tener almacenadas todas las alturas de las personas. Si no conociéramos los vectores tenemos que cargar otra vez las alturas por teclado para compararlas con el promedio.
Mientras el programa está en ejecución tenemos el vector alturas a nuestra disposición. Es importante tener en cuenta que cuando finaliza la ejecución del programa se pierde el contenido de todas las variables (simples y vectores)
Una empresa tiene dos turnos (mañana y tarde) en los que trabajan 8 empleados (4 por la mañana y 4 por la tarde)
Confeccionar un programa que permita almacenar los sueldos de los empleados agrupados por turno.
Imprimir los gastos en sueldos de cada turno.
Module Module1
Public Class PruebaVector3
Private turnoMan(3) As Single
Private turnoTar(3) As Single
Public Sub Cargar()
Console.WriteLine("Sueldos de empleados del turno de la mañana.")
Dim f As Integer
For f = 0 To 3
Console.Write("Ingrese sueldo:")
turnoMan(f) = Console.ReadLine()
Next
Console.WriteLine("Sueldos de empleados del turno de la tarde.")
For f = 0 To 3
Console.Write("Ingrese sueldo:")
turnoTar(f) = Console.ReadLine()
Next
End Sub
Public Sub CalcularGastos()
Dim man As Single = 0
Dim tar As Single = 0
Dim f As Integer
For f = 0 To 3
man = man + turnoMan(f)
tar = tar + turnoTar(f)
Next
Console.WriteLine("Total de gastos del turno de la mañana:" & man)
Console.WriteLine("Total de gastos del turno de la tarde:" & tar)
Console.ReadKey()
End Sub
End Class
Sub Main()
Dim pv3 As New PruebaVector3()
pv3.Cargar()
pv3.CalcularGastos()
End Sub
End Module
Definimos dos atributos de tipo vector donde almacenaremos los sueldos de los empleados de cada turno:
Private turnoMan(3) As Single
Private turnoTar(3) As Single
Mediante dos estructuras repetitivas procedemos a cargar cada vector:
Public Sub Cargar()
Console.WriteLine("Sueldos de empleados del turno de la mañana.")
Dim f As Integer
For f = 0 To 3
Console.Write("Ingrese sueldo:")
turnoMan(f) = Console.ReadLine()
Next
Console.WriteLine("Sueldos de empleados del turno de la tarde.")
For f = 0 To 3
Console.Write("Ingrese sueldo:")
turnoTar(f) = Console.ReadLine()
Next
End Sub
En otro método procedemos a sumar las componentes de cada vector y mostrar dichos acumuladores:
Public Sub CalcularGastos()
Dim man As Single = 0
Dim tar As Single = 0
Dim f As Integer
For f = 0 To 3
man = man + turnoMan(f)
tar = tar + turnoTar(f)
Next
Console.WriteLine("Total de gastos del turno de la mañana:" & man)
Console.WriteLine("Total de gastos del turno de la tarde:" & tar)
Console.ReadKey()
End Sub
En la Main creamos un objeto de la clase PruebaVector3 y llamamos a sus dos métodos:
Sub Main()
Dim pv3 As New PruebaVector3()
pv3.Cargar()
pv3.CalcularGastos()
End Sub
Module Module1
Public Class PruebaVector4
Private vec(7) As Integer
Public Sub Cargar()
Dim f As Integer
For f = 0 To 7
Console.Write("Ingrese elemento:")
vec(f) = Console.ReadLine()
Next
End Sub
Public Sub AcumularElementos()
Dim suma As Integer = 0
Dim f As Integer
For f = 0 To 7
suma = suma + vec(f)
Next
Console.WriteLine("La suma de los 8 elementos es:" & suma)
End Sub
Public Sub AcumularMayores36()
Dim suma As Integer = 0
Dim f As Integer
For f = 0 To 7
If vec(f) > 36 Then
suma = suma + vec(f)
End If
Next
Console.WriteLine("La suma de los elementos mayores a 36 es:" & suma)
End Sub
Public Sub CantidadMayores50()
Dim cant As Integer = 0
Dim f As Integer
For f = 0 To 7
If vec(f) > 50 Then
cant = cant + 1
End If
Next
Console.WriteLine("La cantidad de valores mayores a 50 es:" & cant)
Console.ReadKey()
End Sub
End Class
Sub Main()
Dim pv4 As New PruebaVector4()
pv4.Cargar()
pv4.AcumularElementos()
pv4.AcumularMayores36()
pv4.CantidadMayores50()
End Sub
End Module
Module Module1
Public Class PruebaVector5
Private vec1(3) As Integer
Private vec2(3) As Integer
Private vecSuma(3) As Integer
Public Sub Cargar()
Console.WriteLine("Carga del primer vector.")
Dim f As Integer
For f = 0 To 3
Console.Write("Ingrese elemento:")
vec1(f) = Console.ReadLine()
Next
Console.WriteLine("Carga del segundo vector.")
For f = 0 To 3
Console.Write("Ingrese elemento:")
vec2(f) = Console.ReadLine()
Next
End Sub
Public Sub SumarizarVectores()
Dim f As Integer
For f = 0 To 3
vecSuma(f) = vec1(f) + vec2(f)
Next
Console.WriteLine("Vector resultante.")
For f = 0 To 3
Console.WriteLine(vecSuma(f))
Next
Console.ReadKey()
End Sub
End Class
Sub Main()
Dim pv5 As New PruebaVector5()
pv5.Cargar()
pv5.SumarizarVectores()
End Sub
End Module
Module Module1
Public Class PruebaVector6
Private cursoa(4) As Integer
Private cursob(4) As Integer
Public Sub Cargar()
Console.WriteLine("Carga de notas del curso A")
Dim f As Integer
For f = 0 To 4
Console.Write("Ingrese nota:")
cursoa(f) = Console.ReadLine()
Next
Console.WriteLine("Carga del notas del curso B")
For f = 0 To 4
Console.Write("Ingrese nota:")
cursob(f) = Console.ReadLine()
Next
End Sub
Public Sub CalcularPromedios()
Dim suma1 As Integer = 0
Dim suma2 As Integer = 0
Dim f As Integer
For f = 0 To 4
suma1 = suma1 + cursoa(f)
suma2 = suma2 + cursob(f)
Next
Dim promedioa As Integer = suma1 / 5
Dim promediob As Integer = suma2 / 5
If promedioa > promediob Then
Console.WriteLine("El curso A tiene un promedio mayor.")
Else
Console.WriteLine("El curso B tiene un promedio mayor.")
End If
Console.ReadKey()
End Sub
End Class
Sub Main()
Dim pv As New PruebaVector6()
pv.Cargar()
pv.CalcularPromedios()
End Sub
End Module
Module Module1
Public Class PruebaVector7
Private vec(9) As Integer
Public Sub Cargar()
Dim f As Integer
For f = 0 To 9
Console.Write("Ingrese elemento:")
vec(f) = Console.ReadLine()
Next
End Sub
Public Sub VerificarOrdenado()
Dim orden As Integer = 1
Dim f As Integer
For f = 0 To 8
If vec(f + 1) < vec(f) Then
orden = 0
End If
Next
If orden = 1 Then
Console.WriteLine("Esta ordenado de menor a mayor")
Else
Console.WriteLine("No esta ordenado de menor a mayor")
End If
Console.ReadKey()
End Sub
End Class
Sub Main()
Dim pv As New PruebaVector7()
pv.Cargar()
pv.VerificarOrdenado()
End Sub
End Module