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

Revisei várias vezes mas o IMC retorna com 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 calculado é " + imc);

if(imc < 18.5) {

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

if(imc > 35) {

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

if(imc >= 18.5  && imc <= 35) {

    mostra("Seu IMC está bom!")
}

mostra("FIM");

</script>
1 resposta
solução!

Olá Cláudio, tudo bem com você?

Eu testei o seu código está funcionando corretamente, acredito que aconteceu por você inserir altura dessa seguinte maneira:

Geovani, informe sua altura:
1,7 

E ai o resultado realmente é NaN, pois com o javascript a separação decimal, diferente do Português, é feita com .

Então na verdade deveria ser:

Geovani, informe sua altura:
1.7 

Acontece que quando inserimos o valor separando por vírgula, o javascript considera como se fosse um texto, e ao fazer:

( altura * altura ) 

Ele acaba dando um erro de NaN(Not a Number), pois não há como fazer a multiplicação de texto :)

Mas o seu código está correto!

Abraços e Bons Estudos :)