Ao generalizar um algoritmo que processa uma coleção e acumula resultados, qual prática relativa à variável…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Comparar diferentes casos particulares (instâncias) de um mesmo problema, identificando as semelhanças e diferenças entre eles, e criar um algoritmo para resolver todos, fazendo uso de variáveis (parâmetros) para permitir o tratamento de todos os casos de forma genérica.
Fonte: Base Nacional Comum Curricular (MEC).Questão
Ao generalizar um algoritmo que processa uma coleção e acumula resultados, qual prática relativa à variável acumuladora evita efeitos colaterais entre chamadas consecutivas do algoritmo?
- A) Usar uma única variável global para todas as funções do programa.
- B) Inicializar a acumuladora com um valor fixo fora do loop.
- C) Declarar a acumuladora como variável local inicializada dentro da função (não usar variável global).
- D) Declarar a acumuladora fora da função que a utiliza.
- E) Usar uma variável global para a acumuladora do resultado.
✅ Resposta correta: alternativa C
Resolução passo a passo
- Resolvi a questão antes de olhar o gabarito. O problema pede a prática que impede que os valores de uma chamada do algoritmo contaminem a chamada seguinte. Passo 2: Um algoritmo que acumula resultados usa uma variável acumuladora que guarda a soma ou o total parcial. Se essa variável sobrevive entre chamadas, a segunda execução começa com o valor deixado pela primeira, o que gera efeito colateral. Passo 3: A solução é declarar a acumuladora como variável local, dentro da função, e inicializá-la ali a cada chamada. Assim, cada execução começa do zero e não depende do estado anterior. Passo 4: A alternativa C descreve exatamente essa prática, por isso é a correta, e coincide com o gabarito oficial. Passo 5: A alternativa A está errada, pois usar uma única variável global para todas as funções aumenta o acoplamento e espalha o estado compartilhado entre chamadas. Passo 6: A alternativa B está errada, pois inicializar fora do loop é uma boa prática dentro da função, mas, se a inicialização estiver fora da função, o valor persiste entre chamadas. Passo 7: A alternativa D está errada, pois declarar a acumuladora fora da função faz com que ela mantenha o valor entre chamadas consecutivas, gerando exatamente o efeito colateral que se quer evitar. Passo 8: A alternativa E está errada, pois uma variável global para o resultado persiste entre chamadas e torna o algoritmo dependente do histórico de execuções.
💡 Dica: Considere as práticas de inicialização da variável acumuladora.
Alternativa por alternativa
O aluno acredita que compartilhar uma única variável global entre todas as funções organiza melhor o programa e evita problemas. Ele ignora que o estado compartilhado é justamente a origem dos efeitos colaterais.
Por que engana: O aluno pode confundir o uso de variáveis globais e locais, optando por uma variável global que pode causar efeitos colaterais indesejados.
O aluno acha que a inicialização fora do loop é o que garante a reinicialização correta entre chamadas. Ele não percebe que a inicialização precisa estar no escopo da função, não apenas em relação ao laço.
Variáveis locais são criadas e reinicializadas a cada chamada, evitando compartilhamento de estado e efeitos colaterais entre execuções.
O aluno confunde escopo com reinicialização e pensa que declarar a variável fora da função a mantém organizada. Na verdade, uma variável declarada fora da função persiste entre chamadas e acumula valores antigos.
O aluno supõe que, para o resultado ser acessível, a acumuladora precisa ser global. Ele não percebe que a variável global mantém o valor entre chamadas, causando o efeito colateral.
Raio-X da questão
variável acumuladora
avaliacao
variáveis em programação · escopo de variáveis
Revisar conceitos sobre algoritmos e variáveis acumuladoras.
O aluno pode confundir o uso de variáveis globais e locais, optando por uma variável global que pode causar efeitos colaterais indesejados.
ciencia_tecnologia
pensamento_critico
abstrato
Questões parecidas com resolução
- Para tornar um algoritmo reutilizável e seguro para execução paralela, qual prática relacionada a variáveis e efeitos…
- Ao decompor um algoritmo que atualiza a mesma variável de estado em várias subtarefas, que estratégia reduz efeitos…
- Em um algoritmo que soma notas usando uma variável acumuladora antes e dentro de um laço, por que é importante…
- Ao decompor um algoritmo que soma valores de uma lista em uma variável acumuladora, qual ação deve ocorrer antes de…
- Em um algoritmo que calcula a soma cumulativa de uma lista de dados, qual subtarefa da decomposição prepara a variável…
- Em um algoritmo que acumula ocorrências dentro de um loop, onde deve ser declarada a variável 'contador' para que ela…
Todas as questões de Estratégias de solução de problemas - Generalizaçã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
