Considere um algoritmo em pseudocódigo que busca o menor valor em um vetor. Qual invariante de laço adequada…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Elaborar algoritmos que envolvam instruções sequenciais, de repetição e de seleção usando uma linguagem de programação.
Fonte: Base Nacional Comum Curricular (MEC).Questão
Considere um algoritmo em pseudocódigo que busca o menor valor em um vetor. Qual invariante de laço adequada para a variável 'min' garante a corretude do algoritmo?
- A) 'min' é o maior valor encontrado
- B) 'min' é o primeiro elemento do vetor
- C) A cada iteração, 'min' contém o menor valor encontrado até a posição atual.
- D) 'min' é o número de elementos do vetor
- E) 'min' é sempre zero
✅ Resposta correta: alternativa C
Resolução passo a passo
- A questão pede a invariante de laço que garante que o algoritmo de busca do menor valor em um vetor está correto. Uma invariante é uma propriedade que é verdadeira antes do laço começar, continua verdadeira após cada iteração e, ao final, permite concluir que o algoritmo atingiu o objetivo.
- No algoritmo típico, min começa com o primeiro elemento do vetor e, em cada iteração, compara-se min com o próximo elemento, atualizando min quando encontra um valor menor. Portanto, a propriedade que se mantém em todas as iterações é: min contém o menor valor já examinado, isto é, o menor valor entre as posições já percorridas até a posição atual.
- Essa é exatamente a alternativa C. Verificando a invariante: antes do laço, com apenas o primeiro elemento considerado, min é o menor valor visto até então (vale). Em cada iteração, a atualização preserva a propriedade. Ao término, como o laço percorreu todo o vetor, min é o menor valor de todo o vetor.
- Por que as outras estão erradas: A) min guardar o maior valor encontrado é o oposto do que o algoritmo precisa, pois a tarefa é achar o menor. B) min ser sempre o primeiro elemento não vale ao longo do laço, pois min muda quando surge um valor menor; essa afirmação é apenas a condição inicial. D) min como número de elementos é uma confusão entre o valor buscado e o tamanho do vetor, que é outra variável. E) min sempre igual a zero não corresponde ao menor valor do vetor, que pode ser qualquer número.
- Conclusão: a alternativa correta é a C, coincidindo com o gabarito oficial.
💡 Dica: Analise as condições que garantem a escolha do menor valor.
Alternativa por alternativa
O aluno confundiu a busca pelo menor valor com a busca pelo maior, invertendo o objetivo do algoritmo.
O aluno tomou a condição inicial do algoritmo (min começa com o primeiro elemento) como se fosse a invariante que vale durante todo o laço, sem perceber que min é atualizado.
Por que engana: Confundir a definição de invariante de laço, escolhendo uma alternativa que não reflete a condição correta para encontrar o menor valor.
Manter essa invariante e atualizar 'min' ao comparar com cada elemento assegura que, ao finalizar o percurso do vetor, 'min' será o menor elemento de todo o vetor.
O aluno confundiu a variável min, que guarda um valor do vetor, com a variável que armazena o tamanho do vetor (n).
O aluno supôs que min deve ser inicializado com zero por intuição, sem considerar que o menor valor do vetor pode ser qualquer número, inclusive positivo.
Raio-X da questão
invariante de laço
avaliacao
lógica de programação · vetores e arrays
Revisar conceitos de algoritmos e invariantes de laço.
Confundir a definição de invariante de laço, escolhendo uma alternativa que não reflete a condição correta para encontrar o menor valor.
ciencia_tecnologia
pensamento_critico
abstrato
Questões parecidas com resolução
- Desenvolva um algoritmo que resolva o problema de encontrar o menor número em uma lista. Utilize variáveis adequadas e…
- Entre segunda e domingo, sensores automatizados de temperatura registraram dados diários em um laboratório de…
- Em pseudocódigo, ao percorrer um vetor V de tamanho n cuja indexação usa base 1, qual deve ser o valor inicial do índice…
- Em pseudocódigo, para percorrer um vetor A[0..n-1] com índice i iniciando em 0, qual condição booleana deve ser usada no…
- Observe o trecho de pseudocódigo: ao percorrer uma lista de números, o algoritmo começa com indice_max igual a 1. Sempre…
- Para que um algoritmo de busca binária em um vetor funcione corretamente, qual propriedade o vetor deve ter e por quê?
🔎 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
