GeraProva GeraProva Provas com IA para professores do Brasil
Computação7º anoBNCC EF07CO03Difícil⏱ longo

Projete um autômato baseado em eventos para controlar o empréstimo de livros em uma biblioteca escolar…

Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva

Habilidade BNCC EF07CO03

Construir soluções computacionais de problemas de diferentes áreas do conhecimento, de forma individual e colaborativa, selecionando as estruturas de dados e técnicas adequadas, aperfeiçoando e articulando saberes escolares.

Fonte: Base Nacional Comum Curricular (MEC).

Questão

Projete um autômato baseado em eventos para controlar o empréstimo de livros em uma biblioteca escolar. Descreva os estados principais, os eventos que causam transições, as variáveis ou registros necessários e que estruturas de dados (por exemplo, lista ou registro) você usaria para gerenciar reservas e histórico de empréstimos. Explique também como evitar conflitos quando dois usuários solicitam o mesmo livro simultaneamente.

✍️ Questão dissertativa: veja abaixo a resposta esperada e a explicação.

Resposta esperada

Estados principais: Disponível, Reservado, Emprestado, Atrasado, Perdido. Eventos: solicitar_reserva, confirmar_empréstimo, devolver, renovar, notificar_atraso, registrar_perda. Variáveis/registro: registro_livro{id, título, autor, estado, id_usuário_atual, data_empréstimo, prazo}; registro_usuario{id, nome, contatos, histórico_empréstimos}; lista_de_reserva por livro (fila de espera). Estruturas: usar registro para metadados do livro e do usuário; lista (fila) para gerenciar reservas em ordem; log (lista) para histórico de eventos. Transições exemplo: Disponível + solicitar_reserva ? Reservado (atribuir primeiro da fila); Reservado + confirmar_empréstimo ? Emprestado; Emprestado + devolver ? Disponível (ou notificar próximo na lista). Evitar conflitos: aplicar verificação atômica do estado do registro_livro ao processar um evento (lock/controle transacional ou operação compare-and-swap), processar eventos de reserva em fila única por livro e registrar timestamp; em arquiteturas distribuídas, usar mecanismo de consenso ou bloqueio por chave do livro. Observações: implementar validações (prazos, multas) e notificações por evento para manter consistência e informar usuários.

Explicação

A descrição dos estados e eventos é fundamental para entender o fluxo do sistema de empréstimos, garantindo que cada situação do livro seja adequadamente gerenciada. As variáveis e estruturas de dados propostas permitem um controle eficiente das reservas e do histórico, facilitando o acesso às informações necessárias. A abordagem para evitar conflitos assegura que múltiplas solicitações sejam tratadas de forma ordenada e segura, prevenindo inconsistências no sistema.

Raio-X da questão

Dificuldade Difícil
Bloom Criar
Leitura alto
Discriminação alto
Peso pedagógico alto
Autonomia do enunciado completo
Cobertura da habilidade multipla
🧪 Simulado🩺 Diagnóstico🧮 Exige cálculo🏠 Cotidiano🔗 Interdisciplinar⭐ Representativa✍️ situacional🧩 desafio
🎯 Conceito central

autômato de controle de empréstimos

📌 Objetivo

avaliacao

🧱 Pré-requisitos

estruturas de dados · programação orientada a eventos

📚 Reveja

Revisar conceitos de autômatos e estruturas de dados.

⚠️ Erro mais comum

Os alunos podem falhar em identificar corretamente os estados e eventos, resultando em um autômato que não reflete a lógica de controle de empréstimos.

🌎 Tema transversal

ciencia_tecnologia

🤝 Socioemocional

pensamento_critico

🏫 Contexto

cotidiano

Questões parecidas com resolução

Todas as questões de Programação - Projetos com programaçã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

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.