Ao generalizar um algoritmo para processar coleções com elementos de tipos distintos (por exemplo números e…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Reconhecer o conceito de metaprogramação como uma forma de generalização na construção de programas, permitindo que algoritmos sejam entrada ou saída para outros algoritmos.
Fonte: Base Nacional Comum Curricular (MEC).Questão
Ao generalizar um algoritmo para processar coleções com elementos de tipos distintos (por exemplo números e texto), qual modificação na assinatura permite reutilizar o mesmo corpo de código para todos os tipos?
- A) Criar uma nova função para cada tipo específico de dado que a função processa.
- B) Adicionar um loop para cada tipo de dado que a função irá processar.
- C) Adicionar um parâmetro de tipo genérico (por exemplo 'T') à assinatura do algoritmo.
- D) Remover todas as variáveis do algoritmo para simplificá-lo.
- E) Usar uma única variável para todos os tipos sem qualquer distinção.
✅ Resposta correta: alternativa C
Resolução passo a passo
- O problema pede a modificação que permite escrever um único corpo de código que funcione com coleções de elementos de tipos diferentes, como números e textos.
- A solução padrão é a programação genérica (generics, templates ou polimorfismo paramétrico). Ao declarar um parâmetro de tipo, como 'T', na assinatura, o algoritmo passa a ser escrito em termos de um tipo abstrato, e o tipo concreto é definido na chamada, por exemplo T = inteiro ou T = texto.
- Portanto, a alternativa C está correta, pois a alteração está exatamente na assinatura e permite reutilizar o mesmo corpo para todos os tipos.
- A alternativa A está errada, pois criar uma função para cada tipo gera duplicação de código, justamente o que se quer evitar.
- A alternativa B está errada, pois um loop por tipo não é um mecanismo de generalização e não altera a assinatura.
- A alternativa D está errada, pois remover variáveis não torna o algoritmo aplicável a tipos diferentes.
- A alternativa E está errada, pois usar uma única variável sem distinção de tipo ignora a segurança de tipos e não resolve a generalização de forma correta.
- Resultado: o gabarito oficial C está correto.
💡 Dica: Considere como a tipagem pode ser generalizada em algoritmos.
Alternativa por alternativa
O aluno acredita que cada tipo de dado exige uma função própria, o que leva à duplicação de código em vez de reutilização.
Por que engana: O aluno pode confundir a necessidade de criar funções específicas para cada tipo de dado, em vez de usar um tipo genérico que permita a reutilização do código.
O aluno confunde estrutura de repetição com mecanismo de generalização, imaginando que um loop extra tornaria o código aplicável a novos tipos.
Um parâmetro de tipo torna a função independente do tipo concreto, evitando duplicação de código e permitindo que o mesmo corpo opere sobre diferentes tipos quando as operações necessárias estiverem definidas.
O aluno associa simplificação do código à remoção de variáveis, sem perceber que o problema é de tipagem e não de quantidade de variáveis.
O aluno pensa que usar uma única variável sem distinção de tipos equivale a generalizar, ignorando que a generalização exige um parâmetro de tipo explícito na assinatura.
Raio-X da questão
tipagem de algoritmos
avaliacao
tipagem de dados · algoritmos genéricos
Revisar conceitos de tipagem e generics em programação.
O aluno pode confundir a necessidade de criar funções específicas para cada tipo de dado, em vez de usar um tipo genérico que permita a reutilização do código.
ciencia_tecnologia
pensamento_critico
abstrato
Questões parecidas com resolução
- Ao generalizar um algoritmo para aplicar operações distintas a elementos de uma coleção heterogênea, que tipo de…
- Ao generalizar um algoritmo que processa uma coleção e acumula resultados, qual prática relativa à variável acumuladora…
- Em um algoritmo que recebe uma coleção de dados e um parâmetro 'limite' para filtrar elementos maiores que esse valor…
- Considere um algoritmo que decide aceitar ou rejeitar itens conforme uma política configurável (ex.: regras de…
- Ao generalizar um algoritmo de filtragem para aceitar diferentes critérios sem alterar seu corpo, que tipo de parâmetro…
- Ao projetar um algoritmo em pseudocódigo onde uma variável precisa armazenar ora um inteiro, ora um texto durante a…
🔎 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
