Projete, em pseudocódigo, um autômato baseado em eventos que: (a) registre timestamps de cada evento 'sensor'…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Utilizar conceitos iniciais de uma linguagem de programação na implementação de algoritmos escritos em linguagem corrente e/ou matemática.
Fonte: Base Nacional Comum Curricular (MEC).Questão
Projete, em pseudocódigo, um autômato baseado em eventos que: (a) registre timestamps de cada evento 'sensor'; (b) a cada 60 segundos calcule a frequência de ocorrências em intervalos de 10 segundos e armazene uma tabela com colunas (intervalo_inicio, contagem); (c) após preencher 5 intervalos emita um alarme se a média das cinco contagens for maior que 8. Descreva estruturas de dados e transições de estado.
✍️ Questão dissertativa: veja abaixo a resposta esperada e a explicação.
Resposta esperada
Estruturas: buffer de timestamps (lista), tabela de frequências (lista de pares), ponteiro para intervalo atual, contador por intervalo. Estados: IDLE (aguarda eventos), LOG (registra), AGG (agrega e verifica). Pseudocódigo: - inicializa buffer = [], tabela = [] , intervalo_inicio = agora(), contagem = 0 - estado = IDLE on_event(sensor): buffer.append(sensor.timestamp) if sensor.timestamp < intervalo_inicio + 10s: contagem += 1 else: tabela.append((intervalo_inicio, contagem)) intervalo_inicio += 10s // avançar para próximo intervalo (repetir até cobrir timestamp) // reiniciar contagem e reavaliar timestamp no novo intervalo contagem = 0 // reprocessar timestamp atual se necessário periodicamente a cada 60s (ou quando tabela.size >= 5): while tabela.size >= 5: últimas = tabela[-5:] media = sum(contagems de últimas)/5 if media > 8: emitir("ALARME") remover primeira entrada de tabela (ou deslocar janela conforme política) Explicação das transições: IDLE->LOG ao receber evento; LOG atualiza buffer e contadores por intervalo; quando tabela alcança 5 entradas, transita para AGG para calcular média e possivelmente emitir alarme, então volta a LOG/IDLE. Observações: usar estrutura circular para tabela se memória limitada; timestamps permitem robustez a eventos fora de ordem; atualizar intervalos em loop garante contagens corretas para janelas vazias.
Explicação
A solução proposta utiliza estruturas de dados adequadas para armazenar eventos e contagens, permitindo um registro eficiente e a análise periódica das ocorrências. As transições de estado garantem que o sistema responda de forma dinâmica aos eventos, processando as contagens e emitindo alarmes conforme necessário. A abordagem de janelas de tempo e a verificação da média asseguram que o sistema se mantenha responsivo e preciso na detecção de padrões de eventos.
Raio-X da questão
autômato baseado em eventos
avaliacao
lógica de programação · estruturas de dados
Revisar conceitos de autômatos e estruturas de dados em programação.
O aluno pode falhar ao definir corretamente as transições de estado, confundindo a lógica de contagem com a lógica de temporização.
ciencia_tecnologia
pensamento_critico
cientifico
Questões parecidas com resolução
- Em um dia de trabalho, uma entregadora que usa um aplicativo recebe R$ 12 por entrega. Ela gasta R$ 3 por entrega com…
- Em uma gráfica, a quantidade de tinta adicional é registrada em função de uma medida-padrão q. Para um pedido, a…
- Em uma gráfica, uma máquina imprime livros a uma taxa constante. Se trabalha sozinha, produz 120 páginas por hora…
- — O desconto só incide sobre as oficinas, não sobre a entrada — explicou a atendente a um visitante. Na feira municipal…
- Uma associação de ambulantes realizou uma pesquisa sobre o gasto mensal com internet móvel. Os dados foram organizados…
- Uma secretaria municipal recebeu R$ 390 para inscrever dois agentes em um curso, ambos com o mesmo número de oficinas…
🔎 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
