Você deve projetar um algoritmo para atribuir horários de aulas em uma escola. As variáveis principais são…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Criar algoritmos fazendo uso da decomposição e do reúso no processo de solução de forma colaborativa e cooperativa e automatizá-los usando uma linguagem de programação.
Fonte: Base Nacional Comum Curricular (MEC).Questão
Você deve projetar um algoritmo para atribuir horários de aulas em uma escola. As variáveis principais são turma, professor, sala e horário. Use decomposição: divida o problema em subproblemas, descreva cada subproblema e apresente pseudocódigo para as partes principais.
✍️ Questão dissertativa: veja abaixo a resposta esperada e a explicação.
Resposta esperada
Proposta de decomposição e solução modelo: 1) Coleta de dados (entrada): funções para ler listas de turmas, professores, salas e restrições. Pseudocódigo: Função LerDados(): turmas ? lerTabela('turmas') profs ? lerTabela('professores') salas ? lerTabela('salas') restrições ? lerTabela('restricoes') retornar (turmas, profs, salas, restrições) 2) Geração de combinações iniciais (processamento): criar combinações possíveis de (turma, horário, sala, professor). Pseudocódigo: Função GerarCombinações(turmas, profs, salas, horarios): combinações ? listaVazia() para cada turma em turmas: para cada horário em horarios: para cada sala em salas: combinações.adicionar((turma, horário, sala)) retornar combinações 3) Validação de restrições (processamento): verificar conflito de professor/ sala e critérios específicos. Pseudocódigo: Função Validar(combinação, restrições, atribuiçõesAtuais): se professorDa(combinação) tem conflito em atribuiçõesAtuais então retornar falso se salaDa(combinação) não atende requisitos da turma então retornar falso se combinação viola restrições então retornar falso retornar verdadeiro 4) Otimização e seleção (processamento/decisão): escolher combinações válidas que maximizem critérios (distribuição justa, minimizar trocas). Pseudocódigo: Função Otimizar(combinaçõesValidas): ordenar combinaçõesValidas por prioridade (ex.: menor conflito, preferência de professor) retornar combinaçõesValidas 5) Atribuição e saída (integração): aplicar as combinações escolhidas e salvar o horário final. Pseudocódigo: Função AtribuirEGravar(combinaçõesOrdenadas): horáriosFinal ? mapaVazio() para cada combinação em combinaçõesOrdenadas: se Validar(combinação, restrições, horáriosFinal) então horáriosFinal.adicionar(combinação) gravar('horarios.csv', horáriosFinal) retornar horáriosFinal Comentários: cada subproblema pode ser testado isoladamente (LerDados, GerarCombinações, Validar, Otimizar, AtribuirEGravar). Essa decomposição permite alterar a estratégia de otimização sem tocar na leitura de dados ou na validação, facilitando manutenção e testes unitários.
Explicação
A decomposição proposta permite abordar o problema de forma estruturada, facilitando o entendimento e a implementação de cada parte do algoritmo. Cada subproblema é claramente definido e pode ser testado de forma independente, o que melhora a manutenibilidade do código. Além disso, a abordagem modular possibilita a adaptação de diferentes estratégias de otimização sem afetar outras partes do sistema.
Raio-X da questão
algoritmo de atribuição
fixacao
noções de algoritmos · decomposição de problemas
Revisar conceitos de algoritmos e pseudocódigo.
O aluno pode falhar em decompor o problema adequadamente, criando um algoritmo muito complexo ou confuso.
ciencia_tecnologia
criatividade
cotidiano
Questões parecidas com resolução
- Em um jogo de aventura, há cristais em diferentes fases. Sempre que o personagem encosta em um cristal, o jogo deve…
- Na apresentação digital da biblioteca, o mesmo aviso de silêncio aparece na abertura, no intervalo, antes da leitura e…
- — Se cada sala tiver um roteiro próprio, vamos repetir muitos blocos — observou uma estudante durante a montagem de uma…
- — Se mudarmos a mensagem de acerto, teremos de procurar em todas as salas? — perguntou Caio durante a montagem de um…
- Durante a montagem de uma mostra de curtas no centro cultural do bairro, estudantes programam um painel para iniciar…
- Por que um ajuste simples vira dor de cabeça quando um programa cresce? Em uma feira de bairro, um grupo de voluntários…
Todas as questões de Estratégias de solução de problemas - Reúso
🔎 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
