1
resposta

Erro no programa do IMC

Na aula 06, atividade 07 temos um programa de IMC usando o usuario para descobrir atraves da tabela, porem eu fiz e deu NaN, tentei fazer igual a do video e deu NaN, copiei a transcrição em um novo programa e deu NaN, tentei usar o parseInt( ) para ver se resolvia, mas o imc deu 120, que foi o valor do peso que eu coloquei pelo prompt no navegador. Gostaria de saber onde está o meu erro!

insira s<meta charset="utf-8">

<script>

    function pulaLinha() {

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

    function mostrar(frase) {

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

    function calculaImc(altura, peso) {

        return peso/(altura * altura);
    }

    var nome = prompt("Qual o seu nome?");
    var alturaInformada = prompt(nome + ", qual a sua altura?");
    var pesoInformado = prompt(nome + ", qual o seu peso?");
    var imc = calculaImc(alturaInformada, pesoInformado);


    document.write(nome + ", o seu IMC é: " + imc);

    if(imc < 18.5) {
        mostrar(nome + ", voce está abaixo do peso!");
    }

    if(imc >= 18) {
        if(imc <=24.9) {
            mostrar(nome + ", voce está com peso normal!");
        }
    }

    if(imc >= 25) {
        if(imc <= 29.9) {
            mostrar(nome + ", voce está sobrepeso!");
        }
    }

    if(imc >= 30) {
        if(imc <= 34,9) {
            mostrar(nome + ", voce está com obesidade grau 1!");
        }
    }

    if(imc >= 35) {
        if(imc <= 39,9) {
            mostrar(nome + ", voce está com obesidade grau 2!");
        }
    }

    if(imc >= 40) {
        mostrar(nome + ", voce está com obesidade mórbida!");
    }

</script>eu código aqui
1 resposta

Rodrigo, rodei exatamente seu código e deu certo. Com altura = 2 e peso = 100, meu imc deu 25.

Como sugestão, você poderia usar parseFloat para os valores de peso e altura, e não parseInt.