Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

eu tentei reproduzir o código, mas na hora da execução ele apresenta o texto só que dá NaN; alguém sabe aonde estou errando?

<meta charset="UTF-8">
<script>
    function pulaLinha() {
        document.write("<br>");
    }

    function mostra(frase) {
        document.write(frase);
        pulaLinha();
    }

    function calculaimc(peso, altura) {

        return imc = peso / (altura * altura);

    }

    var pesoInformado = prompt("Informe o seu peso");
    var alturaInformada = prompt("Informe a sua altura");

    var imc = calculaimc (pesoInformado, alturaInformada);

    document.write("Seu IMC é " + imc);

</script>

`

2 respostas
solução!

Ezequiel,

Veja se funciona dessa forma (não testei):

    var pesoInformado = prompt("Informe o seu peso");
    var alturaInformada = prompt("Informe a sua altura");

    var pesoCalc = parseFloat(pesoInformado);
    var alturaCalc = parseFloat(alturaInformada);

    var imc = calculaimc (pesoCalc, alturaCalc);

    document.write("Seu IMC é " + imc);

Olá Ezequiel, tudo bem com você?

Seu código está funcionando direitinho, o problema está no input que estamos dando. Perceba que se inserirmos a altura e o peso, separando as casas decimais através do ponto (e.g. altura: 1.70, peso: 72.5), o código provavelmente vai calcular o IMC sem problemas. Agora, se usarmos a vírgula para fazer a separação, o valor não será reconhecido e retornará o NaN (Not a Number).

Isso acontece pois o programa só reconhece o padrão de escrita internacional, onde o ponto é usado para separar casas decimais, diferente daqui onde costumamos usar a vírgula.

Espero ter ajudado, se ficou qualquer dúvida é só avisar!

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