Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Não calcula IMC

Olá, eu fiz o código igaul ao professor, porem na hora de executar meu código, ele não calcula meu IMC e aparece a seguinte mensagem "Gabu, o seu IMC é NaN"

<meta charset="UTF-8">

<script>

    function pulaLinha() {

        document.write("<br>");
        document.write("<br>");
}

    function mostra(frase) {

        document.write(frase);
        pulaLinha();
}

    function calculaImc(altura, peso) {

        return peso / (altura * altura);
}

var nome = prompt("Informe o seu nome");
var alturaInformada = prompt(nome + ", informe sua altura");
var pesoInformado = prompt(nome + ", informe seu peso");

var imc = calculaImc(alturaInformada, pesoInformado);

mostra(nome + ", o seu IMC é " + imc);

if(imc < 18.5) {

    mostra("Você está abaixo do recomendado");

}

if(imc > 35) {

    mostra("Você está acima do recomendado");
}

if(imc >= 18.5) {

    if(imc <= 35) {

        mostra("Seu IMC está excelente!");

    }

}
1 resposta
solução!

Fala Gabryel, tranquilo? Espero que sim! Seu código está dando "Gabu, o seu IMC é NaN" pois faltou converter os dados da altura e peso informados. Por padrão eles ficam armazenados como string e você precisa converte-los para inteiro para poder realizar os cálculos do IMC. Para converter basta usar a função parseInt para tranformar em inteiro ou parseFloat para transformar em um float. Nesse caso ficaria assim:

var alturaInformada = parseFloat(prompt(nome + ", informe sua altura"));
var pesoInformado = parseFloat(prompt(nome + ", informe seu peso"));

Espero ter te ajudado! Abraços e bons estudos.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software