Vectores Paralelos en Java - Programación Estructurada

¿Qué son los Vectores Paralelos?

En Java, los vectores paralelos son dos o más vectores que almacenan datos relacionados que se procesan simultáneamente. Los vectores paralelos permiten manejar diferentes tipos de información de manera sincronizada, como por ejemplo, almacenar nombres y edades de personas en vectores separados pero relacionados.

Declaración y Uso de Vectores Paralelos

Para trabajar con vectores paralelos, se deben declarar y crear varios vectores que mantendrán la misma longitud para asegurar que cada elemento en uno tenga un elemento correspondiente en los otros vectores.

// Declaración y creación de vectores paralelos
String[] nombres = {"Ana", "Luis", "María"};
int[] edades = {25, 30, 22};

// Ejemplo de uso
for (int i = 0; i < nombres.length; i++) {
    System.out.println(nombres[i] + " tiene " + edades[i] + " años.");
}

Búsqueda en Vectores Paralelos

Para buscar un valor en uno de los vectores y encontrar el correspondiente en los vectores paralelos, se puede usar un bucle para iterar a través de los vectores.

IMPOTANTE !!!

La instrucción break en nuestro curso solo en usaremos en la estructura selectiva switch. No usamos break en una estructura repetitiva (practica muy utilizada en inteligencia artificial). El break es un corte, si lo usamos dentro de una estructura repetitiva rompemos el bucle sin que complete el bloque que programamos. El curso de este año es PROGRAMACIÓN ESTRUCTURADA, y tiene como objetivo aprender a usar las distintas estructuras de programación y decidir cuando es mejor usar una u otra. Si usamos break en estructuras repetitivas prácticamente no tendríamos necesidad de usar otra estructura, haríamos todo con una y la cortamos cuando quiéranos.

Ejemplo de Búsqueda hasta el final del Vectores Paralelos


import java.util.Scanner;

public class BusquedaParalela {
    public static void main(String[] args) {
        Scanner dato = new Scanner(System.in);
        String[] nombres = {"Ana", "Luis", "María"};
        int[] edades = {25, 30, 22};
        boolean encontrado = false;

        System.out.print("Ingrese el nombre para buscar: ");
        String buscarNombre = dato.nextLine();
		
// Usar estructura for hace que vaya hasta el final del vector, incluso cuando el dato buscado esté en las primeras posiciones.
        for (int i = 0; i < nombres.length; i++) {
            if (nombres[i].equalsIgnoreCase(buscarNombre)) {
                System.out.println(buscarNombre + " tiene " + edades[i] + " años.");
                encontrado = true;
            }
        }

        if (!encontrado) {
            System.out.println("Nombre no encontrado.");
        }
    }
}

En el ejemplo anterior haría más eficiente mi programa si lo hago con un bucle while. El for hace que vaya hasta el final del vector siempre, lo que ocasiona que seguirá trabajando luego de haber encontrado el valor deseado. Si en la busqueda quicieramos obtener la cantidad de personas con una edad determinada, en ese caso sería correcto usar un for, ya que para obtener esa información debo recorrer el vector en su totalidad.

Ejemplo de Búsqueda hasta encontrar en Vectores Paralelos


import java.util.Scanner;
public class BusquedaParalela2 {
 public static void main(String[] args) {
	Scanner dato = new Scanner(System.in);
	String[] nombres = {"Ana", "Luis", "María"};
	int[] edades = {25, 30, 22};
	System.out.print("Ingrese el nombre para buscar: ");
	String buscarNombre = dato.nextLine();

	//mientras no llego al final y lo que esta en el vector NO es igual a lo buscado
	int i=0;
	while (i <  nombres.length && !nombres[i].equalsIgnoreCase(buscarNombre)) {
		i++; //paso a la siguiente posición en mi vector
	}
		
	if(i == nombres.length)
		System.out.println("Nombre no encontrado.");	
	else
		System.out.println(buscarNombre + " tiene " + edades[i] + " años.");		
 }
}

Recorrido y Operaciones con Vectores Paralelos

A continuación, se muestra cómo realizar operaciones en vectores paralelos, como sumar los valores correspondientes de dos vectores.

Ejemplo de Suma en Vectores Paralelos


public class SumaVectoresParalelos {
    public static void main(String[] args) {
        int[] vectorA = {1, 2, 3};
        int[] vectorB = {4, 5, 6};
        int[] suma = new int[vectorA.length];

        for (int i = 0; i < vectorA.length; i++) {
            suma[i] = vectorA[i] + vectorB[i];
        }

        System.out.println("Suma de vectores:");
        for (int i = 0; i < suma.length; i++) {
            System.out.println("Suma en posición " + i + ": " + suma[i]);
        }
    }
}

Pregunta de Múltiple Opción

1. ¿Qué son los vectores paralelos?

a) Vectores que almacenan datos relacionados y se procesan simultáneamente
b) Vectores que tienen el mismo tamaño pero no están relacionados
c) Vectores que almacenan datos de diferentes tipos

2. ¿Cómo se accede a un elemento en un vector paralelo?

a) Usando el mismo índice que en los otros vectores paralelos
b) Usando un índice diferente en cada vector
c) Usando un método especial para cada vector

3. ¿Cuál es el propósito de buscar en un vector paralelo?

a) Encontrar un valor en un vector y acceder al valor correspondiente en los vectores paralelos
b) Ordenar los vectores paralelos
c) Eliminar valores de los vectores paralelos

4. ¿Qué se debe hacer antes de operar con vectores paralelos?

a) Asegurarse de que todos los vectores paralelos tengan el mismo tamaño
b) Crear los vectores en diferentes tamaños
c) Convertir todos los vectores a un tipo de datos común

5. ¿Qué operador se utiliza para comparar valores en vectores?

a) ==
b) =
c) equals()

6. ¿Qué estructura repetitiva es más apropiada para buscar un solo dato en un vector ?

a) while
b) for
c) switch

7. ¿Qué estructura repetitiva debo usar si quiero buscar cuantas personas tienen una edad determinad?

a) while
b) for
c) switch

8. ¿La instrucción break la debo usar para ?

a) Nosotros la usaremos siempre que tengamos un for
b) Nosotros la usaremos siempre que tengamos un while
c) Nosotros solo la usaremos en la estructura selectiva switch

Ejercicios

  1. Realizar un programa que permita ingresar dos vectores paralelos de 5 elementos cada uno y muestre la suma de los valores correspondientes en un tercer vector.
  2. Desarrollar un programa que permita ingresar un vector de nombres y un vector de edades, y luego busque e imprima la edad correspondiente al nombre ingresado por el usuario.
  3. Escribir un programa que permita ingresar dos vectores paralelos y verifique si los elementos de ambos vectores son iguales en la misma posición.
  4. Crear un programa que almacene en un vector paralelo los nombres y las edades de personas y luego determine la persona con la edad máxima.
  5. Desarrollar un programa que permita ingresar un vector de valores y calcule la suma de los valores en posiciones pares y la suma de los valores en posiciones impares.
  6. Escribir un programa que permita al usuario ingresar dos vectores paralelos y luego determine si todos los valores del primer vector son menores que los valores correspondientes en el segundo vector.