— Devolvi o livro um dia depois e o aplicativo disse que eu estava “no prazo”! — reclamou um usuário da…
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
— Devolvi o livro um dia depois e o aplicativo disse que eu estava “no prazo”! — reclamou um usuário da biblioteca do bairro. A biblioteca usa um programa simples para orientar o atendimento. A regra informada no balcão é: se o livro tiver pelo menos 1 dia de atraso, o sistema deve mostrar “Atrasado” e impedir a renovação. Ao revisar o programa, a funcionária encontrou este trecho: se dias_atraso > 1 status <- "Atrasado" pode_renovar <- falso senao status <- "No prazo" pode_renovar <- verdadeiro Nos testes, com dias_atraso = 0 funcionou; com dias_atraso = 1 apareceu “No prazo”; com dias_atraso = 2 apareceu “Atrasado”. Com base na regra da biblioteca e no trecho do programa, identifique a mudança no teste da condição que corrige o erro para qualquer atraso.
- A) Trocar dias_atraso > 1 por dias_atraso > 0.
- B) Trocar senao por se nao (dias_atraso > 1) e manter o restante.
- C) Trocar status <- "No prazo" por status <- "Atrasado" no senao.
- D) Trocar pode_renovar <- falso por pode_renovar <- verdadeiro no primeiro bloco.
- E) Trocar dias_atraso > 1 por dias_atraso >= 1.
✅ Resposta correta: alternativa E
Resolução passo a passo
- A regra da biblioteca diz que atraso de pelo menos 1 dia deve gerar 'Atrasado' e impedir a renovação. Ou seja, dias_atraso maior ou igual a 1 deve ser o caso 'Atrasado'. Passo 2: No trecho do programa, a condição é dias_atraso > 1, que só é verdadeira a partir de 2 dias. Por isso, com 1 dia de atraso o sistema cai no senão e mostra 'No prazo', exatamente o erro relatado. Passo 3: A troca correta é mudar a condição para dias_atraso >= 1, que captura 1 dia, 2 dias e qualquer atraso maior. Com dias_atraso = 0 continua 'No prazo', como deve ser. Passo 4: Alternativa A: dias_atraso > 0 também funciona para dias inteiros, pois não existe meio dia na contagem; a questão admite essa equivalência, mas a forma >= 1 expressa diretamente a regra 'pelo menos 1 dia', por isso é a resposta pedida. Passo 5: Alternativa B: trocar senao por se nao (dias_atraso > 1) não altera o limite de 1 dia, então o erro continua. Passo 6: Alternativa C: mudar o texto do status no senão não corrige a condição; com 1 dia ainda cairia no senão. Passo 7: Alternativa D: trocar o valor de pode_renovar no primeiro bloco não resolve, pois o problema está na condição que decide em qual bloco o caso entra. Passo 8: Gabarito oficial E confere com a análise feita.
💡 Dica: Analise a condição do teste para incluir atraso de 1 dia.
Alternativa por alternativa
Acredita que basta reduzir o limite de 1 para 0 para corrigir o erro, sem perceber que, em dias inteiros, dias_atraso > 0 e dias_atraso >= 1 têm o mesmo efeito. A alternativa funciona na prática, mas a questão pede a forma que expressa diretamente a regra.
Acredita que mudar apenas a estrutura do se/senão, mantendo a mesma comparação com 1, altera o comportamento. A condição dias_atraso > 1 continua excluindo o caso de 1 dia, então o erro permanece.
Pensa que o problema está no texto mostrado no senão e que trocar o rótulo corrige a falha. O rótulo não é o que decide o resultado; a condição que escolhe o bloco é que precisa mudar.
Confunde o valor de pode_renovar com a causa do erro, supondo que inverter a permissão no primeiro bloco corrige o cálculo do prazo. O problema está em qual bloco é executado, não no valor atribuído dentro dele.
A regra exige aviso a partir de 1 dia; usar >= 1 faz dias_atraso = 1 entrar no caso “Atrasado”.
Raio-X da questão
condicional lógica programação
diagnostico
estruturas condicionais básicas · operadores relacionais
Estude estruturas condicionais e operadores relacionais.
Confundir o operador '>' com '>=' e não considerar atraso de exatamente 1 dia.
ciencia_tecnologia
pensamento_critico
cotidiano
Questões parecidas com resolução
- Quando o rio se aproxima das casas, a Defesa Civil de um município usa um programa para avisar os moradores pelo…
- — Tem audioguia disponível? — perguntou um visitante na entrada de uma mostra interativa. A equipe tem 12 aparelhos de…
- — 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 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…
- — Tenho 10 selos no cartão. Já posso usar o desconto? — perguntou uma cliente na padaria do bairro. Para agilizar o…
- Por que o site da prefeitura libera o agendamento para algumas pessoas e bloqueia para outras? No formulario de vacina…
🔎 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
