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
- Projete um pseudocódigo para um autômato orientado a eventos que conte ocorrências do evento 'sensor' em janelas de 60…
- Projete um autômato baseado em eventos que monitore leituras de um sensor (evento 'leitura' com valor numérico) e emita…
- Considere um fluxo de eventos com carimbo de tempo e tipo {ALARME, FALHA, RESTAURO}. Projete um autômato (diagrama de…
- Projete um autômato baseado em eventos e escreva pseudocódigo para um programa que processe uma sequência de eventos…
- Projete em pseudocódigo um autômato orientado a eventos que receba eventos do tipo leitura(valor) correspondentes a…
- Projete um autômato orientado a eventos que monitore leituras de sensores H (humidade), T (temperatura) e P (pressão)…
🔎 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
