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

ajuda com o programa

estou com dificuldade com o seguinte programa

<meta charset="UTF-8">
<script>
function pulaLinha() {

        document.write("<br>");
    }
function envia(msg){
document.write();
};
 function calculaImc(altura,peso){
 return peso / (altura * altura);
 };
 var alturaInformada = prompt("digite sua altura");
 var pesoInformado = prompt("digite seu peso")
 var imc = calculaImc(alturaInformada,pesoInformado);
 envia("o seu imc é " + imc);
</script>

a tela fica em branco e no console não aparece nenhuma mensagem

2 respostas

Tá faltando um ; no final de:

var pesoInformado = prompt("digite seu peso")

No envia(), tá faltando usar o parâmetro msg. Assim:

function envia(msg){
    document.write(msg);
};

console.log("depois");

solução!

Boa noite Nicolas,

Havia dois erros que impediam a aplicação de funcionar.

O primeiro é na função envia. ela recebe um msg, para o texto aparecer na tela você tem que repassar esse msg para o document.write.

O segundo erro está nos prompts. A função prompt retorna o valor recebido como uma string. Portanto se digitarmos 1.80 a variável receberá "1.80" como se fosse uma palavra e não um número. Portanto precisamos usar a função parseFloat para converter o resultado do prompt para um número decimal. Desse jeito o cálculo do IMC vai funcionar.

Abaixo segue o código com as duas correções:

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

function envia(msg){
    document.write(msg);
};

function calculaImc(altura,peso){
 return peso / (altura * altura);
};

var alturaInformada = parseFloat(prompt("digite sua altura"));
var pesoInformado = parseFloat(prompt("digite seu peso"));
var imc = calculaImc(alturaInformada,pesoInformado);

envia("o seu imc é " + imc);

Abraços