[JAVA] ¿Es correcto esto? (Vectores)
-
ForoParalelo: Miembro
[JAVA] ¿Es correcto esto? (Vectores)
Estoy cursando primero de DAM y bueno, tengo una duda de un ejercicio.
Enunciado:
Realiza un programa que calcule la suma y el producto de dos vectores de 5 enteros (guardando los resultados en un tercer y cuarto vector, uno para los resultados de la suma y otro para los de el producto).
Yo lo he hecho así:
int[] vector = new int[5];
for (int i = 0; i <= 4; i++) {
System.out.print("Introduce un numero para vector 1: ");
vector[i]=sc.nextInt();
}
int[] vector2 = new int[5];
for (int i = 0; i <= 4; i++) {
System.out.print("Introduce un numero para vector 2: ");
vector2[i]=sc.nextInt();
}
int[] vector3 = new int[5];
for (int i = 0; i <= 4; i++) {
vector3[i]=vector[i]+vector2[i];
}
int[] vector4 = new int[5];
for (int i = 0; i <= 4; i++) {
vector4[i]=vector[i]*vector2[i];
}
//Muestro la suma y el producto guardados en los vectores 3 y 4.
System.out.println("");
System.out.println("Suma en vector 3: ");
for (int i = 0; i <= 4; i++) {
System.out.print(vector3[i]+", ");
}
System.out.println("");
System.out.println("Producto en vector 4: ");
for (int i = 0; i <= 4; i++) {
System.out.print(vector4[i]+", ");
}
La duda es que no se si es la manera correcta de hacerlo xD
-
Haxballero
Yo juntaría los 4 primeros bucles en 1
-
Oing Oing
A simple vista parece que hace lo que pide el enunciado.
-
ForoParalelo: Führer
El producto está mal. Para empezar el producto de dos vectores es un escalar, no otro vector.
-
AutoBanned
Parece que esta bien, asi por encima.
-
ForoParalelo: Miembro

Iniciado por
secta_suicida
El producto está mal. Para empezar el producto de dos vectores es un escalar, no otro vector.
Pues el profesor a dicho que multipliquemos un vector por el otro
-
AutoBanned

Iniciado por
zorex
Pues el profesor a dicho que multipliquemos un vector por el otro

si no te ha puesto nada de escalar tu hazlo asi. Ademas hacerlo por un escalar es muchismo mas facil.
-
ForoParalelo: Führer

Iniciado por
zorex
Pues el profesor a dicho que multipliquemos un vector por el otro

Pero es que los vectores no se multiplican así. Debería ser:
int producto = 0;
for (int i = 0; i <= 4; i++) {
producto = producto + vector[i]*vector2[i];
}
-
ForoParalelo: Miembro

Iniciado por
secta_suicida
Pero es que los vectores no se multiplican así. Debería ser:
int producto = 0;
for (int i = 0; i <= 4; i++) {
producto = producto + vector[i]*vector2[i];
}
Yo la verdad no le veo nada mal a lo que he hecho :S.
La multiplicación de un vector con el otro, la igualo al vector 4 para que se me quede en ese vector. Cuando lo ejecuto lo multiplica bien, ¿por que no se puede hacer así entonces? 
int[] vector4 = new int[5];
for (int i = 0; i <= 4; i++) {
vector4[i]=vector[i]*vector2[i];
}
-
ForoParalelo: Führer

Iniciado por
zorex
Yo la verdad no le veo nada mal a lo que he hecho :S.
La multiplicación de un vector con el otro, la igualo al vector 4 para que se me quede en ese vector. Cuando lo ejecuto lo multiplica bien, ¿por que no se puede hacer así entonces?
int[] vector4 = new int[5];
for (int i = 0; i <= 4; i++) {
vector4[i]=vector[i]*vector2[i];
}
Es que yo entiendo que se refiere al producto escalar. Si A=(a1, a2, ... , an) y B=(b1, b2, ..., bn) son dos vectores la fórmula del producto escalar es (a1*b1 + a2*b2+ ... an*bn) y el resultado es un número, no un vector. Tú lo que haces es multiplicar las componentes de los vectores. Aunque si el enunciado dice que hay que guardar el resultado del producto en un vector, entonces no sé a qué se refiere.
-
Oing Oing

