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

Opinião

Colegas, quero a opinião de vocês sobre o meu código do exercício proposto. Não usei o parâmetro pq achei sem necessidade, este pensamento está correto?

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

    function mostra(textoMediaGeracao){
        document.write("Passaram-se " + calcMediaGeracao + " gerações.");
    }

    var idadeMedia = 28;
    var geracaoAtual = 2016;
    var primeiraGeracao = 1500;
    var calcMediaGeracao = (Math.round((geracaoAtual - primeiraGeracao)/idadeMedia));

    mostra();

</script>
6 respostas
solução!

Olá Luiz! Apesar do código funcionar, ele não está funcional. A idéia de se criar funções é justamente reaproveitar esse código em outras situações. Por exemplo, a sua função mostra() ficou atrelada à uma única funcionalidade, quando na verdade ela deveria ser utilizada para imprimir na tela do navegador qualquer outra informação. O ideal seria assim:

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

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

    var idadeMedia = 28;
    var geracaoAtual = 2016;
    var primeiraGeracao = 1500;
    var calcMediaGeracao = (Math.round((geracaoAtual - primeiraGeracao) / idadeMedia));

    mostra("Passaram-se " + calcMediaGeracao + " gerações.");
</script>

Com um código simples você não percebe o quanto isso facilita, mas quando pegar códigos mais complexos e longos verá a facilidade que existe em reaproveitar códigos feitos anteriormente.

Abraços e sucesso nos estudos!

Boa tarde Luiz, olha cara, isso não foi muito legal em, primeiro, na sua função mostra:

function mostra(textoMediaGeracao){
        document.write("Passaram-se " + calcMediaGeracao + " gerações.");
    }

você pede um testoMediaGeracao como parametro, e na hora de imprimir usa CalcMediaGeracao. Isso está errado, pois na função mostra, a variavel CalcMediaGeracao não existe, a função mostra, mostra um texto, e recebe como parametro oque vc quer mostrar, nessa situação você quer mostrar o CalcMediaGeracao (que não está sendo criada na função enem pegada como parametro), mas no mesmo codigo pode chegar um momento onde você quer mostrar algo além disso, então a função mostra não deve ser uma coisa fixa, mostrar uma frase fixa, deve ser flexivel, não importa pra ela que seja um calculo ou o nome de alguem, ela só tem que receber algo para mostrar, uma boa modificação seria :

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

 var idadeMedia = 28;
    var geracaoAtual = 2016;
    var primeiraGeracao = 1500;
    var calcMediaGeracao = (Math.round((geracaoAtual - primeiraGeracao)/idadeMedia));

var texto = " Oi eu sou um texto e serei mostrado "
    mostra(calcMEdiaGeracao);
mostra(texto);

Veja que a função mostra tem mais utilidade, pois não importa pra ela oque tem que mostrar, ela só recebe e mostra, nada além disso, ela não recebe só um calculo, ela recebe qualquer coisa que você queira mostrar na tela.

Espero ter ajudado, sucesso e abraços !

Olá, grato pelos comentários, poderiam dar uma olhada no código corrigido abaixo e também nos comentários que fiz na função "mostra" e me responderem se entendi direito o assunto?

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

    //mostra - é o nome da função;
    // (CONTEUDO) - parâmetro desejado, pode ser uma string, número etc.;
    // Na prática a função abaixo é genérica e quando eu for para utilizá-la para mostrar na tela qualquer dado basta eu "invocá-lo", é isso?
    function mostra(textoMediaGeracao){
        document.write(textoMediaGeracao);
    }

    var idadeMedia = 28;
    var geracaoAtual = 2016;
    var primeiraGeracao = 1500;
    var calcMediaGeracao = (Math.round((geracaoAtual - primeiraGeracao)/idadeMedia));

    mostra("Total de " + calcMediaGeracao + " gerações.");

</script>

Luiz...é por ai mesmo. Para ficar melhor do que esta em termos de legibilidade troque o parâmetro da função mostra para um nome mais generico como texto:

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

Boa luiz, está pegando o conceito, e como o Flavio disse, tente deixar os parametros bem legiveis e genéricos, abraçoes e bons estudos !

Valeu pessoal, em breve ficarei bão nisso! Abraços!