3
respostas

Acredito que não estou entendendo algum conceito.

<meta charset="UTF-8">
<script>
    function pulaLinha() {
        document.write("<br>");
    }

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

    function calculaImc(altura, peso) {

        var imc = peso / (altura * altura);
        return calculaImc;
    }

    var imcCalculado = calculaImc(1.77, 75);
    mostra("O meu IMC é : " + imcCalculado);
</script>

Tentei dessa forma porém não deu certo.

Então fiquei em dúvida quanto a essas linha do código: var imcCalculado = calculaImc(1.77, 75); mostra("O meu IMC é : " + imcCalculado);

Aqui temos a variável imcCAlculado que vai receber o calculaImc(1.77,75) e os parâmetros para o cálculo da função são esses números dentro do parênteses. Até onde entendi. Sendo assim, na linha > mostra("O meu IMC é : " + imcCalculado); < . Não teria que ser a linha de string + a concatenação que me daria o valor do final da função de imcCalculado com os parâmetros e no return eu teria o valor final ? Tipo... return não seria igual a var imc = peso / (altura * altura) que ficaria linkado em imcCalculado ? Se alguém conseguir entender o que eu pensei me dê um help porque acho que estou meio perdido até pra me explicar.

Att

3 respostas

Boa tarde, Leandro! Como vai?

Vc pode colocar o seu código completo aqui para eu dar uma olhada e te ajudar?

Obs.: Quando for mandar o código, não esqueça de utilizar o botão "inserir código" e colar o código no lugar indicado!

Grande abraço e bons estudos!

Oi, Leandro! Não tenho certeza se entendi, mas vou tentar ajudar hehe. O que talvez não esteja claro, é que imcCalculado não é uma função, é uma variável normal! Na linha:

var imcCalculado = calculaImc(1.77, 75)

o que estamos fazendo é executar a função calculaImc e atribuindo o retorno dela à variável imcCalculado. Assim, essa variável não contém informação nenhuma sobre a função, apenas um número (o retorno dela com aqueles dois parâmetros específicos). Por isso conseguimos fazer a concatenação numa boa!

Oi leandrosilva_ctt eu editei seu post para aparecer seu código que não tava aparecendo, porque não tava entre as crases, acontece o seguinte:

var imcCalculado = calculaImc(1.77, 75);

Quando o programa chega na linha acima ele vhama a função calculaImc apartir daí ele vai pra função calculaImc Chegando lá ele vai executar essa linha :

 var imc = peso / (altura * altura);

E depois vai retorna esse cálculo pra quem a chamou aqui:

return calculaImc;

No entanto você cometeu um equívoco não queremos retornar calculaimc esse é o nome da função o que queremos retornar é o valor do cálculo, ou seja, a variável imc.Então o correto seria

return imc;

Aí o programa voltaria para essa linha:

var imcCalculado = calculaImc(1.77, 75);

e ficaria assim:

var imcCalculado = imc//O resultado que foi retornado da função;

Em seguida faríamos a impressão com a função mostra.

Espero ter ajudado e bons estudos.