Você tem três versões de um algoritmo de validação de senha com regras diferentes (mínimo de caracteres…
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 três versões de um algoritmo de validação de senha com regras diferentes (mínimo de caracteres, exigir dígito, exigir símbolo). Para criar uma única rotina parametrizável que trate todas as instâncias, qual estratégia de solução deve ser aplicada e qual variável representa o mínimo de caracteres?
- A) Adicionar um parâmetro 'documentacao' para especificar detalhes da senha.
- B) Estratégia: generalização; Variável: 'min_length' (inteiro) que define o comprimento mínimo.
- C) Usar uma variável global para definir o mínimo de caracteres na rotina.
- D) Implementar três funções separadas para cada tipo de validação de senha.
- E) Criar um dicionário com as regras específicas como chaves.
✅ Resposta correta: alternativa B
Resolução passo a passo
- A questão pede duas coisas: a estratégia para criar uma única rotina que sirva para todas as versões do validador e a variável que representa o mínimo de caracteres. Passo 2: Como as três versões diferem apenas nos valores das regras (mínimo de caracteres, exigência de dígito, exigência de símbolo), a estratégia adequada é a generalização: extrair o que é comum e transformar o que varia em parâmetros da rotina. Passo 3: O mínimo de caracteres é um valor numérico inteiro, então a variável natural é min_length, que recebe o comprimento mínimo exigido em cada instância. Passo 4: Por que as outras estão erradas: A) documentação descreve o comportamento, mas não é um parâmetro que a rotina consegue usar para validar. C) Uma variável global impede que cada instância tenha seu próprio mínimo e cria acoplamento entre partes do programa. D) Três funções separadas resolvem o problema para casos fixos, mas duplicam código e não formam uma rotina única parametrizável. E) Um dicionário de regras pode até organizar os dados, mas a questão pede a variável que representa o mínimo, e a alternativa não a identifica. Passo 5: Conclusão: a resposta correta é a B, pois generalizar com um parâmetro inteiro min_length atende exatamente ao enunciado. O gabarito oficial está correto.
💡 Dica: Analise as regras e proponha uma solução genérica.
Alternativa por alternativa
O aluno acredita que documentar as regras (por exemplo, em um campo de descrição) torna a rotina parametrizável. Documentação não altera o comportamento do código e não substitui um parâmetro executável.
A generalização converte regras específicas em parâmetros configuráveis; 'min_length' permite ajustar o requisito de comprimento sem alterar o algoritmo.
O aluno entende que usar uma variável global já parametriza a rotina. Na verdade, o global é um valor único compartilhado, o que impede instâncias diferentes com mínimos diferentes e aumenta o acoplamento.
Por que engana: Escolher a alternativa que sugere o uso de variáveis globais, acreditando que isso simplificaria a implementação, mas na verdade pode causar problemas de manutenção e legibilidade do código.
O aluno confunde especialização com generalização e acha que criar uma função para cada regra é a forma de tratar todas as instâncias. Isso duplica a lógica e não produz uma única rotina reutilizável.
O aluno percebe que as regras podem ser organizadas como dados, mas lê mal a pergunta, que pede a estratégia e a variável específica do mínimo de caracteres. O dicionário não identifica essa variável.
Raio-X da questão
algoritmo de validação
avaliacao
estratégias de programação · variáveis em algoritmos
Revisar conceitos de algoritmos e validação de senhas.
Escolher a alternativa que sugere o uso de variáveis globais, acreditando que isso simplificaria a implementação, mas na verdade pode causar problemas de manutenção e legibilidade do código.
ciencia_tecnologia
pensamento_critico
abstrato
Questões parecidas com resolução
- Descreva em pseudocódigo um algoritmo que valide uma senha recebida como string conforme: mínimo 8 caracteres, ao menos…
- Você está desenvolvendo um algoritmo que deve verificar se uma senha é forte. Uma senha é considerada forte se tiver…
- Projete em pseudocódigo um algoritmo que valide a força de uma senha recebida como dado: a senha deve ter pelo menos 8…
- Projete um algoritmo em pseudocódigo que verifique a força de uma senha (string) recebida como dado. Considere…
- Descreva em pseudocódigo um algoritmo que verifique se uma senha atende requisitos mínimos: pelo menos 8 caracteres, ao…
- Em pseudocódigo, ao registrar se uma senha atende critérios (comprimento mínimo e conjunto de caracteres), qual tipo de…
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
