Solucionado (ver solución)
Solucionado
(ver solución)
9
respuestas

IMC PROMEDIO// NO ES COMO ESPERO.

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad HOLA, ALGUIEN TAN AMABLE DE INDICARME DONDE ESTA MI ERROR DEL POR QUE SE DUPLICAN LOS IMC DOS VECES, MI INTENCION ERA DEJAR VISIBLE LOS 2 IMC Y MOSTRAR EL PROMEDIO. PERO ME APARECEN 4 IMC Y EL PROMEDIO Y NO ENTIENDO DEL POR QUE. GRACIAS DE ANTEMANO

9 respuestas

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad ESTE ES EL RESULTADO, AL QUE ME REFIERO QUE SE REPITE DOS 2 VECES

.....

solución!

Hola buenas tardes que tal, estuve probando tu código y encontré la redundancia, está en línea 21 donde estás haciendo lo de los promedios, ya que estas mandando a imprimir otra vez la función donde tiene el otro imprimir pero no estas mandando los argumentos por eso sale el undefined, adjunto el de como lo corregí.

<meta charset="UTF-8">
<script>
    function saltarLinea(){
        document.write("<br>");
        document.write("<br>");
        document.write("<br>");
    }
    function imprimir(frase){
        document.write(frase)
        saltarLinea();
    }

    function calcularImc(peso,altura,nombre){
        imc = peso/ (altura * altura);
        imprimir("El imc calculado de la manera cotra " + nombre + " es: " + Math.round(imc));
        return(imc);
    }
    //Crear variables es una solucion
    var imc1 = calcularImc(55,1.80, "edu");
    var imc2 = calcularImc(80,1.60,"luis");
    //Redundancia en el imprir por que esta mandando a llamar otra ves la funcion de calcular donde ya esta el imprimir
    //imprimir("El promedio de los imc es: " + Math.round(calcularImc(55,1.80) + calcularImc(80, 1.60)/2));

    imprimir("El promedio de los IMC es: " + Math.round( ( imc1 + imc /2) ));
</script>

hola, de hecho no, ya lo intente. me explico de mejor forma, al ejecutarlo se repite dos veces el resultado del imc edu: 17 luis: 31 luego se repite: edu: 17 luis: 31 (me faltaba poner los nombres en la línea 21) por eso salia undefined.

y después me da el imc promedio 33

lo que no esta bien es que se repita. gracias por tu comentarios si puedes copiar el código y probarlo tu mismo me ayudaria mas. para ver si juntos llegamos al error.

elimina las lineas 19 y 20... eso hace que se repita... saludos

Ah ok ya, pense mal disculpa, pense que querias que quedara asi

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad Entonces si solo era agregar como bien dices los parametros de Edu y Luis para quitar el Undefined

    imprimir("El promedio de los imc es: " + Math.round(calcularImc(55,1.80,"Edu") + calcularImc(80, 1.60,"Luis")/2));

Ingrese aquí la descripción de esta imagen para ayudar con la accesibilidad Me dices si encontraste solucion, animo y exito

muchas gracias a todos por sus comentarios!

Hola leopoldo, no, la anterior respuesta que le diste estaba bien... las lineas 19 y 20 deben ser declaradas como variables y alli no lo estan... O bien, como dije yo antes, directamente eliminarlas...

Si las declara como variables, debe cambiar, (como bien dijiste) la formula de imprimir promedio por la que pusiste anteriormente.

Declararlas como variables es lo que se debe hacer.

Saludos

Hola a todos¡¡

Según entiendo lo que hace que se repitan los textos es que desde la funcion de calcularIMC de la línea 14, manda a imprimir el mensaje con el IMC y el nombre, pero cuando vuelve a llamar la función calcularIMC en la línea 21 pues vuelve a imprimir lo que ya habia impreso desde la linea 19 y la 20. Espero haber explicado mi punto.

Una disculpa por la respuesta tal vez tan coloquial o sencilla.

Muchos saludos¡¡