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

o que tem de errado no meu programa?

<meta charset="UTF-8">

<script >

function mostra(frase) {

    document.write(frase);
}

function pularlinhas(){

    document.write("<br>");

}

function calculaimc (altura,peso){
    var imc=Math.round+peso/(altura*altura);
    mostra("o meu imc é "+calculaimc)
}
calculaimc(1.71,80);

</script>

Quando vou executar ele, sai assim:

o meu imc é function calculaimc (altura,peso){ var imc=Math.round+peso/(altura*altura); mostra("o meu imc é "+calculaimc) }

2 respostas

Julio, segue seu código corrigido:

<meta charset="UTF-8">

<script >

function mostra(frase) {
    document.write(frase);
}

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

function calculaimc (altura,peso){
    var imc=Math.round (peso/(altura*altura));
    mostra("o meu imc é "+ imc);
}


calculaimc(1.71,80);

</script>

O primeiro erro esta na forma como você usou o 'Math.round" sem os parênteses, isso causou vários bugs que deixaram seu resultado com a aparência estranha.

O segundo foi que você chamou a função 'calculaImc' inteira dentro dela mesma ao invés do valor da variável imc.

Basicamente os erros estavam todos na função calculaImc.

solução!

Comparando as 2 versões:

function calculaimc (altura,peso){
    var imc=Math.round+peso/(altura*altura);
    mostra("o meu imc é "+calculaimc)
}

e

function calculaimc(altura, peso) {
    var imc = Math.round ( peso / (altura*altura) );
    mostra("o meu imc é " + imc);
}