GeraProva GeraProva Provas com IA para professores do Brasil
BNCC

Atividades sobre Programação usando grafos e árvores com gabarito — 9º ano (EF09CO03)

Atividades de Computação para o 9º ano sobre autômatos, eventos e transições, alinhadas à EF09CO03. Veja questões com gabarito comentado e caminhos práticos para ensinar e avaliar.

Atividades sobre Programação usando grafos e árvores com gabarito — 9º ano (EF09CO03)

Quando recebi pela primeira vez o código EF09CO03 no planejamento de Computação, confesso que fiquei um pouco perdido. O texto da BNCC fala em autômatos e linguagens baseadas em eventos, e a minha dúvida era como transformar aquilo em uma aula que os alunos do 9º ano realmente entendessem, e depois em uma avaliação justa.

Com o tempo, percebi que o caminho passa por partir de situações concretas do dia a dia, como semáforos, trancas eletrônicas e sensores, e só depois chegar à representação formal. Foi isso que organizei neste texto, junto com seis questões prontas para você usar.

O que a habilidade EF09CO03 pede, de verdade?

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

Na prática, a habilidade quer que o aluno consiga descrever um comportamento como uma sequência de estados e transições, e que depois traduza essa descrição para um programa que reage a eventos. Um autômato é, em essência, uma forma organizada de dizer: estou em tal situação, ocorreu tal evento, então passo para outra situação. O aluno precisa identificar os estados possíveis, os eventos que provocam mudanças e as regras que conectam uma coisa à outra. Não se trata de decorar símbolos, mas de enxergar a lógica por trás de um sistema que reage ao mundo, como um botão de travessia que muda o comportamento de um sinal ou um sensor que aciona uma bomba. Quando o aluno domina essa leitura, a programação orientada a eventos deixa de parecer mágica e passa a ser uma consequência natural do raciocínio.

Como trabalhar EF09CO03 em sala?

Estas são as ideias que mais funcionaram comigo, sem exigir equipamento caro:

  • Semáforo de papel: desenhe um cruzamento no quadro e peça que os alunos listem os estados (verde, amarelo, vermelho, travessia) e os eventos (tempo esgotado, botão apertado). Depois, eles desenham as setas de transição.
  • Teatro do autômato: um aluno faz o papel de sistema, outro lança eventos (“botão apertado”, “tempo de 20 segundos”). A turma precisa dizer em qual estado o sistema está a cada evento.
  • Sensor de sala: discuta com a turma como a porta da sala ou o interruptor da luz poderiam ser descritos como autômatos, com estados e eventos bem definidos.
  • Pseudocódigo de eventos: depois de entender o diagrama, peça que escrevam trechos do tipo “quando o botão for apertado, faça...”, conectando a lógica ao código.

Como avaliar essa habilidade?

Uma boa questão sobre EF09CO03 precisa cobrar que o aluno raciocine sobre o comportamento, e não apenas memorize um vocabulário. Ela deve apresentar uma situação realista, pedir que o aluno identifique estados, eventos ou transições, e oferecer alternativas em que o erro seja plausível. Um erro comum que observo é a avaliação que pede apenas a definição de “autômato”, sem contexto. Outro erro é criar alternativas absurdas, que o aluno descarta sem pensar. O ideal é que cada distrator represente um equívoco real, como trocar a ordem das transições, esquecer um estado ou confundir o evento que dispara a mudança.

Questões prontas de EF09CO03 (com gabarito comentado)

A seguir estão seis questões alinhadas à habilidade. Leia o enunciado, tente resolver e só depois confira o gabarito e as explicações de cada alternativa.

