1
resposta

Meu IMC nao esta mostrando na pagina

Tem algo de errado com o IMC

<script>
                                                                              //tabela de funções:
                                                                              //pularUm (Pula uma linha)
                                                                              //pularDois (Pula duas linhas)
                                                                              //pularTres (Pula tres linhas)
                                                                              //separate (Criar uma linha de separação)


function pularUm(){

    document.write("<br>");

}

function pularDois(){

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

}


function pularTres(){

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

}

function pularTres(){

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

}

function separate(){

    document.write("<hr>"); 

}

function doc(frase) {

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

function calcularImc(altura, peso){

var imc = peso / (altura * altura) +1;
doc("O IMC calculado é "+ Math.round(imc));;
}

alert("Bem vindo ao MaisSaude, aqui iremos dizer seu IMC para você verificar se você esta saudavel.");

var pesoWilson = 82;
var alturaWilson = 1.83;
var pesoLara = 55;
var alturaLara = 1.56;
var imcWilson = pesoWilson / (alturaWilson * alturaWilson);
var imcLara = pesoLara / (alturaLara * alturaLara);

doc("O IMC calculado é: " + imc);

calculaImc(1.83, 82 );

calculaImc(1.56, 55);

</script>
1 resposta

Oi Wilson! Tudo tranquilo por aí?

Peço desculpas pela demora em dar um retorno.

Ao executar o seu código, o erro que encontramos no console é o seguinte:

Imagem contendo o erro gerado ao executar o código do aluno

indicando que a variável imc não foi definida.

Isso acontece porque, quando você chama a função doc("O IMC calculado é: " + imc); você está tentando mostrar na tela uma variável imc que não foi definida anteriormente no seu código principal.

Na verdade, existe uma variável imc definida apenas dentro da função calcularImc, mas variáveis que são definidas dentro de funções são válidas apenas dentro das próprias funções. Por isso que o erro é gerado.

Dessa forma, uma opção é excluir essa linha chamando a função doc, uma vez que a sua função calcularImc já utiliza essa função internamente quando você chama ela.

O outro erro que também está fazendo com que o seu imc não apareça na página é porque ao chamar a função calcularImc você está digitando calculaImc sem o r no final. O certo portanto, seria o seguinte:

calcularImc(1.83, 82);
calcularImc(1.56, 55);

Um detalhe, quando você cria uma função, é uma boa prática sempre deixar o código que faz parte dessa função, identado. Isso porque, existem algumas linguagens que, caso a identação não seja realizada de forma correta, o código pode gerar algum erro. No caso da sua função, ficaria assim:

function calcularImc(altura, peso){

        var imc = peso / (altura * altura)+1;
        doc("O IMC calculado é "+ Math.round(imc));
}

para adicionar essa identação, basta colocar o cursor no início da linha de código que você deseja identar e pressionar a tecla tab.

Ah, e não se esqueça que utilizar a tag <meta charset="UTF-8"> é sempre uma boa prática :)

Espero ter ajudado.

Qualquer dúvida estou por aqui, tá bom?

Bons estudos!