GeraProva GeraProva Provas com IA para professores do Brasil
Computação9º anoBNCC EF09CO03Difícil⏱ medio

Dados ilustrativos: em um jardim sensorial, três bancos equipados com sensores de pressão registram quando…

Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva

Habilidade BNCC EF09CO03

Usar autômatos para descrever comportamentos de forma abstrata automatizando-os através de uma linguagem de programação baseada em eventos.

Fonte: Base Nacional Comum Curricular (MEC).

Questão

Dados ilustrativos: em um jardim sensorial, três bancos equipados com sensores de pressão registram quando cada banco é ocupado ou desocupado. O sistema contabiliza o número total de bancos ocupados e gerencia três modos sonoros: Silencioso (0 ocupações), Crescendo (1 ou 2 ocupações) e Ondulante (3 ocupações). A cada evento de banco_ocupado ou banco_desocupado, o sistema atualiza o contador, determina o modo correspondente e aciona imediatamente a reprodução do padrão musical adequado. Essa solução usa um autômato finito para mapear o estado do contador a cada transição de evento, permitindo a programação baseada em eventos sem intervenção manual. Identifique o conjunto de tratadores de eventos que implementa corretamente as transições do autômato descrito no texto-base.

  1. A) on("banco_ocupado",()=>{ estado = min(estado+1,3); updateSound(estado); }); on("banco_desocupado",()=>{ estado = max(estado-1,0); updateSound(estado); });
  2. B) on("banco_ocupado",()=>{ if(estado<3) estado++; }); on("banco_desocupado",()=>{ if(estado>0) estado--; updateSound(estado); });
  3. C) on("banco_ocupado",()=>{ estado++; updateSound(estado); }); on("banco_desocupado",()=>{ estado--; updateSound(estado); });
  4. D) on("banco_ocupado",()=>{ estado = min(estado+1,3); updateSound(estado); }); on("banco_desocupado",()=>{ estado = max(estado-1,1); updateSound(estado); });
  5. E) on("banco_ocupado",()=>{ estado = min(estado+1,3); updateSound(estado); }); on("banco_desocupado",()=>{ if(estado>1) estado--; updateSound(estado); });

✅ Resposta correta: alternativa A

Resolução passo a passo

  1. O contador de bancos ocupados deve variar de 0 a 3, pois são três bancos. Ao ocupar um banco, o contador sobe 1, sem passar de 3. Ao desocupar, ele desce 1, sem ficar abaixo de 0. Em cada evento, o modo sonoro precisa ser atualizado imediatamente.
  2. Na alternativa A, o tratador de banco_ocupado faz estado = min(estado+1,3), que limita o valor máximo em 3, e em seguida chama updateSound(estado). O tratador de banco_desocupado faz estado = max(estado-1,0), que limita o valor mínimo em 0, e também chama updateSound(estado). Assim, todas as transições do autômato são cobertas, com os estados limitados ao intervalo 0 a 3 e o som atualizado a cada evento.
  3. Comparando com o gabarito oficial, A é a alternativa correta e coincide com a resolução feita de forma independente.
  4. Por que as outras estão erradas:
  5. B: o tratador de banco_ocupado não chama updateSound, então o som não muda quando um banco é ocupado, o que viola a exigência de acionar a reprodução imediatamente.
  6. C: não há limites, então o contador pode chegar a 4 ou a valores negativos, estados que não existem no autômato.
  7. D: o limite inferior do desocupado é 1 em vez de 0, então o sistema nunca volta ao estado Silencioso (0 ocupações).
  8. E: o desocupado só decrementa quando o estado é maior que 1, o que impede a transição de 1 para 0 e, portanto, o retorno ao modo Silencioso.

💡 Dica: Analise como cada evento altera o estado e atualiza o som conforme as regras do autômato.

Alternativa por alternativa

A Correta

Usa min e max para manter limites entre 0 e 3 e chama updateSound após cada evento, conforme o autômato descrito.

B Erradaerro: Procedimentala que mais engana

O aluno acredita que basta atualizar o contador e que o som pode ser ignorado no evento de ocupação, ou que updateSound pode ficar fora do bloco correto. Ele não percebe que cada evento deve acionar a reprodução do padrão.

Por que engana: Confundir limites do estado ao incrementar ou decrementar, causando estados inválidos.

C Erradaerro: Conceitual

O aluno esquece que o contador é limitado entre 0 e 3 e trata o contador como um número sem limites, como se pudesse ficar negativo ou passar de 3.

D Erradaerro: Interpretação

O aluno aplica o limite inferior 1 ao desocupar, achando que o sistema nunca deve chegar a zero. Não percebe que 0 ocupações corresponde ao modo Silencioso, que precisa ser alcançável.

E Erradaerro: Procedimental

O aluno impõe a condição de só decrementar quando o estado é maior que 1, o que impede a passagem de 1 para 0. Assim, o modo Silencioso nunca é restabelecido após a última desocupação.

Raio-X da questão

Dificuldade Difícil
Bloom Criar
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

autômato finito, eventos, transições

📌 Objetivo

avaliacao

🧱 Pré-requisitos

eventos em programação · controle de estado

📚 Reveja

Estude autômatos finitos e manipulação de eventos em programação.

⚠️ Erro mais comum

Confundir limites do estado ao incrementar ou decrementar, causando estados inválidos.

🌎 Tema transversal

ciencia_tecnologia

🤝 Socioemocional

pensamento_critico

🏫 Contexto

cotidiano

Questões parecidas com resolução

Todas as questões de Programação - Autômatos e linguagens baseadas em eventos

🔎 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.