Otros Java ayuda?

  1. #1
    (◕ ♈ ◕ ) Avatar de Ultimatits
    Registro
    13 nov, 16
    Mensajes
    2,773
    Me gusta (Dados)
    523
    Me gusta (Recibidos)
    494

    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);
    }

    }

  2. #2
    ForoParalelo: Führer Avatar de secta_suicida
    Registro
    25 abr, 14
    Mensajes
    19,901
    Me gusta (Dados)
    5417
    Me gusta (Recibidos)
    10202
    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
    se te da mal porque pides ayuda todo el rato

  4. #4
    encima eres un cochinillo de código, ni comentas las cosas, ni haces las cosas elegantes, dios, me pongo envenenado.

  5. #5
    (◕ ♈ ◕ ) Avatar de Ultimatits
    Registro
    13 nov, 16
    Mensajes
    2,773
    Me gusta (Dados)
    523
    Me gusta (Recibidos)
    494
    Cita Iniciado por doctsuba Ver mensaje
    El mensaje está oculto porque el usuario está en tu lista de ignorados.
    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
    El mensaje está oculto porque el usuario está en tu lista de ignorados.
    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

  6. #6
    ForoParalelo: Miembro Avatar de ...cerral
    Registro
    09 dic, 15
    Mensajes
    1,141
    Me gusta (Dados)
    223
    Me gusta (Recibidos)
    254
    Cita Iniciado por Ultimatits Ver mensaje
    El mensaje está oculto porque el usuario está en tu lista de ignorados.

    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.

  7. #7
    ForoParalelo: Führer Avatar de secta_suicida
    Registro
    25 abr, 14
    Mensajes
    19,901
    Me gusta (Dados)
    5417
    Me gusta (Recibidos)
    10202
    Cita Iniciado por Ultimatits Ver mensaje
    El mensaje está oculto porque el usuario está en tu lista de ignorados.
    ´
    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
    Cita Iniciado por Ultimatits Ver mensaje
    El mensaje está oculto porque el usuario está en tu lista de ignorados.
    ´
    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.
    Última edición por doctsuba; 03/11/2017 a las 21:44

  9. #9
    (◕ ♈ ◕ ) Avatar de Ultimatits
    Registro
    13 nov, 16
    Mensajes
    2,773
    Me gusta (Dados)
    523
    Me gusta (Recibidos)
    494
    Cita Iniciado por doctsuba Ver mensaje
    El mensaje está oculto porque el usuario está en tu lista de ignorados.
    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

  10. #10
    (◕ ♈ ◕ ) Avatar de Ultimatits
    Registro
    13 nov, 16
    Mensajes
    2,773
    Me gusta (Dados)
    523
    Me gusta (Recibidos)
    494
    Cita Iniciado por ...cerral Ver mensaje
    El mensaje está oculto porque el usuario está en tu lista de ignorados.
    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ó

  11. #11
    Cita Iniciado por Ultimatits Ver mensaje
    El mensaje está oculto porque el usuario está en tu lista de ignorados.
    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

  12. #12
    ****Ban Spam/Flood/Troll Avatar de Centurion
    Registro
    10 jun, 13
    Ubicación
    En la cama de tu hermana
    Mensajes
    8,440
    Me gusta (Dados)
    1379
    Me gusta (Recibidos)
    2676
    Cita Iniciado por Ultimatits Ver mensaje
    El mensaje está oculto porque el usuario está en tu lista de ignorados.
    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
    Última edición por Centurion; 04/11/2017 a las 01:03

  13. #13
    ****Ban Spam/Flood/Troll Avatar de Centurion
    Registro
    10 jun, 13
    Ubicación
    En la cama de tu hermana
    Mensajes
    8,440
    Me gusta (Dados)
    1379
    Me gusta (Recibidos)
    2676
    Cita Iniciado por doctsuba Ver mensaje
    El mensaje está oculto porque el usuario está en tu lista de ignorados.
    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

  14. #14
    ****Ban Spam/Flood/Troll Avatar de Centurion
    Registro
    10 jun, 13
    Ubicación
    En la cama de tu hermana
    Mensajes
    8,440
    Me gusta (Dados)
    1379
    Me gusta (Recibidos)
    2676
    Cita Iniciado por Ultimatits Ver mensaje
    El mensaje está oculto porque el usuario está en tu lista de ignorados.
    ´
    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

  15. #15
    Cita Iniciado por Centurion Ver mensaje
    El mensaje está oculto porque el usuario está en tu lista de ignorados.
    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

  16. #16
    ****Ban Spam/Flood/Troll Avatar de Centurion
    Registro
    10 jun, 13
    Ubicación
    En la cama de tu hermana
    Mensajes
    8,440
    Me gusta (Dados)
    1379
    Me gusta (Recibidos)
    2676
    Cita Iniciado por doctsuba Ver mensaje
    El mensaje está oculto porque el usuario está en tu lista de ignorados.
    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

  17. #17
    Cita Iniciado por Centurion Ver mensaje
    El mensaje está oculto porque el usuario está en tu lista de ignorados.
    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.

  18. #18
    ****Ban Spam/Flood/Troll Avatar de Centurion
    Registro
    10 jun, 13
    Ubicación
    En la cama de tu hermana
    Mensajes
    8,440
    Me gusta (Dados)
    1379
    Me gusta (Recibidos)
    2676
    Cita Iniciado por doctsuba Ver mensaje
    El mensaje está oculto porque el usuario está en tu lista de ignorados.
    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

    Java ayuda?

  19. #19
    (◕ ♈ ◕ ) Avatar de Ultimatits
    Registro
    13 nov, 16
    Mensajes
    2,773
    Me gusta (Dados)
    523
    Me gusta (Recibidos)
    494
    Cita Iniciado por Centurion Ver mensaje
    El mensaje está oculto porque el usuario está en tu lista de ignorados.
    En Clean Code basicamente te dicen que el mejor comentario es el que no se escribe

    Java ayuda?
    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();

  20. #20
    ****Ban Spam/Flood/Troll Avatar de Centurion
    Registro
    10 jun, 13
    Ubicación
    En la cama de tu hermana
    Mensajes
    8,440
    Me gusta (Dados)
    1379
    Me gusta (Recibidos)
    2676
    Cita Iniciado por Ultimatits Ver mensaje
    El mensaje está oculto porque el usuario está en tu lista de ignorados.
    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

Permisos de publicación

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