Iniciado por
secta_suicida
Es que yo entiendo que se refiere al producto escalar. Si A=(a1, a2, ... , an) y B=(b1, b2, ..., bn) son dos vectores la fórmula del producto escalar es (a1*b1 + a2*b2+ ... an*bn) y el resultado es un número, no un vector. Tú lo que haces es multiplicar las componentes de los vectores. Aunque si el enunciado dice que hay que guardar el resultado del producto en un vector, entonces no sé a qué se refiere.
Ha dicho lo que le pedía su profesor, supongo que son los típicos ejercicios para ir pillando ritmillo con java, no para aprender a operar con vectores, no hay que darle muchas más vueltas.
-
No tengo 16 años, ni 61
A simple vista es correcto porque es un ejercicio para aprender a manejarse no para repasar conceptos matemáticos.
Pero sé un poco más ordenado para cuando tengas que programar cosas más grandes.
Declara todos los vectores al principio uno tras otro. Y te sobran bucles, puedes pedir los datos e ir operando en un único bucle. Y luego si acaso otro para imprimir, no 2.
Última edición por kalathos16; 02/12/2014 a las 02:01
-
ForoParalelo: Miembro

Iniciado por
zorex
Estoy cursando primero de DAM y bueno, tengo una duda de un ejercicio.
Enunciado:
Realiza un programa que calcule la suma y el producto de dos vectores de 5 enteros (guardando los resultados en un tercer y cuarto vector, uno para los resultados de la suma y otro para los de el producto).
Yo lo he hecho así:
int[] vector = new int[5];
for (int i = 0; i <= 4; i++) {
System.out.print("Introduce un numero para vector 1: ");
vector[i]=sc.nextInt();
}
int[] vector2 = new int[5];
for (int i = 0; i <= 4; i++) {
System.out.print("Introduce un numero para vector 2: ");
vector2[i]=sc.nextInt();
}
int[] vector3 = new int[5];
for (int i = 0; i <= 4; i++) {
vector3[i]=vector[i]+vector2[i];
}
int[] vector4 = new int[5];
for (int i = 0; i <= 4; i++) {
vector4[i]=vector[i]*vector2[i];
}
//Muestro la suma y el producto guardados en los vectores 3 y 4.
System.out.println("");
System.out.println("Suma en vector 3: ");
for (int i = 0; i <= 4; i++) {
System.out.print(vector3[i]+", ");
}
System.out.println("");
System.out.println("Producto en vector 4: ");
for (int i = 0; i <= 4; i++) {
System.out.print(vector4[i]+", ");
}
La duda es que no se si es la manera correcta de hacerlo xD
si es correcto aunque lo puedes reducir para no ocupar tantos bucles:
void vect(){
for(int i=0;i<5;i++){
System.out.println("Introduce numero Vector 1:");
v1[i]=leer.nextInt();
System.out.println("Introduce numero Vector 2:");
v2[i]=leer.nextInt();
v3[i]=v1[i] + v2[i];
v4[i]=v1[i] * v2[i];
}
System.out.println("\nResultado de suma:");
for(int i=0;i<5;i++){
System.out.print(v3[i]+"-");
}
System.out.println("\nResultado de producto:");
for(int i=0;i<5;i++){
System.out.print(v4[i]+"-");
}
}
Permisos de publicación
- No puedes crear nuevos temas
- No puedes responder temas
- No puedes subir archivos adjuntos
- No puedes editar tus mensajes
-
Reglas del foro
▲
▼
Atajos de Navegación Disponibles