11
respostas

o calculo do meu imc esta dando sempre Nan

insira seu código aqu
<meta charset="UTF-8">
<h1>imc Difinitivo</h1> 
<script>
    function pulaLinha (){
        document.write("<br>");

    }
    //ainda sem sucesso :(
    function mostra (frase){
        document.write(frase);
        pulaLinha();
    }

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


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

        var imc = somaDoImc(alturaInformada, pesoInformado);

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


</script>
11 respostas

Oi, Matheus, tudo bem?

Alguns detalhes provocaram esse erro. Você precisa colocar os parametros da função somaDoImc na sequencia em que eles estão sendo passadas no var imc = somaDoImc(alturaInformada, pesoInformado);

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

Espero ter te ajudado!

É difícil sugerir muitas alterações, mas testando seu código ele retornou "Nan", quando não passei ou a altura ou o peso.

Ele tenta calcular, mas não consegue. Tenta assim, e ai pode implementar tratamentos melhores. Aqui só evitei a execução do calculo, mas não aprofundei muito....

Vê se realmente era isso.

<meta charset="UTF-8">
<h1>imc Difinitivo</h1> 
<script>

    function pulaLinha (){
        document.write("<br>");

    }

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

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

        // mão calcula em caso de estar sem as infomações
        if(alturaInformada == '' || pesoInformado == ''){

            document.write( nome + "<br>Erro, Não podemos calcular o IMC sem os dados de altura ou peso");

        }else{

            var imc = ( pesoInformado / (alturaInformada * alturaInformada) );
            document.write( nome + ",seu imc é: " + imc);
        }

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

    }

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

    function somaDoImc(altura, peso){
          return imc = peso / (altura * altura) 

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

        var imc = somaDoImc(alturaInformada, pesoInformado);
        document.write( nome + ", seu imc é: " + imc);


</script>

Me parece ser o mesmo código anterior. Não deu certa a minha sugestão ?

Oi, Matheus, tudo bem?

Vi que você alterou seguinte a minha orientação da sequência dos paramêtros passados pela função :}

Testei o seu código e tá tudo certo com ele!

coloco meu nome, peso e altura, mas mesmo assim aparece NaN, fiz e refiz o código umas 3 vezes, vagner eu ainda nao aprendi certos codigos e tags como : if(se) ou else ainda estou pegando as manhas com o que é explicado na aula

Oi, Mateus!

Me passa extamente valores que você está inserindo nos campos.

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

    }

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

    function somaDoImc(altura, peso){
          return imc = peso / (altura * altura) 

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

        var imc = somaDoImc(alturaInformada, pesoInformado);
        document.write( nome + ", seu imc é: " + imc);


</script>



nao estou conseguindo mesmo :/

eu insiro minha altura e meu peso

O código está funcionando. Será que você não está colocando o peso e/ou altura com virgula ao invés de ponto? Exemplo:

Correto: 1.78 , 72.4

Errado: 1,78, 72,4

Errado²: 1.78m, 72,4kg

Olá Matheus,

Provavelmente é algo nos valores que você estão enviando, para fazer o cálculo o programa precisa receber apenas números inteiros (int) e/ou flutuantes (números quebrados sepados por ponto pois esse é o padrão utilizado).

Espero ter ajudado, abraços!

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