Questão 1: jardim sensorial e os tratadores de eventos

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.

  • ✅ A) on("banco_ocupado",()=>{ estado = min(estado+1,3); updateSound(estado); }); on("banco_desocupado",()=>{ estado = max(estado-1,0); updateSound(estado); }); — Usa min e max para manter limites entre 0 e 3 e chama updateSound após cada evento, conforme o autômato descrito.
  • ❌ B) on("banco_ocupado",()=>{ if(estado<3) estado++; }); on("banco_desocupado",()=>{ if(estado>0) estado--; updateSound(estado); }); — Falta a chamada a updateSound no tratador de banco_ocupado, então o modo sonoro não é atualizado naquele evento.
  • ❌ C) on("banco_ocupado",()=>{ estado++; updateSound(estado); }); on("banco_desocupado",()=>{ estado--; updateSound(estado); }); — Não há verificação de limites, podendo gerar estado<0 ou >3 e violar o autômato finito.
  • ❌ D) on("banco_ocupado",()=>{ estado = min(estado+1,3); updateSound(estado); }); on("banco_desocupado",()=>{ estado = max(estado-1,1); updateSound(estado); }); — Usa max(estado-1,1), impedindo o retorno ao estado 0 e impedindo o modo Silencioso.
  • ❌ E) on("banco_ocupado",()=>{ estado = min(estado+1,3); updateSound(estado); }); on("banco_desocupado",()=>{ if(estado>1) estado--; updateSound(estado); }); — Só decrementa se estado>1, logo não consegue retornar ao contador zero e acionar o modo Silencioso.

Questão 2: escopo de variáveis em handlers

Em programação por eventos, o que determina o escopo de uma variável declarada dentro de um manipulador de evento (handler)?

  • ✅ A) O escopo é local ao handler; a variável existe apenas durante a execução do evento. — Variáveis declaradas dentro de um handler são locais: alocadas no contexto da chamada do evento e não acessíveis fora dele, evitando colisões com variáveis globais.
  • ❌ B) O escopo é fixo; a variável só existe durante a execução de todo o programa. — Variáveis em handlers são locais a eventos, não existem ao longo de toda a execução.
  • ❌ C) O escopo é baseado em funções; a variável vive apenas na primeira função que a chama. — O escopo é restrito ao handler, independentemente de outras funções que possam chamá-lo.
  • ❌ D) O escopo é global; a variável pode ser acessada de qualquer parte do código. — Variáveis em handlers são locais, não globais; elas não podem ser acessadas fora do seu contexto.
  • ❌ E) O escopo é por classe; a variável se torna membro da classe que contém o handler. — Variáveis em handlers não se tornam membros da classe, possuem escopo local e efêmero.

Questão 3: viveiro marinho e o autômato de níveis

Em um viveiro marinho, cientistas testam um sistema de automação capaz de monitorar e regular continuamente o nível de água em tanques destinados ao cultivo de corais. O sistema detecta três condições de volume: “nível baixo”, quando a altura fica abaixo de 20 cm; “nível adequado”, entre 20 cm e 30 cm; e “nível alto”, acima de 30 cm. Detectado nível baixo, a bomba de reposição entra em ação até restabelecer o nível adequado. Se o nível alcançar o ponto alto, a mesma bomba interrompe o fluxo e aguarda a descida até o nível adequado. Adicionalmente, se o nível permanecer adequado sem variações por 10 minutos, o sistema entra em estado de espera e retoma as verificações quando identifica qualquer nova flutuação de volume.

Analise o texto-base e identifique a descrição abstrata do autômato que descreve corretamente os estados e transições do sistema de controle de nível de água.

  • ✅ A) Estados NB=Baixo, NA=Adequado, NL=Alto, ME=Espera; transicoes: NB->NA se baixo; NL->NA se alto; NA->ME se 10min; ME->NA se variacao — Representa fielmente o comportamento descrito: reposição em NB e NL leva a NA, transição para ME após 10min e retorno a NA em variações.
  • ❌ B) Estados NB=Baixo, NA=Adequado, NL=Alto, ME=Espera; transicoes: NB->ME se baixo; NL->ME se alto; ME->NA se 10min; NA->NB se variacao — Define transições diretas NB->ME e NL->ME, não previstas: o sistema deve passar por NA antes de entrar em Espera.
  • ❌ C) Estados NB=Baixo, NA=Adequado, NL=Alto; transicoes: NB->NA se baixo; NL->NA se alto; NA->NL se alto; NA->NB se baixo — Omissão do estado ME e suas transições ignora o período de espera após nível adequado, condição essencial descrita no texto.
  • ❌ D) Estados NB=Baixo, NA=Adequado, NL=Alto, ME=Espera; transicoes: NB->NA se baixo; NL->NA se alto; ME->NA se 10min; NA->ME se variacao — Inverte as transições de espera e tempo: coloca ME->NA após 10min, ao contrário do texto que diz NA->ME após 10min.
  • ❌ E) Estados NB=Baixo, NA=Adequado, NL=Alto, ME=Espera; transicoes: NB->NA se baixo; NA->NL se alto; NL->NA se alto; NA->ME se 10min — Inclui transição NA->NL se alto, mas no texto a bomba em NA não reabastece; o nível alto só desliga a bomba e volta a NA.

