3
respostas

[Projeto] Exercício média dos eventos

<meta charset="UTF-8">
<script>
    function titulo(mensagem) {
      document.write("<h2>" + mensagem + "</h2>");
    }

    // informar quantidade total de eventos
    // perguntar o total gasto nesse numero x de eventos
    // somar os valores a um total gasto
    // dividir o total gasto pela quantidade total de eventos

    let totalEventos = parseInt(prompt("Olá! Informe o número total de eventos"));
    let totalDaDespesa = 0;

    for(i = 1; i <= totalEventos; i++) {

      let gasto = parseInt(prompt("Informe o quanto gastou:"));
      totalDaDespesa += gasto; 
      // soma o valor anterior à variável totalDaDespesa toda vez que entra no loop
    }

    let mediaDeGastos = totalDaDespesa / totalEventos;

    titulo("A média de gastos destes " + totalEventos + " eventos " + "é igual a " + "R$ " + parseInt(mediaDeGastos)); 

</script>
3 respostas

Oi, Ana! Tudo bem?

Parabéns pelo seu progresso e por sua iniciativa em aprender programação! Fico feliz com seu empenho nas atividades e continue com essa incrível dedicação. :)

Caso alguma dúvida apareça, estamos à disposição.

Abraços e bons estudos!

Oi, Ana!

Parabéns pelo seu progresso!!!

Abaixo vou colocar teu código com algumas mudanças que eu explico abaixo caso você se interesse:

<meta charset="UTF-8">
<script>
    function titulo(mensagem) {
      document.write("<h2>" + mensagem + "</h2>");
    }

    /* informar quantidade total de eventos
    perguntar o total gasto nesse numero x de eventos
    somar os valores a um total gasto
    dividir o total gasto pela quantidade total de eventos*/

    let totalEventos = parseInt(prompt("Olá! Informe o número total de eventos"));
    let totalDaDespesa = 0.0;

    for(i = 1; i <= totalEventos; i++) {

      let gasto = parseFloat(prompt("Informe o quanto gastou:").replace(',','.'));
      totalDaDespesa += gasto; 
      // soma o valor anterior à variável totalDaDespesa toda vez que entra no loop
    }

    let mediaDeGastos = totalDaDespesa / totalEventos;

    titulo("A média de gastos destes " + totalEventos + " eventos " + "é igual a " + "R$ " + mediaDeGastos.toFixed(2)); 

</script>

Substituiria let gasto = parseInt(...) por let gasto = parseDouble(...) porque o gasto pode ser quebrado - como R$ 2,55 - e do jeito que estava só pegava a parte inteira

Nessa mesma linha eu acrescentaria o .replace(',' , '.') porque, estando no Brasil, é comum que o usuário comum digite 2,55 ao invés de 2.55

A linha completa, portanto, seria let gasto = parseFloat(prompt("Informe o quanto gastou:").replace(',','.'));

Não vejo necessidade de colocar o parseInt em parseInt(mediaDeGastos) porque mediaDeGastos não é uma String e sim um Float com o código que apresento aqui ou um Int no código que colocasse.

Por fim, colocaria um .toFixed(2) para que o valor de mediaDeGastos seja arredondado em duas casas decimais.

Espero ter contribuído.

Legal, brigada pela sugestão Italo!