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

O que há de errado com o código?

Galera, tentei fazer o código de uma maneira um pouco diferente mas o único resultado que eu recebo é NaN. Já analisei várias vezes e não achei o defeito do código.

<meta charset="UTF-8">

<script>
    function pulaLinha() {

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

    function mostra(frase) {

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

      function calculaImc(peso, altura) {

          return peso / (altura * altura);
      }

      var imc = calculaImc(pesoInformado, alturaInformada);

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

      mostra("O IMC calculado é " + imc);


</script>
4 respostas

solução!

Amigo, tenta chamar a função depois de pegar as variaveis, assim:

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

var imc = calculaImc(pesoInformado, alturaInformada);
mostra("O IMC calculado é " + imc);

Olá Bruno! Esse erro, NaN (Not a Number) ocorre porque o resultado esperado pelo JavaScript, no caso o imc, é um número mas não é isso que ocorre. O erro ocorre neste caso porque você inverteu a ordem das instruções. Elas são executadas sequencialmente, então você só pode chamar a função que calcula o imc depois que todas as variáveis envolvidas no cálculo estiverem sido declaradas, somente depois que o peso e a altura forem informadas. Faça assim:

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

var imc = calculaImc(pesoInformado, alturaInformada);

Abraços e sucesso nos estudos!!

Entendi. Obrigado galera!