Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
Ya estoy inscrito ¿Todavía no tienes acceso? Nuestros Planes
6
respuestas

Indice Masa Corporal Mejorado

<meta charset="UTF-8" />

<h1>Calculando IMC</h1>

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

  function imprimir(texto) {
    document.write(texto);
    saltarLinea();
  }

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

  altura = parseInt(prompt("Ingrese su altura"));
  peso = parseInt(prompt("Ingrese su peso"));
  imc = calcularImMC(peso, altura);
  imprimir("El indice de masa corporal de " + "Akion" + " es: " + imc);

  if (imc < 18.5) {
    imprimir("Insuficiencia de peso");
  } else if (imc > 18.5 && imc < 24.9) {
    imprimir("Peso normal");
  } else if (imc > 25 && imc < 29.9) {
    imprimir("Sobrepeso");
  } else if (imc > 30 && imc < 34.9) {
    imprimir("Obesidad grado I");
  } else if (imc > 35 && imc < 39.9) {
    imprimir("Obesidad grado II");
  } else if (imc > 40) {
    imprimir("Obesidad grado III");
  }
</script>
6 respuestas

Muy bueno! a seguir asi, son los primero pasos :)

Gracias por compartir tu codigo , sigue asi !!

Adelante, vas por buen camino.

Hola por que no usaste el parseInt en el prompt? si esta recibiendo un número..

Hola, tienes razón. Se me olvidó utilizarlo, pero recuerda que JavaScript realiza algunas conversiones automáticas como lo es en este caso, el lenguaje detecta que se quiere realizar una multiplicación y por ende convierte los Strings a valores numéricos y después los multiplica.

Cabe mencionar que cuando sucede con las sumas lo que hace es concatenar los Strings y no los suma, pero con las multiplicaciones si lo hace.

Pero gracias, ya voy a cambiarlo.

Gracias por aclarar mi duda Carlos, mi código también funcionó sin la conversión pero fue ahí donde me pareció que había algo raro. Tendré en cuenta esa diferencia entre sumas o multiplicaciones.