1
resposta

Calculando IMC - Sugestões de melhoria?

Poderiam compartilhar como fizeram esse exercício e dar uma olhada no código? Acabei quebrando bem a cabeça para fazer a função " calcImc" funcionar. No fim funcionou, mas não sei se essa seria uma forma correta de montar o código.

<meta charset="UTF-8">
<h2>Calculando o IMC (índice de massa corporal)</h2>
<script>
    function pulaLinha() {
        document.write("<br><br>");
    }
    function mostrar(texto) {
        document.write(texto);
        pulaLinha();
    }
    function calcImc(peso, altura){
        var imc=(Math.round(peso/(altura**2)))
        mostrar(" * Índice de massa corporal (IMC) = "+imc);
    }

    var pesoFlavio=73;
    var alturaFlavio=1.71;

    mostrar("<hr>Flavio tem "+alturaFlavio+" metros e pesa "+pesoFlavio+" Kg");
    calcImc(pesoFlavio, alturaFlavio);

    var pesoAmigo=68
    var alturaAmigo=1.72;

    mostrar("<hr>Amigo tem "+alturaAmigo+" metros e pesa "+pesoAmigo+" Kg");
    calcImc(pesoAmigo, alturaAmigo);

    document.write("<hr><h3>Tabela de referência</h3>")
    mostrar("Menor que 18,5 = Peso baixo")
    mostrar("Entre 18,5 e 24,9 = Peso normal")
    mostrar("Entre 25,0 e 29,9 = Sobrepeso")
    mostrar("Emtre 30,0 e 34,9 = Obesidade")
    </script>
1 resposta

Olá, Guilherme! Tudo certo por aí?

Peço desculpas pela demora no retorno.

Analisei sua resolução e você mandou muito bem, sua solução está correta! Muito bem construída e além do que foi proposto na aula, pois não somente exibiu o nome e o IMC da pessoa, mas já trouxe uma forma de arredondar o IMC através do método round e além disso, mostrou uma tabela de IMC para comparação. Continue assim!

Atualmente, sua função calculaImc não só calcula o IMC mas também exibe uma mensagem através da função mostrar. Uma sugestão de boa prática é retornar o valor da função para que ele seja utilizado em momentos futuros, sendo assim a função mostrar fica fora da função calculaImc.

Fora isso, você também pode colocar as variáveis em um só lugar, pois facilita a visualização delas no código.

Código após as modificações:

<meta charset="UTF-8">
<h2>Calculando o IMC (índice de massa corporal)</h2>
<script>
    function pulaLinha() 
    {
        document.write("<br><br>");
    }
    function mostrar(texto) {
        document.write(texto);
        pulaLinha();
    }

    function calcImc(peso, altura)
    {
        var imc=(Math.round(peso/(altura**2)));
        return imc;
    }

    var pesoFlavio=73;
    var alturaFlavio=1.71;
    var pesoAmigo=77
    var alturaAmigo=1.72;

    mostrar("<hr>Flavio tem "+ alturaFlavio +" metros e pesa "+ pesoFlavio +" Kg");
    var imcFlavio=calcImc(pesoFlavio, alturaFlavio);
    mostrar(" * Índice de massa corporal (IMC) = " +imcFlavio);



    mostrar("<hr>Amigo tem "+ alturaAmigo +" metros e pesa "+ pesoAmigo +" Kg");
    var imcAmigo = calcImc(pesoAmigo, alturaAmigo);
    mostrar(" * Índice de massa corporal (IMC) = " +imcAmigo);

    document.write("<hr><h3>Tabela de referência</h3>")
    mostrar("Menor que 18,5 = Peso baixo")
    mostrar("Entre 18,5 e 24,9 = Peso normal")
    mostrar("Entre 25,0 e 29,9 = Sobrepeso")
    mostrar("Entre 30,0 e 34,9 = Obesidade")
</script>

Caso tenha ficado com alguma dúvida, não deixe de compartilhar com a gente.

Continue praticando e evoluindo na sua jornada.

Bons estudos e até mais!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!