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>

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
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!