Considere o algoritmo in-place que calcula somas prefixadas em um vetor A[0..n-1]: para i de 1 até n-1 faça…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Utilizar algoritmos clássicos de manipulação sobre listas.
Fonte: Base Nacional Comum Curricular (MEC).Questão
Considere o algoritmo in-place que calcula somas prefixadas em um vetor A[0..n-1]: para i de 1 até n-1 faça A[i] ? A[i] + A[i-1]. Depois da execução, o que contém A[n-1]?
- A) Contém a soma apenas dos primeiros n-1 elementos (A[0]..A[n-2]).
- B) A soma de todos os elementos originais do vetor A[0..n-1].
- C) Armazena a média (média aritmética) dos elementos originais.
- D) Contém o produto de todos os elementos originais.
- E) Permanece igual ao último elemento original A[n-1].
✅ Resposta correta: alternativa B
Resolução passo a passo
- Interprete o algoritmo. O símbolo '?' do enunciado representa a atribuição (seta). Assim, para cada i de 1 até n-1, A[i] recebe o valor atual de A[i] somado ao valor de A[i-1]. Como A[i-1] já foi atualizado na iteração anterior, cada posição passa a guardar a soma de todos os elementos de A[0] até A[i].
- Teste com um exemplo. Seja A = [1, 2, 3], com n = 3. Para i = 1: A[1] = 2 + 1 = 3, e vetor fica [1, 3, 3]. Para i = 2: A[2] = 3 + 3 = 6, e vetor fica [1, 3, 6]. Ao final, A[2] = 6 = 1 + 2 + 3.
- Generalize. Por indução, ao final da execução A[k] contém a soma A[0] + ... + A[k] dos valores originais. Para k = n-1, A[n-1] contém a soma de todos os elementos originais do vetor. Portanto a alternativa B está correta.
- Confira o gabarito oficial, que é B. Coincide com a resolução obtida sem consultá-lo.
- Analise as demais alternativas. A está errada porque A[n-1] também recebe o próprio elemento original na última iteração, e não apenas os n-1 primeiros. C está errada porque a média exigiria dividir a soma por n, operação que o algoritmo não realiza. D está errada porque o algoritmo usa somas, não produtos. E está errada porque A[n-1] é modificado quando i = n-1, pois o laço alcança esse índice.
💡 Dica: Acompanhe como cada posição acumula o valor da posição anterior, considerando os valores originais.
Alternativa por alternativa
O aluno acredita que o último elemento não entra na soma, como se o laço parasse antes de atualizar a última posição, ou que A[n-1] guarda apenas a soma dos anteriores.
A cada passo, o algoritmo soma A[i] ao valor acumulado em A[i-1]. Ao final, A[n-1] reúne a soma de todos os valores originais do vetor.
O aluno associa a soma acumulada a uma média, por ser a noção mais comum de 'resumo' de um conjunto de números no dia a dia, sem notar que não há divisão pelo tamanho do vetor.
O aluno confunde soma prefixada com produto prefixado, achando que o acúmulo feito a cada passo é uma multiplicação por causa do formato do algoritmo.
O aluno interpreta que o laço só altera posições anteriores a n-1, e por isso supõe que A[n-1] permanece com seu valor original.
Por que engana: Pode-se considerar que A[n-1] soma apenas até A[n-2], sem perceber que o laço atualiza também a última posição e acumula nela todos os elementos originais.
Raio-X da questão
Somas prefixadas em vetor
avaliacao
Vetores e índices · Execução sequencial de algoritmos
Revise o funcionamento de algoritmos in-place e o acúmulo de somas prefixadas em vetores.
Pode-se considerar que A[n-1] soma apenas até A[n-2], sem perceber que o laço atualiza também a última posição e acumula nela todos os elementos originais.
ciencia_tecnologia
tomada_decisao
abstrato
Questões parecidas com resolução
- Um algoritmo percorre um vetor de n números e soma seus elementos uma única vez. Qual é a complexidade temporal desse…
- Em pseudocódigo, seja soma := 0; para i de 1 até n faça soma := soma + A[i]; fim para. Após esse loop, qual expressão…
- Qual seria o resultado de um algoritmo que utiliza recursão para somar os elementos de uma lista de números?
- Explique como funciona um algoritmo que utiliza repetição simples para calcular a soma de números consecutivos de 1 a n…
- Considere o pseudocódigo: soma <- 0; para i de 1 até 5: leia x; soma <- soma + x; fimPara; escreva(soma/5). Qual…
- Um algoritmo deve calcular a soma dos números de 1 a 10. Quais instruções representam esse algoritmo com repetição?
🔎 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
