¡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!