Questão 4: semáforo com botão de travessia

No cruzamento próximo a uma unidade de saúde, um semáforo possui botão para solicitação de travessia e sinal sonoro para pessoas com deficiência visual. O sistema começa com veículos liberados. Ao pressionar o botão, a pessoa não altera imediatamente as luzes: apenas registra um pedido. Depois de os veículos permanecerem liberados por, no mínimo, 40 segundos, o controlador inicia uma luz amarela de 3 segundos. Em seguida, interrompe os veículos, libera a travessia com aviso sonoro por 20 segundos e retorna à situação inicial, apagando o pedido registrado. O controlador reage somente ao pressionamento do botão e ao término dos tempos programados.

Analise o funcionamento descrito e identifique a regra de transição que permite representar o controlador como um autômato orientado a eventos.

  • ❌ A) Associar o botão à passagem imediata para travessia, sem considerar o estado dos veículos ou o temporizador. — Erro de antecipação de evento. O pedido não libera a travessia imediatamente, pois há tempo mínimo e etapa amarela.
  • ❌ B) Associar a cor exibida pelo semáforo à decisão autônoma sobre a próxima mudança, sem receber eventos. — Erro de atribuição de controle. A cor é resultado de um estado; as mudanças ocorrem pelos eventos de botão e temporizador.
  • ❌ C) Associar cada segundo transcorrido à criação de um novo estado, independentemente de haver pedido de travessia. — Erro de granularidade excessiva. Estados representam situações relevantes; os segundos são usados pelo temporizador, não como estados.
  • ❌ D) Associar o fim de qualquer temporizador ao retorno inicial, apagando o pedido antes de liberar a travessia. — Erro de ordem de transições. O fim do primeiro tempo deve conduzir à sequência amarela e à travessia, não ao reinício.
  • ✅ E) Associar o botão à passagem de espera para pedido pendente e o temporizador à sequência de travessia e retorno. — Correta. O botão produz um evento que muda o estado do pedido, e os tempos concluídos acionam as transições seguintes do autômato.

Questão 5: por que o botão apertado várias vezes altera o sinal

Por que um botão apertado várias vezes pode alterar o funcionamento de um sinal de travessia? Em uma avenida movimentada, o controlador sonoro possui os estados Espera, Alerta e Travessia. Ao receber o evento de pressionar o botão no estado Espera, passa para Alerta, emitindo sons intermitentes por 5 segundos. Ao fim desse tempo, inicia Travessia: os veículos recebem sinal vermelho e o som contínuo dura 20 segundos. Encerrado esse período, o sistema retorna a Espera.

Moradores observaram que, quando o botão era pressionado durante Travessia, o temporizador de 20 segundos recomeçava. Isso prolongava a interrupção dos veículos, embora os novos pedidos de travessia também precisassem ser considerados após o ciclo em andamento. Os técnicos decidiram alterar o comportamento do controlador sem encurtar nem reiniciar a travessia já iniciada.

Analise o comportamento descrito e identifique a regra de transição que atende aos novos pedidos sem alterar a duração da travessia em curso.

  • ❌ A) Definir que, em Travessia, o botão conduza diretamente ao estado Alerta e interrompa o som contínuo. — Erro de confundir estados: passar a Alerta durante Travessia modifica o sinal destinado aos pedestres antes de o ciclo terminar.
  • ❌ B) Definir que, em Travessia, o botão conduza imediatamente ao estado Espera e descarte o temporizador. — Erro de transição prematura: encerrar Travessia antes do temporizador reduz o tempo previsto para quem já está atravessando.
  • ❌ C) Definir que, em Travessia, o botão seja ignorado e o término conduza sempre ao estado Espera. — Erro de perda de evento: essa regra evita o reinício, mas descarta os novos pedidos que deveriam ser atendidos depois.
  • ❌ D) Definir que, em Travessia, o botão reinicie o temporizador e mantenha o estado Travessia. — Erro de ignorar a condição do problema: reiniciar o temporizador repete exatamente o comportamento que prolonga a travessia.
  • ✅ E) Definir que, em Travessia, o botão leve ao estado Travessia com pedido pendente e o término conduza a Alerta. — A regra registra o evento em outro estado e preserva os 20 segundos. Ao terminar a travessia atual, o autômato inicia um novo aviso.

