3
respostas

código imc

não sei pq meu código não funciona, algm pode me ajudar?

código de imc

3 respostas

Pedro para te ajudar precisa me mostrar o seu código, aparentemente esqueceu de botar na pergunta

Boa noite. Galera, onde eu tô errando?

<meta charset="UTF-8">

<script>

    function pulaLinha() {

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

}

    function mostra(frase) {

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

    function calculaImc (altura, peso) {

        var imc = peso / (altura * altura);
        mostra("O imc calculado é ", + imc);
}

    calculaImc(1.71, 73);
    calculaImc(1.72, 68);

    </script>

Não imprime o cálculo no navegador!!

Obrigado!

Bom dia.

Depois de consultas à biblioteca JS, e alguns ajustes, descobri o problema. O mais comum é o erro de CONCATENAÇÃO de string com variável numérica. Na chamada da função* 'mostra', na função 'calculaImc', como o JS estava lendo em ("O imc calculado é" + imc) como uma c o n c a t e n a ç ã o de strings, não exibia o resultado do calculo. Verificando no console do Chrome (F12), além deste erro, ainda reclama a declaração da Variável IMC. Por essa razão fiz essa solução, olhando o manual MDN (Mozilla) ele recomenda o uso do let e a declaração prévia da variável com valor UNDEFINED: A solução ficou assim:

<meta charset="UTF-8">

<script>

let altura = undefined;
let peso = undefined;
let imc = peso / (altura * altura)

    function pulaLinha() {

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

}

    function mostra(frase) {

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

    function calculaImc (altura, peso) {

        let imc = peso / (altura * altura);
        mostra("O imc calculado é " + imc);

}    

    calculaImc(1.71, 73);
    calculaImc(1.72, 98);

</script>

Mas, de forma simplificada, respeitando apenas a questão da concatenação na função MOSTRA, basta fazer isso, sem alterar o code do Flávio:

 function calculaImc (altura, peso) {

        var imc = peso / (altura * altura);
        mostra("O imc calculado é " + (imc));
        }
        ...

sem a necessidade de declarar previamente peso, altura e imc. ...

Obrigado, Jesus!!!!!