— A última peça nunca aparece no painel — disse a monitora do centro cultural, ao conferir o inventário…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Analisar programas para detectar e remover erros, ampliando a confiança na sua correção.
Fonte: Base Nacional Comum Curricular (MEC).Questão
— A última peça nunca aparece no painel — disse a monitora do centro cultural, ao conferir o inventário digital de objetos encontrados após uma mostra. Para evitar enganos, ela testou o programa com três itens: chave, boné e caderno. O painel exibiu somente chave e boné. No código usado, a primeira posição da lista é 0: i <- 0 enquanto i < tamanho(itens) - 1 faça exibir itens[i] i <- i + 1 fim enquanto A monitora repetiu o teste com uma lista de quatro itens e observou novamente que apenas os três primeiros foram mostrados. Ela quer ajustar o programa para que cada item existente seja exibido uma única vez, inclusive quando a lista tiver apenas um elemento. Analise os resultados dos testes e identifique a modificação no laço que elimina o erro de exibição.
- A) Modificar o laço para aumentar i de 2 em 2 após cada exibição.
- B) Modificar o laço para continuar enquanto i for menor que tamanho(itens).
- C) Modificar o laço para iniciar com i igual a 1 e manter os demais comandos.
- D) Modificar o laço para continuar enquanto i for menor que tamanho(itens) - 2.
- E) Modificar o laço para continuar enquanto i for menor ou igual a tamanho(itens).
✅ Resposta correta: alternativa B
Resolução passo a passo
- Com os três itens (chave, boné e caderno), tamanho(itens) é 3. A condição i < tamanho(itens) - 1 vira i < 2, então o laço exibe apenas itens[0] (chave) e itens[1] (boné), exatamente o resultado observado pela monitora. Passo 2: Com quatro itens, a condição vira i < 3, e o laço exibe apenas os três primeiros, o mesmo erro do segundo teste. Passo 3: O defeito está no limite do laço. Como a primeira posição é 0, a última posição válida é tamanho(itens) - 1, e o laço para antes dela ao usar tamanho(itens) - 1 como limite. Passo 4: A correção é trocar a condição para i < tamanho(itens), que inclui todas as posições de 0 até tamanho(itens) - 1. Com três itens, i percorre 0, 1 e 2; com um único item, i < 1 é verdadeiro para i = 0, então o elemento é exibido, atendendo ao caso de lista unitária. Passo 5: Por que as outras estão erradas: A) aumentar i de 2 em 2 pula posições e não exibe todos os itens; C) começar em 1 elimina a exibição do primeiro item e ainda mantém o último item fora do laço; D) subtrair 2 deixa o limite ainda menor, exibindo menos itens; E) usar menor ou igual faz i chegar a tamanho(itens), posição inexistente, o que causa erro de acesso. Conclusão: a alternativa correta é a B, que coincide com o gabarito oficial.
💡 Dica: Analise o índice e o limite do laço para garantir que todos os itens sejam exibidos.
Alternativa por alternativa
Acredita que o problema está no passo do contador, e não no limite do laço. Ao pular de 2 em 2, ignora posições intermediárias da lista.
A condição passa pelos índices de 0 até o último item da lista. Assim, todos os itens são exibidos uma única vez.
Acha que a contagem deveria começar em 1, como em listas numeradas no dia a dia, sem perceber que a primeira posição é 0 e que o problema é o último item.
Percebe que falta um item e conclui que o limite está deslocado, mas subtrai ainda mais, sem notar que o limite já está um elemento abaixo do correto.
Ajusta o limite para menor ou igual sem considerar que a última posição válida é tamanho(itens) - 1, o que faz o laço tentar acessar um índice inexistente.
Raio-X da questão
controle de fluxo em listas
diagnostico
estruturas de repetição · índices em listas
Estude estruturas de repetição e índices em listas.
O aluno pode não entender que o limite do laço exclui o último elemento da lista.
pensamento_critico
cotidiano
Questões parecidas com resolução
- — Por que a bilheteria está cobrando “inteira” de crianças? — perguntou a atendente, ao testar um programinha que…
- — O painel marcou 80%, mas o caminhão não recebeu o aviso de retirada — observou a responsável pelo ponto de coleta de…
- Por que um agendamento pode parecer concluído para o sistema, mas permanecer duvidoso para quem o realizou? Em um teste…
- — Os avisos antigos ainda tocam, mas os novos não — explicou a atendente de uma unidade de saúde ao técnico que cuida do…
- Quando o rio se aproxima das casas, a Defesa Civil de um município usa um programa para avisar os moradores pelo…
- Por que o painel de alerta do rio não envia aviso mesmo quando o nível sobe em duas medições seguidas? Em uma simulação…
🔎 Resolver outra questão
Cole o enunciado e veja a resolução passo a passo, a alternativa correta e por que as outras estão erradas.
Professor: monte a prova com questões como esta, com gabarito e folha de respostas, em 30 segundos. Ver planos · Blog
