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

Meu código só apresenta uma condição.

Boa Tarde professor ! No meu código está dando resultado que se aplica só uma condição. Ex: IMC é : 0.00032651529367611184

8 respostas

Lucas, blz?

Compartilha seu código aqui. Não esquece de usar o botão "<> INSERIR SEU CÓDIGO" logo acima para isso.

Bom dia Professor segue o código!

<meta charset="utf-8">
    <script>

        function pulaLinha(){

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

        }

        function mostra(frase){

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

        function calculoImc(altura, peso){

                return  peso / (altura*altura);

        }
        var nome = prompt("Informe seu nome : " + nome);
        var alturaIformada = prompt(nome + " o seu peso é : ");
        var pesoInformado = prompt(nome + "  o sua Altura é : ");

        var imc = calculoImc(alturaIformada, pesoInformado);

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

            if(imc < 18.5){

                mostra(" Vá buscar um NUTRICIONISTA JÁ.");

            }

            if(imc > 35){

                mostra(" Você está REDONDO.")
            }

            if(imc >= 18.5){

                if(imc <= 35){

                    mostra(" Você está BEM ");
    >            }
            }

    </script

Lucas, blz?

Você só inverteu as bolas quando foi pegar do usuário o peso e a altura. Deixei o comentário onde vc fez isso.

    <script>

        function pulaLinha(){

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

        }

        function mostra(frase){

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

        function calculoImc(altura, peso) {

            return peso / (altura * altura);
        }

        // Removi aqui o trecho "+ nome"
        var nome = prompt("Informe seu nome: ");

        // Inverti aqui, o peso e a altura estavam invertidas.
        var alturaIformada = prompt(nome + " a sua altura é : ");
        var pesoInformado = prompt(nome + "  o seu peso é : ");

        mostra(alturaIformada * alturaIformada)

        var imc = calculoImc(alturaIformada, pesoInformado);


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

        if(imc < 18.5){

            mostra(" Vá buscar um NUTRICIONISTA JÁ.");

        }


        if(imc >= 18.5){

            if(imc <= 35){

                    mostra(" Você está BEM ");
            }
        }

        if(imc > 35){

            mostra(" Você está REDONDO.")
        }

    </script>

Não esquece de marcar uma resposta como solução ;-)

Bom dia Professor! Não deu certo ele está me retornando só meu peso sem dividir com altura^2 (1 Lucas seu o IMC 83 Você está REDONDO) e ainda fiquei com uma duvida verifiquei as alterações que o Sr fez no código e notei que está faltando uma função (parseInt) "var alturaIformada = prompt(nome + " a sua altura é : "); var pesoInformado = prompt(nome + " o seu peso é : ");". E na aula estamos aprendendo a usar o mesmo. Estou enviando o meu código novamente com algumas alterações sugerida pelo o Sr.

<meta charset="UTF-8">
<script>
        function pulaLinha(){
            document.write("<br>");
        }

        function mostra(frase){

            document.write(frase);
            pulaLinha();

        }

        function ImcCalculo(altura, peso){


            return peso / (altura * altura);


        }
        var nome = prompt("Informa o seu nome: ");

        var alturaInformada = parseInt(prompt(nome + " Informe sua Altura"));
        var pesoInformada = parseInt(prompt(nome +" Informe seu peso"));


        mostra(alturaInformada*alturaInformada);

        var imc = ImcCalculo(alturaInformada, pesoInformada);    

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

            if(imc < 18.5){

                mostra("Vá buscar um NUTRICIONISTA JÁ. ");
            }

            if(imc >= 18.5){

                if(imc <= 35){

                mostra("Você está BEM");
                }
            }

            if(imc > 35){

                mostra("Você está REDONDO");

            }



</script>
solução!

Lucas, tudo bom?

Não sou professor, sou um colega como você :-)

Fiz o teste aqui, não achei erros na minha resposta. Quais valores você está usando?

A função parseInt() tem um problema nesse contexto. Ela só vai funcionar se você tiver 1 metro, ou dois metros, etc. Pq? Se você tiver 1.80m a função vai converter para o inteiro 1 (um). Por isso, qualquer valor abaixo de 2 que você colocar vai parecer que ele está retornando o seu peso pq estará multiplicando 1 * 1 e depois dividindo isso pelo seu peso. Exemplo, 90 / (1 * 1).

Coloquei a resposta nesse repositório para você verificar que calcula corretamente:

https://js.do/code/imc_alura

Oi Ronald boa noite ! Agora entendi, muito obrigado pela ajuda!