— Tenho 10 selos no cartão. Já posso usar o desconto? — perguntou uma cliente na padaria do bairro. Para…
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
— Tenho 10 selos no cartão. Já posso usar o desconto? — perguntou uma cliente na padaria do bairro. Para agilizar o atendimento, o caixa usa um pequeno programa no tablet. A regra combinada é simples: com 10 selos ou mais, o desconto deve ser liberado; com menos de 10, o programa deve informar quantos selos faltam. No entanto, quando a cliente digitou 10, o tablet mostrou “Faltam 0 selos” e não liberou o desconto. O programa é este: ler selos se selos > 10 mostrar "Desconto liberado" senao mostrar "Faltam " + (10 - selos) + " selos" fim Analise o programa do texto e identifique a menor alteração que corrige o erro, fazendo o desconto ser liberado quando a pessoa tiver exatamente 10 selos.
- A) Substituir selos > 10 por selos >= 10 na condição do se
- B) Substituir a mensagem "Desconto liberado" por "Faltam 0 selos" no bloco verdadeiro
- C) Substituir (10 - selos) por (selos - 10) na linha que calcula os selos
- D) Substituir o senao por fim, removendo o bloco que mostra quantos selos faltam
- E) Substituir o comando ler selos por mostrar selos no início do programa
✅ Resposta correta: alternativa A
Resolução passo a passo
- A regra combinada é que, com 10 selos ou mais, o desconto deve ser liberado. O programa testa a condição selos > 10, que é verdadeira apenas para 11 selos ou mais. Com exatamente 10 selos, a condição é falsa e o programa executa o senão, mostrando "Faltam 0 selos", exatamente o erro relatado.
- Para corrigir com a menor alteração, basta trocar o operador de comparação para maior ou igual: selos >= 10. Assim, com 10 selos a condição fica verdadeira e o desconto é liberado, enquanto com menos de 10 o comportamento continua o mesmo.
- Por que as outras alternativas estão erradas:
- B) Trocar o texto da mensagem não altera a decisão do programa; com 10 selos o desconto continuaria bloqueado.
- C) Calcular selos - 10 não corrige a condição e geraria valores negativos ou incorretos na mensagem de faltantes.
- D) Remover o bloco senão eliminaria a informação de quantos selos faltam, o que contraria a regra, e não liberaria o desconto com 10 selos.
- E) Mostrar o valor de selos no início não muda a condição de liberação do desconto, então o erro permaneceria.
- Conclusão: a alteração correta é a letra A, pois corrige a fronteira do critério (o limite 10 deve ser incluído) com uma única mudança mínima.
💡 Dica: Analise a condição do 'se' para incluir o caso de 10 selos.
Alternativa por alternativa
Com 10 selos, a condição precisa ser verdadeira; trocar > por >= inclui o caso selos = 10 e libera o desconto.
O aluno acredita que o problema está na mensagem exibida, achando que trocar o texto mudaria o resultado da condição.
Por que engana: Confundir o operador '>' com '>=' e não considerar o caso limite na condição.
O aluno inverte a subtração, imaginando que a fórmula da mensagem é o que impede a liberação, sem perceber que o problema está na condição do se.
O aluno pensa que remover o senão resolveria o caso, sem notar que o desconto só seria liberado pela condição do se, que continuaria falsa para 10 selos.
O aluno acredita que mostrar a quantidade de selos muda a lógica do programa, confundindo exibição de dados com a decisão feita pela condição.
Raio-X da questão
condicional lógica em programação
avaliacao
estruturas condicionais básicas · operadores relacionais
Estude estruturas condicionais e operadores relacionais em programação.
Confundir o operador '>' com '>=' e não considerar o caso limite na condição.
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…
- — 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 uma cozinha solidária pode ter alimentos guardados e, ainda assim, não conseguir montar todas as cestas…
- Na porta de um centro cultural, um programa simples decide se o visitante paga ingresso ou entra de graça. A regra foi…
- — Devolvi o livro um dia depois e o aplicativo disse que eu estava “no prazo”! — reclamou um usuário da biblioteca do…
- Tem-se um algoritmo que aplica desconto fixo de 10% ao preço de um produto. Como generalizar esse algoritmo usando uma…
🔎 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
