Você tem um algoritmo que filtra registros por campo fixo 'cidade'. Qual variável ou parâmetro deve ser…
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
Você tem um algoritmo que filtra registros por campo fixo 'cidade'. Qual variável ou parâmetro deve ser adicionado para generalizá-lo a filtrar por qualquer campo (por exemplo, cidade, idade ou status)? Inclua termo 'variável' ou 'parâmetro'.
- A) Adicionar parâmetro 'campo' (string) e parâmetro 'valor'; comparar registro[campo] == valor
- B) Adicionar o parâmetro 'valor' apenas
- C) Adicionar variável 'cidade' e 'registro' para filtrar
- D) Adicionar parâmetro 'data' para filtrar
- E) Adicionar variável 'busca' ao invés de 'campo'
✅ Resposta correta: alternativa A
Resolução passo a passo
- O algoritmo original filtra registros comparando sempre um campo fixo, 'cidade'. Para que ele sirva a qualquer campo (cidade, idade, status), é preciso tornar parametrizáveis as duas partes variáveis da comparação: qual campo será lido e qual valor será procurado.
- Ao adicionar o parâmetro 'campo' (string), o nome do atributo deixa de ser fixo e passa a ser informado na chamada, por exemplo 'idade' ou 'status'.
- Ao adicionar o parâmetro 'valor', o termo buscado também deixa de ser fixo, podendo ser, por exemplo, 'Campinas', 30 ou 'ativo'.
- A condição genérica fica registro[campo] == valor, que lê o campo indicado no momento da execução e o compara com o valor informado. Isso cumpre exatamente a generalização pedida, por isso a alternativa A está correta e coincide com o gabarito.
- A alternativa B é insuficiente, pois sem o parâmetro 'campo' o algoritmo continua preso a um único atributo. A alternativa C mantém 'cidade' fixa e ainda cria 'registro' como variável, o que não generaliza nada. A alternativa D usa um parâmetro específico para data, restringindo a generalidade em vez de ampliá-la. A alternativa E troca o nome de 'campo' por 'busca', mas continua sem indicar qual atributo do registro deve ser comparado.
💡 Dica: Pense em como tornar o filtro mais flexível.
Alternativa por alternativa
Um parâmetro 'campo' torna o critério abstrato; combinando com 'valor' o mesmo algoritmo filtra diferentes instâncias sem modificar sua lógica.
O aluno acredita que basta tornar o valor buscado variável, pois associa generalização apenas a 'trocar o termo procurado'. Não percebe que o nome do atributo continua fixo no código.
Por que engana: O aluno pode confundir a necessidade de um parâmetro dinâmico com a adição de um parâmetro fixo, como 'cidade'.
O aluno confunde o que deve ser parametrizado: acha que 'cidade' e 'registro' são as variáveis que precisam aparecer, mantendo justamente o nome fixo que deveria ser generalizado.
O aluno pensa que generalizar significa escolher um tipo de dado específico como data, confundindo um parâmetro concreto de exemplo com uma solução genérica.
O aluno acredita que basta renomear a variável para 'busca', como se o nome da variável fosse o que torna o filtro genérico, sem perceber que é preciso indicar o campo a ser comparado.
Raio-X da questão
filtragem de dados
fixacao
variáveis e parâmetros em algoritmos · filtragem de dados
Revisar como criar funções que aceitam parâmetros variáveis.
O aluno pode confundir a necessidade de um parâmetro dinâmico com a adição de um parâmetro fixo, como 'cidade'.
ciencia_tecnologia
tomada_decisao
abstrato
Questões parecidas com resolução
- Ao generalizar um algoritmo de filtragem para aceitar diferentes critérios sem alterar seu corpo, que tipo de parâmetro…
- Um algoritmo de ordenação atualmente compara itens pelo campo "preço". Qual parâmetro permite reutilizar o mesmo…
- Em um algoritmo que recebe uma coleção de dados e um parâmetro 'limite' para filtrar elementos maiores que esse valor…
- Projete a assinatura de um algoritmo de ordenação generalizado que permita reutilizar o mesmo código para diferentes…
- Um programador precisa desenvolver um algoritmo que resolve problemas variando o número de entradas. Como ele pode…
- Projete um algoritmo generalizado que receba uma coleção de registros e uma função parâmetro 'valida(reg)' que indique…
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
