Utilizamos cookies, si continúas navegando, consideramos que aceptas su uso.

Otros Java ayuda?

COMPRA EN:  PCcomponentes 
  1. #1

    Java ayuda?

    me pide que muestre la suma de los 3 ultimos numeros de una secuencia de 6, xq me da mal shurs? se que debo fallar en el comando de la suma he probado varios y ninguno me da la suma correcta, cual seria?
    he probado con sum +3 etc...


    import java.util.Scanner;


    public static void main(String[] args) {
    // TODO Auto-generated method stub

    int cant = 0;
    int sum = 0;

    for (int i = 1; i <= 6; i++) {
    System.out.print("Ingrese valor " + i + ":");
    cant = (new Scanner(System.in)).nextInt();
    sum = sum + i;

    }
    System.out.println("La suma de los 3 ultimos valores es: " + sum);
    }

    }
    Qué calor

  2. #2
    ForoParalelo: Führer Avatar de secta_suicida
    Registro
    25 abr, 14
    Mensajes
    9,170
    Te explicas como un libro en llamas. Pero supongo que lo que querrás hacer es

    sum = sum + cant

    en lugar de

    sum = sum + i

  3. #3
    Tu fracaso es mi sonrisa Avatar de doctsuba
    Registro
    02 may, 13
    Mensajes
    13,772
    se te da mal porque pides ayuda todo el rato
    Club de fans de Ricky Berwick

    ÚNICO TRIPLE [B]DOBLE[/B] USUARIO DEL DÍA EN FOROPARALELO


  4. #4
    Tu fracaso es mi sonrisa Avatar de doctsuba
    Registro
    02 may, 13
    Mensajes
    13,772
    encima eres un cochinillo de código, ni comentas las cosas, ni haces las cosas elegantes, dios, me pongo envenenado.
    Club de fans de Ricky Berwick

    ÚNICO TRIPLE [B]DOBLE[/B] USUARIO DEL DÍA EN FOROPARALELO


  5. #5
    Cita Iniciado por doctsuba Ver mensaje
    se te da mal porque pides ayuda todo el rato
    ´
    solo quiero saber en que fallo
    estoy empezando y llevo 30 min probando comandos de la suma pero ninguno me da lo correcto

    Cita Iniciado por secta_suicida Ver mensaje
    Te explicas como un libro en llamas. Pero supongo que lo que querrás hacer es

    sum = sum + cant

    en lugar de

    sum = sum + i
    a ver es simple, 6 numeros por teclado, mostrar la suma de los 3 ultimos...

    he probado ese y me sigue sin dar la suma correcta

    6+5+4 = 21 segun eso
    Qué calor

  6. #6
    ForoParalelo: Miembro Avatar de ...cerral
    Registro
    09 dic, 15
    Mensajes
    805
    Cita Iniciado por Ultimatits Ver mensaje

    for (int i = 1; i <= 6; i++) {
    System.out.print("Ingrese valor " + i + ":");
    cant = (new Scanner(System.in)).nextInt();
    sum = sum + i;


    }

    Lo que te hace eso es sumar los 6 dígitos. En realidad tampoco, porque tienes mal el "sum = sum + i;". Eso te está sumando 0 + 1 + 2 + 3... Tienes que sumar el valor, no el índice, así que "sum = sum + cant".

    Y ahora tienes que hacer que solo sume los 3 últimos valores, no los 6. Puedes hacerlo con un "if i >= 3" por ejemplo.
    Me gusta A Ultimatits le gusta esto

  7. #7
    ForoParalelo: Führer Avatar de secta_suicida
    Registro
    25 abr, 14
    Mensajes
    9,170
    Cita Iniciado por Ultimatits Ver mensaje
    ´
    solo quiero saber en que fallo
    estoy empezando y llevo 30 min probando comandos de la suma pero ninguno me da lo correcto



    a ver es simple, 6 numeros por teclado, mostrar la suma de los 3 ultimos...

    he probado ese y me sigue sin dar la suma correcta

    6+5+4 = 21 segun eso
    Según ese código sumas los 6 números. No entiendo por qué pides 6 números y solo quieres sumar 3.

  8. #8
    Tu fracaso es mi sonrisa Avatar de doctsuba
    Registro
    02 may, 13
    Mensajes
    13,772
    Cita Iniciado por Ultimatits Ver mensaje
    ´
    solo quiero saber en que fallo
    estoy empezando y llevo 30 min probando comandos de la suma pero ninguno me da lo correcto



    a ver es simple, 6 numeros por teclado, mostrar la suma de los 3 ultimos...

    he probado ese y me sigue sin dar la suma correcta

    6+5+4 = 21 segun eso
    llevas casi un mes pidiendo que te hagan las cosas, te digo como es:


    simplemente debes hacer una variable que acumule valores cuando el contador del for sea 4, 5 y 6


    pero es tontería, eso lo debes averiguar tu, he conocido a mucha gente como tu, que pide que le hagan las cosas y memorizar en esto no sirve, debes entrenar mucho.
    Me gusta A Centurion le gusta esto
    Última edición por doctsuba; 03/11/2017 a las 21:44
    Club de fans de Ricky Berwick

    ÚNICO TRIPLE [B]DOBLE[/B] USUARIO DEL DÍA EN FOROPARALELO


  9. #9
    Cita Iniciado por doctsuba Ver mensaje
    llevas casi un mes pidiendo que te hagan las cosas, te digo como es:


    simplemente debes hacer una variable que acumule valores cuando el contador del for sea 4, 5 y 6


    pero es tontería, eso lo debes averiguar tu, he conocido a mucha gente como tu, que pide que le hagan las cosas y memorizar en esto no sirve, debes entrenar mucho.
    pidiendo que me hagan todo de que? si los 3 hilos que he abierto los he hecho con el programa que habia creado yo y pidiendo que me corrijan lo que tengo mal
    Qué calor

  10. #10
    Cita Iniciado por ...cerral Ver mensaje
    Lo que te hace eso es sumar los 6 dígitos. En realidad tampoco, porque tienes mal el "sum = sum + i;". Eso te está sumando 0 + 1 + 2 + 3... Tienes que sumar el valor, no el índice, así que "sum = sum + cant".

    Y ahora tienes que hacer que solo sume los 3 últimos valores, no los 6. Puedes hacerlo con un "if i >= 3" por ejemplo.
    gracias shur, sinceramente no se me habia ocurrido usar un if para ello ya me funcionó
    Qué calor

  11. #11
    Tu fracaso es mi sonrisa Avatar de doctsuba
    Registro
    02 may, 13
    Mensajes
    13,772
    Cita Iniciado por Ultimatits Ver mensaje
    pidiendo que me hagan todo de que? si los 3 hilos que he abierto los he hecho con el programa que habia creado yo y pidiendo que me corrijan lo que tengo mal
    Pero si llevarás unos como minimo 7, vete a vacilar a otro lado
    Club de fans de Ricky Berwick

    ÚNICO TRIPLE [B]DOBLE[/B] USUARIO DEL DÍA EN FOROPARALELO


  12. #12
    ****Ban Spam/Flood/Troll Avatar de Centurion
    Registro
    10 jun, 13
    Ubicación
    Legio IX Hispana
    Mensajes
    5,746
    Cita Iniciado por Ultimatits Ver mensaje
    gracias shur, sinceramente no se me habia ocurrido usar un if para ello ya me funcionó
    Estas sumando desde el primer momento si te fijas. Lo puedes arreglar muy fácilmente con un if interno.

    Estos errores, son de concepto. Deberías revisar el código más tranquilamente y como ya te he dicho en post anteriores, hacerte una traza instrucción por instrucción.

    Coges un papel, y te pones una serie de filas llamdas 1 iteracción, 2 iteracción y así sucesivamente, y en cada fila, vas viendo que valores toman tus variables y de esa forma entenderás que falla y que no.

    Además estás sumando la iteracción, no el valor recogido en la iteracción. Si yo soy tu profesor y veo eso, te tacho el ejercicio directamente

    import java.util.Scanner;


    public static void main(String[] args) {
    // TODO Auto-generated method stub

    int value = 0;
    int result = 0;

    for (int i = 1; i <= 6; i++) {
    System.out.print("Ingrese valor " + i + ":");
    value= (new Scanner(System.in)).nextInt();
    if(i>=4)
    result= result + value;
    }

    System.out.println("The result: " + result);
    }

    }


    *PD: Este código es una mierda, si yo fuera tu profesor, este código sólo le pongo un 5. Si fuera tu, lo copiaría, lo probaría e intentaría ver como mejorarlo y hacer un código decente. Yo te doy una base funcional, pero como te digo, este código es mierda absoluta que sólo vale un 5.

    Por lo general, para programar, lo primero es pensar una idea, plasmarla en código y depurar los fallos. Una vez parezca que funciona, le sometes a pruebas, lo más exigentes posibles, depuras los fallos. Y una vez pasadas esa pruebas, le sometes a un test de complejidad del código. Que te funcione no significa que ya has terminado o que está bien hecho el código. Que te funcione es lo mínimo exigible a un programador. Luego tienes que comprobar su eficiencia. Dale una pensada a ver como podrías mejorar el código.

    Creo que ya te he dado bastantes pistas:

    Para los JUnit, te puedes leer esta documentación que te explica como hacer pruebas unitarias a tus códigos: http://www.jtech.ua.es/j2ee/publico/...4-apuntes.html
    Me gusta A Ultimatits le gusta esto
    Última edición por Centurion; 04/11/2017 a las 01:03
    Plataforma romana

  13. #13
    ****Ban Spam/Flood/Troll Avatar de Centurion
    Registro
    10 jun, 13
    Ubicación
    Legio IX Hispana
    Mensajes
    5,746
    Cita Iniciado por doctsuba Ver mensaje
    encima eres un cochinillo de código, ni comentas las cosas, ni haces las cosas elegantes, dios, me pongo envenenado.
    Esa mierda de código no se comenta. De hecho, comentar en general es malo, salvo cosas muy concretas, o que uses alguna cosa extraña, es preferible evitar comentarios, porque los códigos son algo vivo, y mañana cambiaré alguna cosa, y pasado le añadiré otra a ese método, y suele ocurrir que los comentarios no se actualizan, quedando obsoletos y no teniendo nada que ver con el código real, lo cual genera errores
    Plataforma romana

  14. #14
    ****Ban Spam/Flood/Troll Avatar de Centurion
    Registro
    10 jun, 13
    Ubicación
    Legio IX Hispana
    Mensajes
    5,746
    Cita Iniciado por Ultimatits Ver mensaje
    ´
    solo quiero saber en que fallo
    estoy empezando y llevo 30 min probando comandos de la suma pero ninguno me da lo correcto



    a ver es simple, 6 numeros por teclado, mostrar la suma de los 3 ultimos...

    he probado ese y me sigue sin dar la suma correcta

    6+5+4 = 21 segun eso
    Son dos errores los que cometes, por un lado estás haciendo SUMATORIO(1..6) con tu código, cuando sólo debería sumarte los tres últimos, y además, estas sumando los valores de la "i" es decir, las iteracciones del bucle, en vez de sumar los valores recogidos en las iteracciones del bucle, que es lo que se te pide.

    1 iteracción = 4
    2 iteracción = 0
    3 iteracción = 2
    4 iteracción = 1
    5 iteraccion = 2
    6 iteraccion = 3

    Los numeros a la izquierda de la iteracción es el valor de tu i (te lo marco en rojo), el valor recogido en cada iteracción del bucle es lo que está a la derecha del igual.
    Tu tienes que sumar las tres últimas, lo que te marco en negrita
    Plataforma romana

  15. #15
    Tu fracaso es mi sonrisa Avatar de doctsuba
    Registro
    02 may, 13
    Mensajes
    13,772
    Cita Iniciado por Centurion Ver mensaje
    Esa mierda de código no se comenta. De hecho, comentar en general es malo, salvo cosas muy concretas, o que uses alguna cosa extraña, es preferible evitar comentarios, porque los códigos son algo vivo, y mañana cambiaré alguna cosa, y pasado le añadiré otra a ese método, y suele ocurrir que los comentarios no se actualizan, quedando obsoletos y no teniendo nada que ver con el código real, lo cual genera errores
    se comenta para APRENDER, se hace el JAVADOC para tener ORDEN.

    Ya he visto demasiadas veces en mi vida /*magic code, do not touch*/

    Los marranos hacen MARRANADAS.

    No sabe hacer ni una suma con bucles básicos y le andas poniendo la cabeza como un bombo con el testeo, soy alguien que ha enseñado a MUCHA GENTE y por eso tengo mis galones.

    Ya vi demasiados gilipollas que daban asignaturas en la universidad esas cositas que dices para que luego se lo tuviera que explicar a 7 de mi clase todos los días.
    Última edición por doctsuba; 04/11/2017 a las 01:04
    Club de fans de Ricky Berwick

    ÚNICO TRIPLE [B]DOBLE[/B] USUARIO DEL DÍA EN FOROPARALELO


  16. #16
    ****Ban Spam/Flood/Troll Avatar de Centurion
    Registro
    10 jun, 13
    Ubicación
    Legio IX Hispana
    Mensajes
    5,746
    Cita Iniciado por doctsuba Ver mensaje
    se comenta para APRENDER, se hace el JAVADOC para tener ORDEN.

    Ya he visto demasiadas veces en mi vida /*magic code, do not touch*/

    Los marranos hacen MARRANADAS.
    Hombre, en universidad si comentas el código, das a entender que sabes lo que estas haciendo. Me refería al mundo profesional
    Plataforma romana

  17. #17
    Tu fracaso es mi sonrisa Avatar de doctsuba
    Registro
    02 may, 13
    Mensajes
    13,772
    Cita Iniciado por Centurion Ver mensaje
    Hombre, en universidad si comentas el código, das a entender que sabes lo que estas haciendo. Me refería al mundo profesional
    En la universidad ME COMEN LOS HUEVOS PORQUE NO SABEN PROGRAMAR.

    En la vida real, se hacen las cosas con RIGOR y PRAGMATISMO, las marranadas para los MARRANOS.
    Club de fans de Ricky Berwick

    ÚNICO TRIPLE [B]DOBLE[/B] USUARIO DEL DÍA EN FOROPARALELO


  18. #18
    ****Ban Spam/Flood/Troll Avatar de Centurion
    Registro
    10 jun, 13
    Ubicación
    Legio IX Hispana
    Mensajes
    5,746
    Cita Iniciado por doctsuba Ver mensaje
    En la universidad ME COMEN LOS HUEVOS PORQUE NO SABEN PROGRAMAR.

    En la vida real, se hacen las cosas con RIGOR y PRAGMATISMO, las marranadas para los MARRANOS.
    En Clean Code basicamente te dicen que el mejor comentario es el que no se escribe

    Plataforma romana

  19. #19
    Cita Iniciado por Centurion Ver mensaje
    En Clean Code basicamente te dicen que el mejor comentario es el que no se escribe

    que opinas de este codigo para un principiante shur, me hace lo que tiene que hacer, 2 listas de numeros, la suma de cada una y mostrar cual es mayor o si son iguales. PD: tengo que usar while para recoger las listas




    Scanner teclado = new Scanner(System.in);

    int valor = 1;
    int valor2 = 1;
    int sum = 0;
    int sum2 = 0;
    int cant = 1;
    int cant2 = 1;

    System.out.print("PRIMERA Lista\n");

    while (cant <= 4) {

    System.out.print("Dame valor " + cant + ":");
    valor = (new Scanner(System.in)).nextInt();
    sum = sum + valor;
    cant++;
    }
    System.out.print("\n");
    System.out.print("SEGUNDA Lista \n");
    while (cant2 <= 4) {
    System.out.print("Dame valor " + cant2 + ":");
    valor2 = (new Scanner(System.in)).nextInt();
    sum2 = sum2 + valor2;
    cant2++;
    }
    System.out.print("\n");
    System.out.print("TOTAL Lista 1: " + sum + "\n");
    System.out.print("TOTAL Lista 2: " + sum2 + "\n");

    if (sum > sum2) {
    System.out.println("Lista 1 MAYOR");
    }

    else if (sum2 == sum) {
    System.out.println("SON IGUALES");

    }

    else
    System.out.println("Lista 2 MAYOR");

    teclado.close();
    Qué calor

  20. #20
    ****Ban Spam/Flood/Troll Avatar de Centurion
    Registro
    10 jun, 13
    Ubicación
    Legio IX Hispana
    Mensajes
    5,746
    Cita Iniciado por Ultimatits Ver mensaje
    que opinas de este codigo para un principiante shur, me hace lo que tiene que hacer, 2 listas de numeros, la suma de cada una y mostrar cual es mayor o si son iguales. PD: tengo que usar while para recoger las listas




    Scanner teclado = new Scanner(System.in);

    int valor = 1;
    int valor2 = 1;
    int sum = 0;
    int sum2 = 0;
    int cant = 1;
    int cant2 = 1;

    System.out.print("PRIMERA Lista\n");

    while (cant <= 4) {

    System.out.print("Dame valor " + cant + ":");
    valor = (new Scanner(System.in)).nextInt();
    sum = sum + valor;
    cant++;
    }
    System.out.print("\n");
    System.out.print("SEGUNDA Lista \n");
    while (cant2 <= 4) {
    System.out.print("Dame valor " + cant2 + ":");
    valor2 = (new Scanner(System.in)).nextInt();
    sum2 = sum2 + valor2;
    cant2++;
    }
    System.out.print("\n");
    System.out.print("TOTAL Lista 1: " + sum + "\n");
    System.out.print("TOTAL Lista 2: " + sum2 + "\n");

    if (sum > sum2) {
    System.out.println("Lista 1 MAYOR");
    }

    else if (sum2 == sum) {
    System.out.println("SON IGUALES");

    }

    else
    System.out.println("Lista 2 MAYOR");

    teclado.close();
    Eso no es una lista, deberías emplear una estructura de datos que implemente la interfaz "List" como por ejemplo ArrayList

    Aquí tienes información sobre esa estructura y como usarla: https://docs.oracle.com/javase/8/doc...ArrayList.html
    Plataforma romana

Permisos de publicación

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