Olá Antônio, tudo bem?
O código apresentado contém alguns erros que estão afetando o funcionamento da função. Vou destacar os problemas encontrados:
Falta de declaração da variável imc
na função calcularImc()
: No momento, a função calcularImc()
não está retornando um valor válido para a variável imc
. É necessário calcular o IMC dentro dessa função e retornar o valor correto. Aqui está uma possível correção:
function calcularImc(peso, altura) {
var imc = peso / (altura * altura);
return imc;
}
Escopo das variáveis: As variáveis imc
e ideal
foram definidas fora das funções, mas são utilizadas dentro delas. É necessário passar essas variáveis como parâmetros para as funções que as utilizam, ou definir essas variáveis dentro das funções onde são necessárias. Sugiro a opção de passar como parâmetros, conforme mostrado abaixo:
function imcIdeal(imc, ideal) {
// Resto do código da função
}
function outrasCondicoes(imc) {
// Resto do código da função
}
// Chamadas das funções com as variáveis passadas como parâmetros
imcIdeal(imc, ideal);
outrasCondicoes(imc);
Chamada da função outrasCondicoes()
: A função outrasCondicoes()
não está sendo chamada em lugar algum do código atual. É necessário incluir a chamada a essa função após a chamada da função imcIdeal()
. Por exemplo:
imcIdeal(imc, ideal);
outrasCondicoes(imc);
Formatação HTML: No trecho <meta charset= "UTF-8">
, faltou fechar as aspas duplas corretamente. O código deve ser ajustado para <meta charset="UTF-8">
.
Com essas correções, o código ficaria assim:
<meta charset="UTF-8">
<script>
function pulaLinha() {
document.write("<br>");
document.write("<br>");
}
function draw(frases) {
document.write(frases);
pulaLinha();
}
function calcularImc(peso, altura) {
var imc = peso / (altura * altura);
return imc;
}
function imcIdeal(imc, ideal) {
if (imc < ideal) {
document.write("<br>" + "O seu imc é mais abaixo do que o normal");
}
}
function outrasCondicoes(imc) {
if (imc > 35) {
document.write("<br>" + "O seu imc é mais alto do que o normal");
}
if (imc >= 18.5 && imc <= 35) {
document.write("<br>" + "O seu imc está excelente");
}
}
var ideal = 18.5;
var nome = prompt("Diga seu Nome");
var alturaInformada = prompt(nome + " Informe sua Altura");
var pesoInformado = prompt(nome + " Informe seu Peso");
var imc = calcularImc(pesoInformado, alturaInformada);
document.write(nome + ", o seu imc é " + imc);
imcIdeal(imc, ideal);
outrasCondicoes(imc);
</script>
Com essas alterações, o código deverá funcionar corretamente, calculando o IMC com base no peso e altura informados, e exibindo as mensagens adequadas de acordo com o resultado do IMC.
Espero ter ajudado, abraços.