Qual problema principal ocorre quando uma função recursiva modifica uma variável global ao percorrer uma lista…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Avaliar software levando em consideração diferentes características e métricas associadas.
Fonte: Base Nacional Comum Curricular (MEC).Questão
Qual problema principal ocorre quando uma função recursiva modifica uma variável global ao percorrer uma lista L em vez de usar parâmetros locais?
- A) A função garante reusabilidade e modularidade ao utilizar variáveis globais.
- B) A função se torna mais rápida, pois evita passar parâmetros.
- C) A função se torna mais fácil de testar, pois todos os dados estão acessíveis.
- D) Não ocorre problema nenhum, a função funciona perfeitamente.
- E) A função passa a produzir efeitos colaterais, tornando-a não pura e menos previsível para testes e reutilização.
✅ Resposta correta: alternativa E
Resolução passo a passo
- Analise o que a questão pergunta: qual é o problema principal de uma função recursiva que altera uma variável global enquanto percorre uma lista L, em vez de trabalhar com parâmetros locais.
- Lembre-se do conceito de efeito colateral. Uma função pura depende apenas de seus argumentos e não altera nada fora de si. Quando ela modifica uma variável global, passa a ter efeitos colaterais: seu resultado e seu comportamento dependem do estado externo e podem mudar entre chamadas.
- Consequências práticas. Em recursão, cada chamada pode alterar o mesmo estado compartilhado, o que dificulta raciocinar sobre o que acontece em cada nível, torna os testes menos previsíveis (é preciso preparar o estado global antes de cada teste) e impede reutilizar a função em outros contextos sem efeitos inesperados.
- Por isso a alternativa E está correta, e o gabarito oficial também a indica.
- Por que as demais estão erradas:
- A) Variáveis globais reduzem a reusabilidade, pois acoplam a função a um estado externo específico.
- B) Evitar passar parâmetros não torna a função mais rápida; o problema é de design, não de desempenho.
- C) Ter todos os dados acessíveis não facilita testes; ao contrário, exige controlar o estado global antes de cada teste.
- D) Há problema sim: o comportamento fica dependente do estado global e a função deixa de ser previsível.
💡 Dica: Considere os efeitos de variáveis globais em funções recursivas.
Alternativa por alternativa
Acredita que usar variáveis globais aumenta a reusabilidade, pois a função teria acesso fácil aos dados de qualquer lugar do programa.
Associa passar parâmetros a custo computacional e supõe que evitá-los melhora o desempenho da função recursiva.
Confunde acessibilidade dos dados com testabilidade, achando que ter tudo disponível globalmente facilita os testes, sem perceber que o estado compartilhado torna os resultados dependentes de chamadas anteriores.
Por que engana: O aluno pode acreditar que o uso de variáveis globais melhora a modularidade e a reusabilidade da função, ignorando os efeitos colaterais.
Acha que, como a função 'funciona' e produz o resultado esperado em um caso isolado, não há problema de design, ignorando efeitos colaterais e dependência do estado global.
Variáveis globais introduzem dependência de estado externo: chamadas não são reentrantes, testes ficam mais difíceis e comportamentos podem variar com chamadas paralelas.
Raio-X da questão
funções recursivas
diagnostico
funções recursivas · variáveis globais
Revisar o uso de variáveis globais em funções recursivas.
O aluno pode acreditar que o uso de variáveis globais melhora a modularidade e a reusabilidade da função, ignorando os efeitos colaterais.
ciencia_tecnologia
pensamento_critico
abstrato
Questões parecidas com resolução
- Ao decompor um algoritmo complexo em módulos, qual é o principal risco relacionado ao uso de variáveis globais entre…
- Quais cuidados devem ser tomados ao utilizar recursão em listas?
- Qual é a principal vantagem de usar recursão em um algoritmo para resolver problemas relacionados a listas?
- Em uma função recursiva que busca o maior número em uma lista, o que acontece se não houver uma condição de parada?
- Em um algoritmo que contém uma função que soma elementos de uma lista e usa uma variável contador temporária dentro…
- O que acontece quando uma função recursiva não possui uma condição de parada?
🔎 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
