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

variável indefinida na função

Olá, gostaria de ajuda pra entender o por quê da função arredondar não mostrar corretamente o valor pedido pela variável.

<script>
    function mostra(frase) {

        document.write(frase)
        // document.write("<br>")
    }

    function arredondar(cálculo) {

        Math.round(cálculo)
    }

    function pulaLinha() {

        document.write("<br>")
    }

var gastosOutubro = 2500;
var gastosNovembro = 1850;
var gastosDezembro = 1600;
var gastoTrimestral = gastosOutubro + gastosNovembro + gastosDezembro;
var mediaGastos = gastoTrimestral / 3;

    mostra("<h2> Controle Orçamentário Fícticio. </h2> (Em R$)");
    pulaLinha()
    mostra("Gastos de outubro = " + gastosOutubro);
    pulaLinha()
    mostra("Gastos de Novembro = " + gastosNovembro);
    pulaLinha()
    mostra("Gastos de Dezembro = " + gastosDezembro);
    pulaLinha()
    mostra(("A soma total dos gastos foi de " + gastoTrimestral) + " e a média dos gasto foi de " + arredondar(mediaGastos));
    pulaLinha()
    mostra("O exercício de hoje termina por aqui, se você leu até esta linha então quer dizer que o código funcionou certinho. Ufa!!");

</script>
3 respostas
solução!

Olá Paulo tudo bem? Olha o problema que aconteceu no seu código foi com algo que acredito que você ainda não estudou no curso porém irá estudar. É o seguinte: você chamou a função arredondar e foi enviado o valor mediaGastos para dentro dela, porém ela não retornou nada(não mandou nada de volta), então tem que colocar o return(assim como no código abaixo)

    function arredonda(cálculo) {

        return  Math.round(cálculo);
    }

assim ele irá retornar o valor certo , em vez do undefined. retornará 1983. Caso eu tenha ajudado e sua sanado sua dúvida porfavor marque a resposta como respondida, muito obrigado pelo sua atenção tchau tchau.

código completo

<script>
    function mostra(frase) {

        document.write(frase)
        // document.write("<br>")
    }

    function arredondar(cálculo) {

        return Math.round(cálculo);
    }

    function pulaLinha() {

        document.write("<br>")
    }

var gastosOutubro = 2500;
var gastosNovembro = 1850;
var gastosDezembro = 1600;
var gastoTrimestral = gastosOutubro + gastosNovembro + gastosDezembro;
var mediaGastos = gastoTrimestral / 3;

    mostra("<h2> Controle Orçamentário Fícticio. </h2> (Em R$)");
    pulaLinha()
    mostra("Gastos de outubro = " + gastosOutubro);
    pulaLinha()
    mostra("Gastos de Novembro = " + gastosNovembro);
    pulaLinha()
    mostra("Gastos de Dezembro = " + gastosDezembro);
    pulaLinha()
    mostra(("A soma total dos gastos foi de " + gastoTrimestral) + " e a média dos gasto foi de " + arredondar(mediaGastos));
    pulaLinha()
    mostra("O exercício de hoje termina por aqui, se você leu até esta linha então quer dizer que o código funcionou certinho. Ufa!!");

</script>

Olá Paulo, tudo bem?

Faltou o return na função arredondar():

    function arredondar(cálculo) {

       return Math.round(cálculo)
    }

Testa aí e nos diga o resultado.

Ah sim, agora entendi. Obrigado