GeraProva GeraProva Provas com IA para professores do Brasil
Computação1ª sérieBNCC EM13CO04Fácil⏱ medio

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

Habilidade BNCC EM13CO04

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?

  1. A) Criar uma nova função para cada tipo específico de dado que a função processa.
  2. B) Adicionar um loop para cada tipo de dado que a função irá processar.
  3. C) Adicionar um parâmetro de tipo genérico (por exemplo 'T') à assinatura do algoritmo.
  4. D) Remover todas as variáveis do algoritmo para simplificá-lo.
  5. E) Usar uma única variável para todos os tipos sem qualquer distinção.

✅ Resposta correta: alternativa C

Resolução passo a passo

  1. 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.
  2. 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.
  3. Portanto, a alternativa C está correta, pois a alteração está exatamente na assinatura e permite reutilizar o mesmo corpo para todos os tipos.
  4. 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.
  5. A alternativa B está errada, pois um loop por tipo não é um mecanismo de generalização e não altera a assinatura.
  6. A alternativa D está errada, pois remover variáveis não torna o algoritmo aplicável a tipos diferentes.
  7. 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.
  8. Resultado: o gabarito oficial C está correto.

💡 Dica: Considere como a tipagem pode ser generalizada em algoritmos.

Alternativa por alternativa

A Erradaerro: Conceituala que mais engana

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.

B Erradaerro: Conceitual

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.

C Correta

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.

D Erradaerro: Senso comum

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.

E Erradaerro: Conceitual

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

Dificuldade Fácil
Leitura medio
Discriminação medio
Peso pedagógico medio
Autonomia do enunciado completo
Cobertura da habilidade dupla
🧪 Simulado🩺 Diagnóstico🧮 Exige cálculo🏠 Cotidiano🔗 Interdisciplinar⭐ Representativa✍️ interpretativa🧩 progressao
🎯 Conceito central

tipagem de algoritmos

📌 Objetivo

avaliacao

🧱 Pré-requisitos

tipagem de dados · algoritmos genéricos

📚 Reveja

Revisar conceitos de tipagem e generics em programação.

⚠️ Erro mais comum

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.

🌎 Tema transversal

ciencia_tecnologia

🤝 Socioemocional

pensamento_critico

🏫 Contexto

abstrato

Questões parecidas com resolução

Todas as questões de [CONFERIR] Construir soluções baseadas no uso de algoritmos e conceitos da Computação para resolver problemas, avaliando suas qualidades e melhorando-as.

🔎 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

Ocorreu um erro inesperado. Recarregar X

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.