Em pseudocódigo, um algoritmo percorre um vetor V de tamanho n usando um índice i que inicia em 0; dentro do…
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
Em pseudocódigo, um algoritmo percorre um vetor V de tamanho n usando um índice i que inicia em 0; dentro do laço o código acessa V[i+1] para processar o elemento atual. Que erro de programação ocorre e qual correção direta impede acesso fora dos limites?
- A) Alterar a condição do laço para i < n é suficiente.
- B) O algoritmo não usa a variável i, logo não ocorre erro.
- C) A condição do laço deve ser i < n+1 para funcionar.
- D) Erro de índice (off-by-one); usar V[i] ou ajustar a condição do laço para impedir i = n-1 acessar V[n].
- E) O erro ocorre apenas em vetores de tamanho 0.
✅ Resposta correta: alternativa D
Resolução passo a passo
- O laço começa com i = 0 e percorre o vetor V de tamanho n, cujos índices válidos vão de 0 até n-1. Dentro do laço, o código acessa V[i+1]. Passo 2: Quando i vale n-1, o acesso fica V[n], que está fora dos limites do vetor, pois o último índice válido é n-1. Esse é um erro de índice, conhecido como off-by-one. Passo 3: A correção direta é fazer o acesso usar V[i] (ou seja, processar o elemento atual sem somar 1), ou ajustar a condição do laço, por exemplo para i < n-1 quando o código precisa olhar V[i+1]. Assim, o índice máximo usado passa a ser n-1. Passo 4: A alternativa A está errada, pois manter i < n não impede V[i+1] de acessar V[n] quando i = n-1. Passo 5: A alternativa B está errada, pois a variável i é justamente o índice usado no acesso V[i+1], e o erro existe por causa dela. Passo 6: A alternativa C está errada, pois i < n+1 faz o laço chegar a i = n, o que piora o problema, com acessos ainda mais fora dos limites. Passo 7: A alternativa E está errada, pois o erro acontece em qualquer vetor de tamanho n, inclusive para n maior que 0, sempre que houver acesso ao índice n. Passo 8: Portanto, a alternativa correta é a D, que descreve o erro de índice off-by-one e a correção adequada, coincidindo com o gabarito oficial.
💡 Dica: Identifique o erro de índice e proponha uma solução.
Alternativa por alternativa
O aluno acredita que limitar o laço a i < n resolve o problema, sem perceber que o acesso V[i+1] continua indo até V[n] quando i = n-1.
O aluno pensa que, se a variável i não aparece em uma operação de escrita ou não é usada diretamente, não há erro, ignorando que V[i+1] depende de i.
O aluno confunde o limite do laço com o tamanho do vetor e acha que ampliar a condição para i < n+1 faz o laço funcionar, quando isso aumenta o acesso fora dos limites.
Por que engana: O aluno pode confundir o limite do vetor, permitindo que o índice acesse uma posição inválida, como V[n].
Quando i chega a n-1 o acesso V[i+1] tenta ler V[n], que está fora do intervalo 0..n-1. Corrigir usando V[i] ou limitar o laço (por exemplo i <= n-2) evita leitura fora dos limites.
O aluno acha que o erro só ocorre em casos extremos, como vetores vazios, sem perceber que o acesso a V[n] falha para qualquer tamanho de vetor.
Raio-X da questão
acesso a vetor
diagnostico
acesso a vetor · laços de repetição
Revisar conceitos de limites de vetores e laços em pseudocódigo.
O aluno pode confundir o limite do vetor, permitindo que o índice acesse uma posição inválida, como V[n].
ciencia_tecnologia
pensamento_critico
abstrato
Questões parecidas com resolução
- 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…
- Uma lista não vazia possui índices de 0 até n, e n é seu último índice válido. Em um laço, o índice i começa em 0…
- Em um programa que usa uma variável índice para acessar elementos de um vetor de dados, qual verificação previne acesso…
- Ao testar um algoritmo que soma elementos de um vetor usando um índice, quais casos de teste detectam erros de índice…
- O que acontece se um programa tenta acessar um índice fora dos limites de uma lista?
- Ao analisar um programa que utiliza uma matriz para armazenar notas de alunos, identifique um erro frequente na…
🔎 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
