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

não consigo fazer como orientado

Estou fazendo conforme orientações descrito abaixo e na resposta de imc dar Nan:

<meta charset="UTF-8">

 <script>

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

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

    function calculaImc(altura, peso) {

        return peso / (altura * altura);
}

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

    var imc = calculaImc(alturaInformada, pesoInformado);

        mostra (nome + ", o seu IMC é " + imc);

        if (imc < 18.5) {
         mostra ("você está abaixo do recomendado");
}
       if (imc > 35) {
        mostra ("você está acima do recomendado"); 
}
        if (imc >= 18.5 && imc <= 35) {

        mostra ("Seu IMC está excelente");
     }

    </script>
5 respostas

Oi Aline tudo bem?

Não vou expor ninguém por isso não vou perguntar seu peso e altura rsrsrsr.

Mas por acaso você está passando a altura usando vírgula tipo 1,73? Se sim o Javascript não aceita vírgula mas sim pontos pois ele entende no formato americano. Então passe assim 1.73

Se não é isso me diga os valores que está passando nos inputs para eu simular aqui.

Além disso tinha outros errinhos que impediam o programa de continuar. Dá uma olhadinha

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>IMC</title>
</head>
<body>
    <script>

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

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

        function calculaImc(altura, peso) {

            return peso / (altura * altura);
    }

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

        var imc = calculaImc(alturaInformada, pesoInformado);

            mostra (nome + ", o seu IMC é " + imc);

            if (imc < 18.5) {
             mostra ("você está abaixo do recomendado");
    }
           if (imc > 35) {
            mostra ("você está acima do recomendado"); 
    }
            if (imc >= 18.5 && imc <= 35) {

            mostra ("Seu IMC está excelente");
         }

        </script>
</body>
</html>


Na oitava linha com contéudo mudei pulalinha para pulaLinha();

Espero ter ajudado colega!!!!

André,

Primeiramente obrigada. Pelo que entendi há algum erro no espaço, mas não estou conseguindo identificar. Consegui o resultado do IMC, mas a função if não responde.

Oi Aline o erro se encontra na chamada da função pulaLinha, dentro da função mostra você tá chamando assim:

 pulalinha

E o correto seria:

 pulaLinha();

Além disso na entrada dos dados não coloque vírgula para separar metro de centímetros e sim o ponto: Ex:1.74

No if que não é uma função e sim uma estrutura condicional, você pode trabalhar com if else if já que só teremos um resultado para o imc:

if(imc<18.5){
    mostra("Você está abaixo do recomendado");
  }
  else if(imc>35){
    mostra("Você está acima do recomendado");
  }else{
    mostra("Você está na faixa ideal");
  }

Espero ter ajudado e bons estudos.

solução!

Obrigada Maison, deu certo agora.

Oi Aline! Tudo bem?

Não se esqueça de marcar uma resposta como solução para que os próximos alunos consigam achar as respostas de maneira mais fácil!

Abraços!!