[JAVA] ¿Es correcto esto? (Vectores)

  1. #1
    ForoParalelo: Miembro Avatar de zorex
    Registro
    24 Nov, 13
    Mensajes
    858
    Me gusta (Dados)
    498
    Me gusta (Recibidos)
    223

    [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

  2. #2
    Haxballero Avatar de AveFelix
    Registro
    07 Apr, 13
    Mensajes
    4,599
    Me gusta (Dados)
    10885
    Me gusta (Recibidos)
    1925
    Yo juntaría los 4 primeros bucles en 1

  3. #3
    Oing Oing Avatar de Hechizerdo
    Registro
    12 Apr, 13
    Mensajes
    4,394
    Me gusta (Dados)
    748
    Me gusta (Recibidos)
    1806
    A simple vista parece que hace lo que pide el enunciado.

  4. #4
    ForoParalelo: Führer Avatar de secta_suicida
    Registro
    25 Apr, 14
    Mensajes
    20,828
    Me gusta (Dados)
    5918
    Me gusta (Recibidos)
    10862
    El producto está mal. Para empezar el producto de dos vectores es un escalar, no otro vector.

  5. #5
    AutoBanned Avatar de Usuario302240315
    Registro
    22 Sep, 14
    Mensajes
    3,343
    Me gusta (Dados)
    610
    Me gusta (Recibidos)
    964
    Parece que esta bien, asi por encima.

  6. #6
    ForoParalelo: Miembro Avatar de zorex
    Registro
    24 Nov, 13
    Mensajes
    858
    Me gusta (Dados)
    498
    Me gusta (Recibidos)
    223
    Cita Iniciado por secta_suicida Ver mensaje
    El mensaje está oculto porque el usuario está en tu lista de ignorados.
    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

  7. #7
    AutoBanned Avatar de Usuario302240315
    Registro
    22 Sep, 14
    Mensajes
    3,343
    Me gusta (Dados)
    610
    Me gusta (Recibidos)
    964
    Cita Iniciado por zorex Ver mensaje
    El mensaje está oculto porque el usuario está en tu lista de ignorados.
    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.

  8. #8
    ForoParalelo: Führer Avatar de secta_suicida
    Registro
    25 Apr, 14
    Mensajes
    20,828
    Me gusta (Dados)
    5918
    Me gusta (Recibidos)
    10862
    Cita Iniciado por zorex Ver mensaje
    El mensaje está oculto porque el usuario está en tu lista de ignorados.
    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];
    }

  9. #9
    ForoParalelo: Miembro Avatar de zorex
    Registro
    24 Nov, 13
    Mensajes
    858
    Me gusta (Dados)
    498
    Me gusta (Recibidos)
    223
    Cita Iniciado por secta_suicida Ver mensaje
    El mensaje está oculto porque el usuario está en tu lista de ignorados.
    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];
    }

  10. #10
    ForoParalelo: Führer Avatar de secta_suicida
    Registro
    25 Apr, 14
    Mensajes
    20,828
    Me gusta (Dados)
    5918
    Me gusta (Recibidos)
    10862
    Cita Iniciado por zorex Ver mensaje
    El mensaje está oculto porque el usuario está en tu lista de ignorados.
    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.

  11. #11
    Oing Oing Avatar de Hechizerdo
    Registro
    12 Apr, 13
    Mensajes
    4,394
    Me gusta (Dados)
    748
    Me gusta (Recibidos)
    1806
    Cita Iniciado por secta_suicida Ver mensaje
    El mensaje está oculto porque el usuario está en tu lista de ignorados.
    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.

  12. #12
    No tengo 16 años, ni 61 Avatar de kalathos16
    Registro
    22 Jul, 13
    Mensajes
    918
    Me gusta (Dados)
    327
    Me gusta (Recibidos)
    382
    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

  13. #13
    ForoParalelo: Miembro Avatar de peter88
    Registro
    17 Oct, 14
    Mensajes
    455
    Me gusta (Dados)
    65
    Me gusta (Recibidos)
    56
    Cita Iniciado por zorex Ver mensaje
    El mensaje está oculto porque el usuario está en tu lista de ignorados.
    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:


Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •