Módulo 11 - Listas, muitas caixas juntas
Somar tudo e achar o maior: os dois clássicos da lista
9 min de leitura · por Cesar Gargiulo, revisado pela equipe ValorFinal e GuardiaSec · Atualizado em 02/07/2026
O que você vai aprender
- Somar todos os valores de uma lista com um acumulador.
- Calcular a média dividindo a soma pelo tamanho da lista.
- Achar o maior valor comparando caixa por caixa.
- Entender por que o maior começa valendo lista[0], e não 0.
Ouvir o resumo desta aula
Um recap de cerca de 2 minutos na voz do Valim, para ouvir no trânsito ou na academia.
Ler a transcrição do resumo
Resumo da aula: Somar tudo e achar o maior: os dois clássicos da lista.
Os objetivos desta aula. Somar todos os valores de uma lista com um acumulador. Calcular a média dividindo a soma pelo tamanho da lista. Achar o maior valor comparando caixa por caixa. Entender por que o maior começa valendo lista[0], e não 0.
Veja o essencial, parte por parte.
A soma e a média: o acumulador encontra a lista. Para somar uma lista: comece soma <- 0 e, dentro do percurso, faça soma <- soma + lista[i].
Caçando o maior valor: o campeão provisório. Achar o maior valor de uma lista imita um torneio.
Variações dos clássicos: menor, contagem e combinações. Dominados os dois clássicos, uma família inteira de problemas se abre com ajustes mínimos.
Esse foi o resumo do essencial. Para se aprofundar, leia a aula completa e responda os exercícios.
A soma e a média: o acumulador encontra a lista
No módulo 9 você conheceu o acumulador com o cofrinho: uma variável que começa em 0 e engorda a cada volta do laço. Na época, os valores vinham um a um pelo leia. Agora eles já estão enfileirados na lista, e o percurso da aula 3 entrega um por volta: lista[i]. Juntar as duas peças produz a soma em quatro linhas. E da soma para a média é um passo: divida pelo tamanho da lista. É literalmente a conta que o professor faz no fim do bimestre, escrita para a máquina executar.
notas <- [7, 9, 6, 8]
soma <- 0
para i de 0 até tamanho(notas) - 1 faça
soma <- soma + notas[i]
fim
media <- soma / tamanho(notas)
escreva("Soma: " + soma) // Soma: 30
escreva("Média: " + media) // Média: 7.5O acumulador soma caixa por caixa; a média é a soma dividida pelo tamanho.
Acompanhe a soma volta a volta, como num teste de mesa informal: antes do laço, soma vale 0. Na volta do índice 0, recebe 0 + 7 e vale 7. Na do índice 1, vale 7 + 9 = 16. Na do índice 2, 16 + 6 = 22. Na do índice 3, 22 + 8 = 30. O laço acaba (i passou do último índice) e a média sai de 30 dividido por 4: 7,5. Esse hábito de rodar o algoritmo na cabeça, linha a linha, é o coração do módulo 13; comece a praticá-lo agora, com algoritmos pequenos.
Caçando o maior valor: o campeão provisório
Achar o maior valor de uma lista imita um torneio. Você elege um campeão provisório (o primeiro valor, lista[0]) e faz cada caixa seguinte desafiá-lo: se a desafiante for maior, ela toma o cinturão. Quando o percurso acaba, quem estiver com o cinturão é o maior da lista inteira. O detalhe que separa o algoritmo certo do bugado está na largada: o campeão inicial deve ser um valor DA LISTA, não um número inventado como 0. Se as temperaturas do inverno forem todas negativas, o 0 venceria um torneio do qual nem participa.
temperaturas <- [-2, -7, -1, -5]
maior <- temperaturas[0] // campeão provisório: -2
para i de 1 até tamanho(temperaturas) - 1 faça
se temperaturas[i] > maior então
maior <- temperaturas[i]
fim
fim
escreva(maior) // -1 (com maior <- 0, sairia 0: um valor que NÃO está na lista)O campeão inicial vem da própria lista; por isso o percurso pode começar do índice 1.
🎮 Jogo da aula
A soma que esquece a primeira nota
Este algoritmo deveria somar as 4 notas e mostrar 30, mas mostra 23. Toque na linha com o bug.
O bug do jogo é o erro de uma unidade da aula 2 vestindo roupa nova: em vez de estourar a lista pela ponta de cima, ele abandona a caixa da ponta de baixo. Repare como ele é silencioso: o programa roda, mostra um número, e o número está errado. Nenhuma mensagem de erro aparece. É por isso que a aula 2 insistiu tanto na contagem do zero e por que o módulo 13 vai lhe dar ferramentas para flagrar esse tipo de traição olhando as pontas do laço primeiro.
Variações dos clássicos: menor, contagem e combinações
Dominados os dois clássicos, uma família inteira de problemas se abre com ajustes mínimos. O MENOR valor usa o mesmo torneio trocando o sinal da comparação: se lista[i] < menor. CONTAR quantas notas ficaram acima da média combina o percurso com um contador do módulo 9: se notas[i] >= media, então aprovados <- aprovados + 1. Somar só os valores pares filtra com o resto da divisão do módulo 5. Percurso, acumulador, contador e SE: quatro peças suas, infinitas combinações.
| Problema | Variável de apoio | Dentro do laço |
|---|---|---|
| Somar tudo | soma <- 0 | soma <- soma + lista[i] |
| Achar o maior | maior <- lista[0] | se lista[i] > maior então maior <- lista[i] |
| Achar o menor | menor <- lista[0] | se lista[i] < menor então menor <- lista[i] |
| Contar aprovados | cont <- 0 | se lista[i] >= 7 então cont <- cont + 1 |
A mesma moldura de percurso resolve a família inteira; só o miolo muda.
Teste rápido
Por que iniciar maior <- lista[0] é mais seguro do que iniciar maior <- 0?
Perguntas frequentes
- Por que o laço do maior pode começar do índice 1?
- Porque o valor do índice 0 já entrou como campeão provisório na linha maior <- lista[0]; compará-lo consigo mesmo seria volta perdida. Começar do 0 também funciona e não muda o resultado. O importante é que TODA caixa seja considerada, seja na largada, seja no percurso.
- E se a lista estiver vazia? O maior de nada é o quê?
- É um caso sem resposta: não existe maior valor de um conjunto vazio. O algoritmo deve verificar antes: se tamanho(lista) = 0, avise “lista vazia” e não calcule. Tentar ler lista[0] de uma lista vazia estoura o programa. Esse tipo de situação limite é o tema dos casos de borda no módulo 13.
- E se dois valores empatarem como maior?
- O algoritmo devolve o valor, e o valor é um só: numa lista [8, 9, 9, 5], o maior é 9, não importa que apareça duas vezes. Se a pergunta for OUTRA (quantas vezes o maior aparece, ou em quais posições), aí você combina o torneio com um contador ou com a busca da próxima aula.
- A média calculada assim é a mesma média da escola?
- Sim, é a média aritmética simples: soma de tudo dividida pela quantidade. Escolas que usam pesos diferentes por prova exigem a média ponderada, em que cada nota multiplica seu peso antes da soma. A moldura do algoritmo é a mesma; muda a linha de acumulação.
- As linguagens não têm isso pronto? Por que aprender na mão?
- Têm: o Python oferece sum(lista) e max(lista) prontos. Você aprende na mão pelo mesmo motivo que aprende a conta de dividir antes de usar calculadora: para entender o que a ferramenta faz, prever o custo dela e resolver os casos em que o pronto não serve, como “o maior, mas só entre os aprovados”.
- Somar uma lista de 1 milhão de valores demora?
- Para o computador, quase nada: são 1 milhão de somas simples, coisa de milésimos de segundo numa máquina comum. O ponto importante é que o TEMPO cresce junto com a lista: o dobro de caixas, o dobro de voltas. Perceber essa relação entre tamanho e trabalho é o primeiro passo de um assunto grande da computação, a eficiência de algoritmos.
Fontes
Seu progresso fica salvo neste aparelho. Assinantes sincronizam entre os aparelhos.