Questão 6: trava eletrônica de bicicletas compartilhadas

Cerca de 180 bicicletas de um sistema comunitário de empréstimo passaram a usar uma trava eletrônica com LED. Um voluntário programou o controle como um sistema baseado em eventos, com três estados: Aguardando (trava fechada), Destravada (trava aberta esperando a retirada) e EmUso (bicicleta já retirada). Os eventos captados são: cartao_aprovado, sensor_retirada (a roda sai do suporte), botao_cancelar e tempo_15s (15 s após destravar).

Nos testes, quando o cartão é aprovado, a trava abre e o LED fica verde. Se a bicicleta é retirada, o sistema registra o empréstimo e passa para EmUso. Se ninguém retira a bicicleta, a trava fecha sozinha após 15 s. Porém, depois desse fechamento automático, novos cartões aprovados são ignorados até reiniciar o equipamento, como se ele ainda estivesse “no meio” de uma retirada.

Com base no texto, identifique a transição que deve ser incluída no autômato para que o controle volte a aceitar novos cartões após o fechamento automático da trava.

  • ✅ A) Adicionar transição de Destravada para Aguardando no evento tempo_15s. — Se o tempo expira sem retirada, o sistema deve encerrar a tentativa e voltar ao estado inicial, permitindo novo cartao_aprovado.
  • ❌ B) Adicionar transição de Destravada para Aguardando no evento cartao_aprovado. — Erro de evento: cartao_aprovado deveria iniciar a destrava; usar esse evento para voltar cancela a retirada ao invés de finalizá-la.
  • ❌ C) Adicionar transição de Destravada para EmUso no evento tempo_15s. — Erro de inferência: tempo_15s indica ausência de retirada, não confirma empréstimo; levaria a registros indevidos.
  • ❌ D) Adicionar transição de EmUso para Aguardando no evento tempo_15s. — Erro de escopo do evento: o temporizador descrito ocorre na tentativa de retirada, não durante o uso da bicicleta.
  • ❌ E) Adicionar transição de Aguardando para Destravada no evento tempo_15s. — Erro de estado: o temporizador só faz sentido após destravar; em Aguardando não há contagem iniciada.

Próximos passos

Depois de trabalhar essas questões, vale retomar o diagrama de estados com a turma e pedir que cada aluno proponha um sistema do cotidiano escolar descrito como autômato. Se quiser consultar todas as questões alinhadas a este código, acesse a consulta completa do código EF09CO03. Para montar suas próprias provas em minutos, use o gerador de provas do GeraProva, e se ainda não tem conta, faça o cadastro grátis.

As questões são de apoio ao seu planejamento e não substituem a sua avaliação pedagógica. Ajuste o nível e o contexto à realidade da sua turma.

Encontrou um erro neste conteúdo? Veja nossa política editorial e avise a gente.

Monte uma prova com questões como estas

O GeraProva busca questões com gabarito comentado e BNCC no acervo e monta a prova pronta para imprimir.

Criar minha prova

Habilidades BNCC deste artigo

Questões deste artigo com resolução completa

  1. Dados ilustrativos: em um jardim sensorial, três bancos equipados com sensores de pressão registram quando…
  2. Em programação por eventos, o que determina o escopo de uma variável declarada dentro de um manipulador de…
  3. Em um viveiro marinho, cientistas testam um sistema de automação capaz de monitorar e regular continuamente o…
  4. No cruzamento próximo a uma unidade de saúde, um semáforo possui botão para solicitação de travessia e sinal…
  5. Por que um botão apertado várias vezes pode alterar o funcionamento de um sinal de travessia? Em uma avenida…
  6. Cerca de 180 bicicletas de um sistema comunitário de empréstimo passaram a usar uma trava eletrônica com LED…

Fontes

Artigos relacionados

0 comentários

Nome
E-mail (não é publicado)
Comentário
Questões resolvidas Resolução passo a passo, gabarito e o erro de cada alternativa314.904 questões
Ver todas as questões →
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.