Este concepto se da cuando hay una relación entre las componentes de igual subíndice (misma posición) de un vector y otro.
Si tenemos dos vectores de 5 elementos cada uno. En uno se almacenan los nombres de personas en el otro las edades de dichas personas.
Decimos que el vector nombres es paralelo al vector edades si en la componente 0 de cada vector se almacena información relacionada a una persona (Juan - 12 años)
Es decir hay una relación entre cada componente de los dos vectores.
Esta relación la conoce únicamente el programador y se hace para facilitar el desarrollo de algoritmos que procesen los datos almacenados en las estructuras de datos.
Desarrollar un programa que permita cargar 5 nombres de personas y sus edades respectivas. Luego de realizar la carga por teclado de todos los datos imprimir los nombres de las personas mayores de edad (mayores o iguales a 18 años)
Module Module1 Public Class PruebaVector10 Private nombres(4) As String Private edades(4) As Integer Public Sub Cargar() Dim f As Integer For f = 0 To nombres.GetUpperBound(0) Console.Write("Ingrese nombre:") nombres(f) = Console.ReadLine() Console.Write("Ingrese edad:") edades(f) = Console.ReadLine() Next End Sub Public Sub MayoresEdad() Console.WriteLine("Personas mayores de edad.") Dim f As Integer For f = 0 To nombres.GetUpperBound(0) If edades(f) >= 18 Then Console.WriteLine(nombres(f)) End If Next Console.ReadKey() End Sub End Class Sub Main() Dim pv As New PruebaVector10() pv.Cargar() pv.MayoresEdad() End Sub End Module
Definimos los dos vectores de 5 elementos cada uno:
Private nombres(4) As String Private edades(4) As Integer
Mediante un For procedemos a la carga de los elementos de los vectores, es común realizar la carga en el mismo For para cargar de uno y otro al mismo tiempo:
Public Sub Cargar() Dim f As Integer For f = 0 To nombres.GetUpperBound(0) Console.Write("Ingrese nombre:") nombres(f) = Console.ReadLine() Console.Write("Ingrese edad:") edades(f) = Console.ReadLine() Next End Sub
Podemos llamar al método GetUpperBound de cualquiera de los dos vectores, ya que tienen el mismo tamaño.
Para imprimir los nombres de las personas mayores de edad verificamos cada componente del vector de edades, en caso que sea igual o mayor a 18 procedemos a mostrar el elemento de la misma posición del otro vector:
Public Sub MayoresEdad() Console.WriteLine("Personas mayores de edad.") Dim f As Integer For f = 0 To nombres.GetUpperBound(0) If edades(f) >= 18 Then Console.WriteLine(nombres(f)) End If Next Console.ReadKey() End Sub
Module Module1 Public Class PruebaVectorParalelo1 Private nombres(4) As String Private precios(4) As Single Public Sub Cargar() Dim f As Integer For f = 0 To nombres.GetUpperBound(0) Console.Write("Ingrese el nombre del producto:") nombres(f) = Console.ReadLine() Console.Write("Ingrese el precio:") precios(f) = Console.ReadLine() Next End Sub Public Sub ConsultaProductos() Dim valor As Single Console.Write("Ingrese un precio de corte:") valor = Console.ReadLine() Dim f As Integer For f = 0 To nombres.GetUpperBound(0) If precios(f) < valor Then Console.WriteLine("Producto:" & nombres(f) & " - " & "Precio:" & precios(f)) End If Next Console.ReadKey() End Sub End Class Sub Main() Dim pvp As New PruebaVectorParalelo1() pvp.Cargar() pvp.ConsultaProductos() End Sub End Module Module Module1 Public Class PruebaVectorParalelo2 Private empleados(3) As String Private sueldos(3) As Single Public Sub Cargar() Dim f As Integer For f = 0 To empleados.GetUpperBound(0) Console.Write("Ingrese el nombre del empleado:") empleados(f) = Console.ReadLine() Console.Write("Ingrese el sueldo de dicho empleado:") sueldos(f) = Console.ReadLine() Next End Sub Public Sub EmpleadosMenos2500() Console.WriteLine("Listado de empleados que cobran menos de 2500") Dim f As Integer For f = 0 To empleados.GetUpperBound(0) If sueldos(f) < 2500 Then Console.WriteLine(empleados(f)) End If Next End Sub Public Sub CantidadMas3500() Dim cant As Integer = 0 Dim f As Integer For f = 0 To empleados.GetUpperBound(0) If sueldos(f) > 3500 Then cant = cant + 1 End If Next Console.WriteLine("Cantidad de empleados que cobran más de 3500:" & cant) End Sub Public Sub GastoEnSueldos() Dim suma As Single = 0 Dim f As Integer For f = 0 To empleados.GetUpperBound(0) suma = suma + sueldos(f) Next Console.WriteLine("Gasto total mensual en sueldos:" & suma) Console.ReadKey() End Sub End Class Sub Main() Dim pv As New PruebaVectorParalelo2() pv.Cargar() pv.EmpleadosMenos2500() pv.CantidadMas3500() pv.GastoEnSueldos() End Sub End Module