Operaciones entre vectores

Esta vez realizaremos operaciones entre los datos de los vectores aquí les dejo los problemas a realizar.

 

1.- Declarar 3 vectores de longitud 10, en los primeros 2 se llenarán de datos digitados por el usuario, el tercer vector será para almacenar los resultados, los datos de los 3 vectores deben ser los mismos para todas las operaciones siguietnes:


2.- Sumar los valores de los dos vectores y almacenar los rersultados en el vector 3.

 

3.- Restar los valores de los dos vectores, almacenar los datos en el vector 3.

4.- Realizar la multiplicación con los datos de los dos vectores, la multiplicación se realizará de la siguiente manera: La primera posición del vector1 con la última del vector2, la segunda posición del vector1 con la penúltima posición del vector2, etc. Almacenar los resultados en el vector 3.

 

Realizar el menú correspondiente para los puntos anteriores.

 

En esta ocación comenzaré creando el menú, no hay mayor problema al crear el menú.

 

int op=0;
String menu="***** Menú operaciones de vectores *****\n";
menu+="1.- Llenar vectores\n";
menu+="2.- Suma de vectores\n";
menu+="3.- Resta de vectores\n";
menu+="4.- Multiplicación de vectores\n";
menu+="5.- Salir\n";
menu+="Digita una opción";
do{
    op=Integer.parseInt(JOptionPane.showInputDialog(menu));
}while(op!=5);

 

1.- Llenar vectores

Comenzando con el llenado de datos de los vectores declararé los tres vectores pero hay una condición en los problemas, que los tres vectores se deben poder utilizar para todas las operaciones, para realizar esto necesito declarar los vectores fuera del bloque de código del switch case, puedo declararlos en el mismo bloque que en donde declaré mi menú.

 

int vec1[]=new int[10];
int vec2[]=new int[10];
int vec3[]=new int[10];

/*Aqui el código del menu*/

 

Los empiezo a llenar cuando el usuario digite la opción 1 en nuestro menú, esto corresponde al case 1.

 

switch (op){
    case 1:
        for(int i=0;i<vec1.length;i++){
           vec1[i]=Integer.parseInt(JOptionPane.showInputDialog("Digita el valor para vec1"+"["+i+"]"));
        }
        for(int i=0;i<vec2.length;i++){
            vec2[i]=Integer.parseInt(JOptionPane.showInputDialog("Digita el valor para vec2"+"["+i+"]"));
        }
        break;

}

 

2.- Suma de vectores

Esta acción se ejecutará cuando se digite la opción 2 de nuestro menú, se suma la posición 0 del vector 1 con la posición 0 del vector 2 y la suma se almacena en la posición 0 del vector 3, al mismo tiempo voy imprimiendo los resultados.

 

case 2:
    //Suma de vectores
    System.out.println();
    for(int i=0;i<vec1.length;i++){
        vec3[i]=vec1[i]+vec2[i];
         System.out.print(vec3[i]+" ");
     }

break;

 

3.- Resta de vectores

La resta de vectores se realizará cuando se digite la opción 3 del menu, por lo tanto corresponde al case 3, la resta se realiza vec1[pos] - vec[pos] el resultado se almacena en vec3, al mismo tiempo lo imprimo para ir viendo los resultados.

 

case 3:
//Resta de vectores
System.out.println("La resta es de: ");

for(int i=0;i<vec1.length;i++){
    vec3[i]=vec1[i]-vec2[i];
    System.out.print(vec3[i]+" ");
}
break;

 

4.- Multiplicación de vectores

La cuarta opción de nuestro menú que corresponde al case 4, multiplicará los valores de los 2 vectores de la siguiente manera:

La posición 0 de vec1 por la ultima posición de vec2 y el resultado almacenarlo en vec3, esta operación la podemos hacer de la siguiente manera, para sacar el valor de vec1 no hay mayor problema puesto que nuestro índice es consecutivo en forma ascendente, para sacar los índices de vec2 se puede sacar su valor máximo y restarle el índice del primero, es decir:

 

vec3[i]=vec1[i]*vec2[vec2.length-(i+1)];

 

En la linea anterior se observa que se utiliza dos veces vec2 esto es, la primera indica la posición que se desea sacar el valor, la segunda que está dentro de los corchetes indica que obtiene el valor máximo de valores guardados en vec2 y a ese valor se le resta el índice +1 (En esta ocacion no restamos el índice -1 porque los vectores empiezan a guardar desde la posición 0 y lo que queremos es sumar 1 al índice para poderlo restar), con esta operación iremos multiplicando los valores de vec2 en forma descendente en sus índices.

 

case 4:
//Multiplicación de vectores

System.out.println("La multiplicación es de: ");
for(int i=0;i<vec1.length;i++){
     vec3[i]=vec1[i]*vec2[vec2.length-(i+1)];
     System.out.print(vec3[i]+" ");

}
System.out.println();
break;

 

Programa en ejecución

menu

Código completo utilizado

package pqtVector;

import javax.swing.JOptionPane;

public class OperacionesVectores {

    public static void main(String[] args) {
        int vec1[]=new int[10];
        int vec2[]=new int[10];
        int vec3[]=new int[10];
        
        int op=0;
        String menu="***** Menú operaciones de vectores *****\n";
        menu+="1.- Llenar vectores\n";
        menu+="2.- Suma de vectores\n";
        menu+="3.- Resta de vectores\n";
        menu+="4.- Multiplicación de vectores\n";
        menu+="5.- Salir\n";
        menu+="Digita una opción";
        do{
            op=Integer.parseInt(JOptionPane.showInputDialog(menu));
            switch (op){
                case 1:
                    for(int i=0;i<vec1.length;i++){
                        vec1[i]=Integer.parseInt(JOptionPane.showInputDialog("Digita el valor para vec1"+"["+i+"]"));
                    }
                    for(int i=0;i<vec2.length;i++){
                        vec2[i]=Integer.parseInt(JOptionPane.showInputDialog("Digita el valor para vec2"+"["+i+"]"));
                    }
                    //Imprime los vectores
                    String cad1="", cad2="";
                    for(int i=0;i<vec1.length;i++){
                        cad1+=vec1[i]+" ";
                        cad2+=vec2[i]+" ";
                    }
                    System.out.println("vec1: "+cad1);
                    System.out.println("vec2: "+cad2);
                    break;
                case 2:
                    //Suma de vectores
                    System.out.println("La suma es de: ");
                    for(int i=0;i<vec1.length;i++){
                        vec3[i]=vec1[i]+vec2[i];
                        System.out.print(vec3[i]+" ");
                    }
                    System.out.println();
                    break;
                case 3:
                    //Resta de vectores
                    System.out.println("La resta es de: ");
                    for(int i=0;i<vec1.length;i++){
                        vec3[i]=vec1[i]-vec2[i];
                        System.out.print(vec3[i]+" ");
                    }
                    System.out.println();
                    break;
                case 4:
                    //Multiplicación de vectores
                    System.out.println("La multiplicación es de: ");
                    for(int i=0;i<vec1.length;i++){
                        vec3[i]=vec1[i]*vec2[vec2.length-(i+1)];
                        System.out.print(vec3[i]+" ");
                    }
                    System.out.println();
                    break;
            }
        }while(op!=5);
    }
}