4
respostas

Interagindo com o usuário calculo de IMC

Eu não estou conseguindo fazer esse código funcionar direito, procurei seguir o passo a passo, mas não está funcionando não sei se é na função var ou se criei errado as funções mas ele não calcula e nem mostra o resultado que deveria. Alguém pode me ajudar?

<h1>CALCULE AQUI O SEU IMC</h1>
    <script>
            function pulalinha(){
                document.write("<br><br>")
            }
            function mostra(frase){
                document.write(frase)
                pulalinha()
            }
            function calculaimc(peso,altura){
                return peso/(altura*altura)

            }
            var nome = prompt("Informe-nos o seu nome");
            var altura = prompt("Informe a sua altura");
            var peso = prompt("Informe o seu peso");
            var imc = calculaimc(peso,altura);

            mostra(nome + "O seu IMC é : "+ imc );
            mostra("Não deixe o seu indice ficar muito alto");


    </script>
4 respostas

Oi Victor

O código que postou está funcionando, inseri 1.8 de altura com o ponto e o peso também, ele calculou certinho.

Qual seria o erro?

Muito Obrigado

Eu descobri depois que eu estava fazendo errado, o programa não aceita mesmo virgula, somente ponto

ai funcionou.

Mesmo assim muito obrigado !!!

Oi Victor

Você pode tentar garantir mesmo se a pessoa digite com vírgula ele consiga fazer o cálculo. Existe uma função que chama replace que busca algum caractere ou palavra e substitui por outra. Ficaria assim:

<h1>CALCULE AQUI O SEU IMC</h1>
<script>
  function pulalinha() {
    document.write('<br><br>');
  }
  function mostra(frase) {
    document.write(frase);
    pulalinha();
  }
  function calculaimc(peso, altura) {
    return peso / (altura * altura);
  }
  var nome = prompt('Informe-nos o seu nome');
  var altura = prompt('Informe a sua altura');
  var peso = prompt('Informe o seu peso');
  var imc = calculaimc(peso, altura.replace(',', '.'));

  mostra(nome + 'O seu IMC é : ' + imc);
  mostra('Não deixe o seu indice ficar muito alto');
</script>

Repare que aqui: var imc = calculaimc(peso, altura.replace(',', '.')); o replace está buscando na altura a ocorrência da vírgula e substituindo por ponto.

Estava abrindo uma dúvida aqui no fórum para verificar essa questão da vírgula quando a pessoa digitava e dava erro.

Achei a resposta aqui.

Obrigado!