GeraProva GeraProva Provas com IA para professores do Brasil
Computação7º anoBNCC EF07CO02Média⏱ medio

— Por que o celular tocou de madrugada se eu deixei o “silêncio automático” ligado? — perguntou uma moradora…

Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva

Habilidade BNCC EF07CO02

Analisar programas para detectar e remover erros, ampliando a confiança na sua correção.

Fonte: Base Nacional Comum Curricular (MEC).

Questão

— Por que o celular tocou de madrugada se eu deixei o “silêncio automático” ligado? — perguntou uma moradora, depois que o grupo do prédio recebeu um aviso às 23h. O aplicativo usa a hora (um número de 0 a 23) para decidir se pode tocar som. O combinado era: entre 22h e antes de 7h, o app deve ficar silencioso; nos outros horários, pode tocar. O programador testou a função abaixo e anotou que ela devolveu FALSO para hora = 23, hora = 6 e hora = 10. func Silenciar(hora): se (hora >= 22 e hora < 7) retornar VERDADEIRO senao retornar FALSO Analise o algoritmo e identifique a mudança na condição que corrige o erro lógico para o modo silencioso funcionar no intervalo combinado.

  1. A) Adicionar "se hora < 7 entao hora = hora + 24" antes da condição, mantendo-a igual.
  2. B) Substituir "retornar VERDADEIRO" por "retornar FALSO" dentro do se.
  3. C) Substituir "hora >= 22 e hora < 7" por "hora >= 22 ou hora < 7".
  4. D) Substituir "hora >= 22" por "hora > 22", mantendo o restante igual.
  5. E) Substituir "hora < 7" por "hora <= 7", mantendo o restante igual.

✅ Resposta correta: alternativa C

Resolução passo a passo

  1. Analisamos a condição original. O intervalo combinado é de 22h até antes das 7h, ou seja, horas 22, 23, 0, 1, 2, 3, 4, 5 e 6. Essas horas formam um intervalo que 'cruza a meia-noite'. Passo 2: A condição original é 'hora >= 22 e hora < 7'. Essas duas exigências juntas nunca podem ser verdadeiras ao mesmo tempo, pois nenhum número é maior ou igual a 22 e menor que 7. Por isso a função devolve FALSO para todas as horas, o que explica os testes com hora = 23, 6 e 10. Passo 3: Para cobrir o intervalo que atravessa a meia-noite, basta que a hora esteja em pelo menos uma das duas faixas: ou é maior ou igual a 22, ou é menor que 7. Isso corresponde ao conectivo 'ou'. Passo 4: Testando a alternativa C, 'hora >= 22 ou hora < 7': para hora = 23 a primeira parte é verdadeira, retornando VERDADEIRO; para hora = 6 a segunda parte é verdadeira, retornando VERDADEIRO; para hora = 10 nenhuma parte é verdadeira, retornando FALSO. O comportamento fica correto. Passo 5: Por que as outras alternativas estão erradas. A: somar 24 à hora menor que 7 gera valores como 30, que não satisfazem 'hora < 7' nem a condição 'e' original, então a função continua falhando. B: trocar o retorno para FALSO inverte a resposta, mas a condição continua impossível, então o silêncio nunca ocorreria dentro do intervalo. D: trocar 'hora >= 22' por 'hora > 22' deixa de fora a hora 22 e não resolve a contradição do 'e'. E: trocar 'hora < 7' por 'hora <= 7' inclui a hora 7, que não faz parte do intervalo combinado, e também mantém o 'e' impossível. Passo 6: Conclusão: a mudança correta é trocar o 'e' por 'ou', alternativa C, que coincide com o gabarito oficial.

💡 Dica: Analise a condição lógica e identifique o operador correto para o intervalo de horas.

Alternativa por alternativa

A Erradaerro: Conceituala que mais engana

Acredita que o problema está só na forma como a hora é representada e que somar 24 às horas da madrugada 'resolve' o intervalo, sem perceber que a contradição lógica do 'e' permanece.

Por que engana: Confundir o operador 'e' com 'ou' em condições que envolvem intervalos que atravessam a meia-noite.

B Erradaerro: Interpretação

Entende que o valor retornado dentro do se está invertido e que trocar VERDADEIRO por FALSO corrigiria o silêncio, sem notar que a condição nunca é verdadeira.

C Correta

O intervalo atravessa a meia-noite; basta unir os dois trechos (>=22) e (<7) com OU, para 23 e 6 virarem verdadeiros.

D Erradaerro: Procedimental

Acha que o erro está no limite inferior do intervalo e que a hora 22 não é contada, sem perceber que o problema real é o conectivo 'e' que torna a condição impossível para qualquer hora.

E Erradaerro: Atenção

Supõe que o limite de 7h precisa ser incluído e que 'menor ou igual a 7' corrigiria o intervalo, sem perceber que o 'e' continua tornando a condição sempre falsa e que o horário combinado é antes das 7h.

Raio-X da questão

Dificuldade Média
Bloom Analisar
Leitura medio
Discriminação alto
Peso pedagógico medio
Autonomia do enunciado completo
Cobertura da habilidade unica
🧪 Simulado🩺 Diagnóstico🧮 Exige cálculo🏠 Cotidiano🔗 Interdisciplinar⭐ Representativa✍️ situacional🧩 consolidacao
🎯 Conceito central

condição lógica em programação

📌 Objetivo

diagnostico

🧱 Pré-requisitos

operadores lógicos básicos · estruturas condicionais simples

📚 Reveja

Estude operadores lógicos e intervalos em estruturas condicionais.

⚠️ Erro mais comum

Confundir o operador 'e' com 'ou' em condições que envolvem intervalos que atravessam a meia-noite.

🌎 Tema transversal

ciencia_tecnologia

🤝 Socioemocional

pensamento_critico

🏫 Contexto

cotidiano

Questões parecidas com resolução

Todas as questões de Análise de programas

🔎 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

Ocorreu um erro inesperado. Recarregar X

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.