Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
1
respuesta

[Proyecto] IMC condicionales

<!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Calculo de imc</title>
    </head>
    <body>

    <h1>PROGRAMA</h1>

    <script>

    function saltarlinea() {
        document.write("<br><br><br>");


    }
    function imprimir(frase) {
        document.write(frase)
        saltarlinea();
    }

    function calcularimc(peso,altura) {

        return (imc = peso / (altura * altura));
    }



    nombre = prompt("informe su nombre");
    pesoInformado = prompt(nombre + ", informe su peso");
    alturaInformada = prompt(nombre + ", informe su altura ");

    imcalculado = calcularimc(pesoInformado,alturaInformada);

    imprimir(nombre + ", tu indice de IMC es : " + imcalculado + Math.round(imcalculado));


    if  (imcalculado < 18.5){
            imprimir("IMC abajo de lo recomendado");
        } 
        if  (imcalculado >= 18.5){
            if (imcalculado < 25){
                imprimir(" IMC esta dentro del intervalo normal");
            }
        } 
        if  (imcalculado >= 25){
            if (imcalculado < 30){
                imprimir(" IMC considerado como sobrepeso");
            }
        } 
        if  (imcalculado >= 30){
            imprimir("IMC considerado como obesidad");
        } 



    </script>

    </body>
    </html>
1 respuesta

¡Hola Juan!

En tu código, estás calculando el índice de masa corporal (IMC) de una persona y mostrando un mensaje dependiendo del resultado. Sin embargo, hay algunos problemas con la lógica de los condicionales.

Primero, el primer condicional debería ser if (imcalculado < 18.5) en lugar de if (imcalculado >= 18.5). De lo contrario, el mensaje "IMC abajo de lo recomendado" nunca se mostrará.

Segundo, los condicionales posteriores deberían ser else if en lugar de if, ya que solo queremos que se evalúe una condición a la vez. De lo contrario, si el IMC es menor a 18.5, se mostrarán todos los mensajes de los condicionales posteriores.

Por último, el mensaje que muestra el IMC debería ser redondeado a solo un decimal, en lugar de dos. Puedes hacerlo utilizando la función toFixed(1).

Aquí está el código corregido:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Calculo de imc</title>
</head>
<body>

<h1>PROGRAMA</h1>

<script>

function saltarlinea() {
    document.write("<br><br><br>");
}

function imprimir(frase) {
    document.write(frase)
    saltarlinea();
}

function calcularimc(peso,altura) {
    return (imc = peso / (altura * altura));
}



nombre = prompt("informe su nombre");
pesoInformado = prompt(nombre + ", informe su peso");
alturaInformada = prompt(nombre + ", informe su altura ");

imcalculado = calcularimc(pesoInformado,alturaInformada);

imprimir(nombre + ", tu indice de IMC es : " + imcalculado.toFixed(1));

if (imcalculado < 18.5) {
    imprimir("IMC abajo de lo recomendado");
} else if (imcalculado < 25) {
    imprimir("IMC dentro del intervalo normal");
} else if (imcalculado < 30) {
    imprimir("IMC considerado como sobrepeso");
} else {
    imprimir("IMC considerado como obesidad");
}

</script>

</body>
</html>

¡Espero haber ayudado y buenos estudios!