Experimento curto para observar diferentes formas de somar números de uma lista: siga os passos 1) crie a…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Construir e simular algoritmos, de forma independente ou em colaboração, que resolvam problemas simples e do cotidiano com uso de sequências, seleções condicionais e repetições de instruções.
Fonte: Base Nacional Comum Curricular (MEC).Questão
Experimento curto para observar diferentes formas de somar números de uma lista: siga os passos 1) crie a lista [1,2,3,4,5], 2) implemente a soma com um laço (for) que percorre a lista, 3) implemente a soma recursiva, 4) execute as duas soluções com a mesma lista para observar o resultado. Qual afirmação descreve o que se observa?
- A) Ambas produzem o mesmo resultado; a recursão pode exigir mais memória para listas maiores.
- B) A recursão é sempre mais rápida que o laço.
- C) O laço consome mais memória que a recursão para qualquer tamanho de lista.
- D) A soma recursiva falha para listas pequenas.
- E) Nenhuma das duas funciona.
✅ Resposta correta: alternativa A
Resolução passo a passo
- Lista [1,2,3,4,5]. A soma é 1+2+3+4+5 = 15.
- A soma com laço for percorre os elementos e acumula o total, chegando a 15.
- A soma recursiva resolve o problema reduzindo a lista: soma(lista) = primeiro elemento + soma(resto da lista), até a lista vazia, cujo valor é 0. Ela também chega a 15.
- Como ambas produzem o mesmo resultado (15), a alternativa A descreve corretamente a observação. Além disso, a recursão empilha uma chamada para cada elemento, por isso tende a usar mais memória (pilha de chamadas) para listas maiores, o que é um fato conhecido da programação.
- Por que as outras estão erradas: B afirma que a recursão é sempre mais rápida, mas em geral é igual ou mais lenta por causa do custo das chamadas; C inverte a relação, pois é a recursão que costuma consumir mais memória; D está errada porque a soma recursiva funciona bem com listas pequenas como a de cinco elementos; E está errada porque as duas soluções funcionam corretamente.
- Conclusão: a resposta correta é a alternativa A, que coincide com o gabarito oficial.
💡 Dica: Compare os resultados das duas somas e analise as diferenças.
Alternativa por alternativa
Ambas as abordagens somam os elementos corretamente; a recursão usa a pilha de chamadas, o que pode aumentar o consumo de memória.
Supõe que a recursão, por ser uma forma mais 'elegante' ou compacta, também é mais rápida. Não percebe que cada chamada recursiva tem custo extra e que o experimento com cinco elementos não mostra vantagem de velocidade.
Por que engana: Achar que recursao sempre e mais rapida ou que laços consomem mais memoria sem considerar o contexto.
Inverte a relação entre memória e recursão, achando que o laço acumula mais estado. Na verdade, a recursão empilha chamadas e usa mais memória da pilha, enquanto o laço usa poucas variáveis.
Acredita que a recursão só funciona para casos grandes ou que listas pequenas causam erro. Não percebe que a lista [1,2,3,4,5] tem poucos elementos e a recursão termina normalmente ao atingir a lista vazia.
Interpreta que, por a questão falar em 'experimento', alguma das implementações deve falhar. Não verifica os passos, em que ambas são executadas e retornam 15.
Raio-X da questão
soma de listas
avaliacao
soma de listas · conceito de recursao
Revisar laços e funções recursivas em programação.
Achar que recursao sempre e mais rapida ou que laços consomem mais memoria sem considerar o contexto.
pensamento_critico
cientifico
Questões parecidas com resolução
- Lia criou um caminho no tabuleiro. O tablet usa “andar 10 passos”, e o robô usa “andar 1 quadrado”. Por que Lia escreveu…
- Algoritmo: "Ler nota. Se nota >= 60 então imprimir 'Aprovado'. Senão imprimir 'Reprovado'." Qual será a saída para nota…
- Na sala, um algoritmo manda ler a temperatura. Se ela for maior que 30 graus, deve ligar o ventilador; caso contrário…
- Descreva em passos um algoritmo que, recebendo a lista de adjacência de um grafo não direcionado, retorne todas as…
- Descreva um algoritmo em pseudocódigo que, dado n variáveis booleanas (dados de entrada), gere todas as 2^n combinações…
- Projete um algoritmo em pseudocódigo que receba uma lista de nomes (strings) como dado de entrada e devolva uma lista de…
🔎 Procurar outra questão
Procure no banco do GeraProva pelo tema ou por um trecho do enunciado. Cada questão já vem com resolução comentada e a análise de cada alternativa.
Professor: monte a prova com questões como esta, com gabarito e folha de respostas, em 30 segundos. Ver planos · Blog
