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

[Dúvida] Entendi 70% da solução mas, quero ter certeza se entendi a lógica do contador certo para poder prosseguir

Por favor, se a minha lógica estiver errada, me corrijam, quero ter certeza que entendi certo, pois ainda sinto dúvida se entendi tudo. Para calcular a média aritmética, preciso somar os números e dividir pela quantidade deles, por ex: 8+0+7+2/4, isso eu entendi. Com isso em mente, entendo que a variável Qtdnumeros tem o prompt para o usuário digitar quantas médias serão somadas, até ai ok. Então atribuimos a variável soma e então o contador é uma variável atribuida a Qtdnumeros, o que quer dizer que é a quantidade de numeros que irei somar porque digitei lá no começo. O loop se mantém infinito pelo fato de que se o contador continuar acima de 0, a condição nunca será atingida e por isso e alternativa certa é a de usar contador-- para ir tirando até chegar em zero, até ai ok. Também entendi que segundo o que pesquisei, += se eu não tiver entendido errado, vai somar a variável soma que está igual a 0 com o número que digitei, tirando o fato que enquanto o contador for > 0 o loop não vai acabar. O que eu quero ter certeza que entendi é que bom, o contador equivale às médias que vou somar para dividir por isso, até ai tudo bem mas, eu sinto que devo ter entendido errado porque enquanto tentava raciocinar sobre a questão, eu estava vende que se eu reduzisse o contador é como se eu reduzisse a quantidade de médias de médias a serem somadas, mas pelo visto havia entendido errado porque os números convertidos de strings em int estão na verdade armazenados na variável soma. Então se eu o meu raciocínio estiver certo(o que acho que deve ter muitas falhas de entendimento), eu não entendi exatamente a lógica do contador porque mesmo que eu tenha entendido que reduzir a cada contagem faz o loop parar de se repetir, eu não havia entendido na hora como algo separado dos números que digito ali, mas sim como algo que se eu reduzisse poderia tirar as médias de somar. Isso não acontece porque os números são somados e armazenados na variável soma ou entendi errado? Também queria entender melhor o contador pois após tudo isso que expliquei, estou com aquela sensação de que entendi mas não entendi ao mesmo tempo sabe? Obrigado


let qtdNumeros = prompt('Digite a quantidade de números para o cálculo da média:');
let soma = 0;
let contador = qtdNumeros;

while(contador > 0){
    let numero = parseInt(prompt('Digite o numero:'));
    soma += numero;
}

let media = soma / qtdNumeros;

console.log(media);

#
2 respostas
solução!

Oii Victor, tudo bem?

Você está no caminho certo para entender a lógica do contador no cálculo da média aritmética.

No seu código, você inicializa o contador com o valor de qtdNumeros, que é a quantidade de números que o usuário deseja incluir no cálculo da média. O loop while continua executando enquanto o valor do contador for maior que zero. Dentro do loop, você pede ao usuário para inserir um número e adiciona esse número à variável soma. Até aqui, tudo perfeito!

O ponto que parece estar causando confusão é o decremento do contador. Quando você decrementa o contador usando contador--, você não está afetando os números que estão sendo somados, mas sim controlando quantas vezes o loop deve executar. Cada vez que o loop executa, ele pede um novo número e o adiciona à soma, e então decrementa o contador. Quando o contador chega a zero, o loop para de executar, pois a condição contador > 0 não é mais verdadeira.

Então, o contador aqui serve para garantir que o loop execute exatamente qtdNumeros vezes, que é o número de termos que você quer incluir na média. Os números digitados são armazenados acumulativamente na variável soma e, após o loop, você divide essa soma por qtdNumeros para obter a média.

Espero que essa explicação tenha ajudado a esclarecer suas dúvidas sobre a lógica do contador e como ele funciona no contexto do seu código.

Um abraço e bons estudos.

Obrigado Lorena, entendi, então o contador é para o looping na verdade. Obrigado.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software