Por que, ao generalizar um algoritmo para várias instâncias, é preferível passar dados via parâmetros em vez…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Explorar e construir a solução de problemas por meio de refinamentos, utilizando diversos níveis de abstração desde a especificação até a implementação.
Fonte: Base Nacional Comum Curricular (MEC).Questão
Por que, ao generalizar um algoritmo para várias instâncias, é preferível passar dados via parâmetros em vez de usar variáveis globais?
- A) Variáveis globais são sempre mais fáceis de entender do que parâmetros.
- B) Passar dados via retorno de função é igual a usar parâmetros.
- C) Variáveis globais melhoram a performance do código, reduzindo a quantidade de dados passados.
- D) Parâmetros tornam o código mais lento devido à necessidade de cópias.
- E) Porque parâmetros tornam dependências explícitas, preservam encapsulamento e evitam efeitos colaterais de variáveis globais.
✅ Resposta correta: alternativa E
Resolução passo a passo
- A questão pergunta por que, ao generalizar um algoritmo para várias instâncias, é melhor receber os dados por parâmetros do que por variáveis globais. Uma função generalizada deve funcionar para qualquer conjunto de entrada, e isso exige que ela trabalhe com dados recebidos de fora, não com valores fixos guardados em algum lugar compartilhado.
- Ao resolver por conta própria, percebo que o ponto central é a qualidade do projeto: parâmetros deixam explícito de quais dados a função depende, permitem chamar a mesma função com entradas diferentes sem alterar seu código e preservam o encapsulamento, pois a função não mexe em estado externo. Variáveis globais, ao contrário, criam dependências ocultas e podem gerar efeitos colaterais, já que qualquer parte do programa pode alterar o valor e quebrar o comportamento de outra.
- Comparando com o gabarito oficial (E), a alternativa E está correta e coincide com a minha conclusão.
- Por que as outras estão erradas: A está errada porque variáveis globais costumam dificultar a compreensão do programa, não facilitar. B está errada porque retorno e parâmetro são mecanismos diferentes: o retorno transmite um resultado para fora, enquanto o parâmetro transmite dados para dentro. C está errada porque o uso de globais não melhora a performance de forma relevante e o motivo de preferir parâmetros é de projeto, não de desempenho. D está errada porque passar parâmetros não torna o código lento de forma significativa; em geral o custo é desprezível e o ganho em clareza e manutenção é muito maior.
💡 Dica: Considere as vantagens de encapsulamento e modularidade.
Alternativa por alternativa
O aluno acredita que o uso de variáveis globais deixa o código mais simples, pois não é preciso declarar nem passar dados entre funções.
O aluno trata retorno e parâmetro como se fossem equivalentes, sem perceber que o retorno envia um resultado para fora da função e o parâmetro envia dados para dentro.
O aluno supõe que menos dados passados significa melhor desempenho e associa variáveis globais a eficiência, ignorando os problemas de acoplamento e manutenção.
Por que engana: Confundir a utilização de variáveis globais com a eficiência e clareza que os parâmetros proporcionam em um algoritmo.
O aluno imagina que cada parâmetro gera cópias caras que deixam o programa lento, sem considerar que esse custo é geralmente desprezível diante dos ganhos de clareza e reutilização.
Variáveis globais criam acoplamento oculto entre partes do código, dificultam teste, paralelismo e reutilização; parâmetros deixam claro o que é necessário e facilitam controle de estado.
Raio-X da questão
algoritmos e parâmetros
avaliacao
entendimento de algoritmos · uso de funções em programação
Revisar a diferença entre variáveis globais e parâmetros em funções.
Confundir a utilização de variáveis globais com a eficiência e clareza que os parâmetros proporcionam em um algoritmo.
ciencia_tecnologia
pensamento_critico
abstrato
Questões parecidas com resolução
- Qual vantagem direta de transformar uma variável global em parâmetro de função ao decompor um algoritmo que manipula…
- Em um algoritmo de agendamento com variáveis globais, ao aplicar decomposição para reduzir acoplamento entre módulos…
- Ao decompor um algoritmo complexo em módulos, qual é o principal risco relacionado ao uso de variáveis globais entre…
- Ao generalizar um algoritmo que processa uma coleção e acumula resultados, qual prática relativa à variável acumuladora…
- Quando criamos um algoritmo que utiliza parâmetros, qual é a principal vantagem que obtemos?
- Qual é a finalidade principal de decompor um algoritmo em subtarefas ao projetar uma solução que utiliza variáveis…
🔎 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
