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

Por que agora o "mostra" precisou ficar dentro da função "calculaIMC" e não fora como nos exercícios anteriores?

<meta charset="UTF-8">

<script>

    function mostra(frase) {

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

//função sempre indica um verbo - uma ação. No caso, pular.
    function pulo() {

        document.write ("<br><br>");
//se eu quiser pular outra linha, basta repetir o comando (document.write ("<br>");)
    }

    function calculaIMC(peso, altura) {

        var imc = peso / (altura * altura);
        mostra ("O IMC calculado é: " + Math.round (imc));

    }

    var meuPeso = 90;
    var minhaAltura = 1.68;
    calculaIMC (90, 1.68);

    var pesoAmanda = 58;
    var alturaAmanda = 1.71;
    calculaIMC (58, 1.71);   

    var pesoAna = 56;
    var alturaAna = 1.59;
    calculaIMC (56, 1.59); 



</script>
2 respostas
solução!

Oi Camila, tudo bem com você?

A função mostra(frase) que está fora da função calculaIMC() é a implementação dela, ou seja, a função em si. Enquanto que o mostra("O IMC calculado é: " + Math.round (imc)) que está dentro do calculaIMC() é um chamado à função original que foi implementada lá fora. Mas o que isso quer dizer?

Vamos pensar primeiro sobre o que é uma função. Bom, uma função nada mais é que um conjunto de comandos que, juntos, realizam uma tarefa específica. Então, no caso domostra(), o que acontece nessa função? Bom...

  1. Primeiro, ela recebe uma frase:
function mostra(frase) {
  1. Depois imprime ela na página:
document.write (frase);
  1. Por fim, pula uma linha:
pulo();

Para que, assim, seja formada a função mostra():

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

Pois bem... dessa forma, toda vez que quisermos executar esses comandos, tudo o que precisamos fazer é chamar a função mostra() de qualquer lugar, passando uma frase dentro dos parênteses. Assim como a função calculaIMC() fez dentro dela:

mostra ("O IMC calculado é: " + Math.round (imc));

Veja então que criamos a função mostra() que executa uma série de comandos e toda vez que quisermos executá-los em alguma parte do nosso código tudo o que precisamos fazer é chamá-la da forma como vimos aí em cima!

Finalizando com outro exemplo, veja que a função mostra() faz a mesma coisa que a função calculaIMC(), porém com a função pulo(). Perceba que ao invés de escrevermos mostra() dessa forma:

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

Optamos por chamar a função pulo() no lugar, pois ela faz justamente o que nós queremos:

function mostra(frase) {
    document.write (frase);
    pulo();
}
function pulo() {
    document.write ("<br><br>");
}

Espero ter ajudado. Se ficou qualquer dúvida é só avisar!

Bons estudos!!

Perfeito! Muito obrigada pelo esclarecimento :)