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

Calculo IMC Errado

Optei por tentar fazer sem a função para calculo do IMC mas o calculo não é feito corretamente. O peso é dividido pela altura antes de ser realizada a multiplicação. Poderiam me ajudar?

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

    function mostra(frase) {
        document.write(frase);
        pulaLinha();
    }
    var altura = parseFloat(prompt("Insira sua altura"));
    var peso = parseInt(prompt("Insira o seu peso"));
    var imc = peso/(altura*altura);

    mostra("O seu IMC é : " + imc) ;

</script>
9 respostas

É só colocar a função novamente que funciona normalmente.

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

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

function caculaImc(altura, peso) {

return  peso / (altura * altura);

}


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

var imc = caculaImc(alturaInformada, pesoInformado);

mostra(" O seu IMC é " + "<strong>" + imc + "</strong>");

</script>

Não existe outra alternativa? Somente com função? :(

Sim, eu fiz esse sem a função para você. Espero ter ajudado!

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

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


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

var imc = pesoInformado / (alturaInformada * alturaInformada);

mostra(" O seu IMC é " + "<strong>" + imc + "</strong>");

</script>

Obrigada, Clelson. Realmente deu certo! Mas eu não entendi porquê não funciona com o comando parseInt. Pelo que entendi, o prompt lê os dados como String e o ParseInt converteria para numeros. Mas a operação matemática não funcionou com o ParseInt. Tive que retirar e escrever apenas o prompt para que a operação fosse bem sucedida.

Com o "ParseInt" funciona também, nesse caso eu não usei, mas você pode usar que vai dar o mesmo resultado. Tudo que você disse está certo. Eu não usei o "ParseInt" pois o JavaScript já fez essa troca na hora do cálculo pra mim.

Nesse outro exemplo, eu usei o "ParseInt" e funcionou normalmente também.

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

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


var alturaInformada = parseInt(prompt(" Informe sua altura:"));
var pesoInformado = parseInt(prompt(" Informe seu peso:"));

var imc = pesoInformado / (alturaInformada * alturaInformada);

mostra(" O seu IMC é " + "<strong>" + imc + "</strong>");

</script>

Ele roda direitinho. Mas o resultado do IMC não ta batendo. Você conseguiu?

De fato, eu fui testar e não funcionou. Passei despercebido, eu tentei fazer os testes de outro jeito, tipo esse que eu fiz agora, mas não funciona sem a função. Precisa da função e do "return" para retornar o valor. Eu acredito que só com a variável não funcione por causa que não tem como retornar o valor.

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

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


var alturaInformada = parseInt(prompt(" Informe sua altura:"));
var pesoInformado = parseInt(prompt(" Informe seu peso:"));

var quadrado = (alturaInformada * alturaInformada);

var calculo = (pesoInformado/quadrado);


mostra(" O seu IMC é " + "<strong>" + calculo + "</strong>");

</script>
solução!

Consegui fazer sem a função, Clelson!!!! :D Só precisava alterar a leitura do número de ParseInt para ParseFloat. Agora ta calculando certinho <3

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

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



   var altura = parseFloat(prompt("Informe a altura"));
   var peso = parseInt(prompt("Informe o Peso"));


   var imcCalculado = peso / (altura * altura);


    mostra("O seu IMC é : " + imcCalculado) ;

</script>

Bom saber, assim o código fica menor. Gostei!