Descreva em pseudocódigo um algoritmo que detecte conflitos de sala em uma matriz 'horarios' onde cada…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Construir e simular algoritmos, de forma independente ou em colaboração, que resolvam problemas simples e do cotidiano com uso de sequências, seleções condicionais e repetições de instruções.
Fonte: Base Nacional Comum Curricular (MEC).Questão
Descreva em pseudocódigo um algoritmo que detecte conflitos de sala em uma matriz 'horarios' onde cada registro é [dia, inicio, fim, sala]. O algoritmo deve retornar pares de registros que se sobrepõem na mesma sala e no mesmo dia. Explique também a complexidade temporal e como validar entradas (ex.: horários inválidos).
✍️ Questão dissertativa: veja abaixo a resposta esperada e a explicação.
Resposta esperada
Pseudocódigo modelo: resultado = [] salasPorDia = mapa vazio // chave = (dia,sala) -> lista para cada reg em horarios: se reg.inicio >= reg.fim ou formatos inválidos: registrar erro e continuar salasPorDia[(reg.dia, reg.sala)].append(reg) para cada lista L em salasPorDia: ordenar L por inicio para i de 0 até len(L)-2: se L[i].fim > L[i+1].inicio: resultado.append((L[i], L[i+1])) retornar resultado Explicação e complexidade: - Agrupar registros é O(n). Ordenar cada grupo custa S s_i log s_i = O(n log n) no pior caso, então complexidade total O(n log n). Espaço adicional O(n) para agrupar. - Validação: checar formatos de tempo, garantir inicio<fim, limites do dia; entradas inválidas podem ser reportadas e ignoradas ou corrigidas conforme regra do sistema.
Explicação
O algoritmo organiza os registros por dia e sala, permitindo a verificação eficiente de sobreposições. A ordenação dos horários dentro de cada grupo facilita a identificação de conflitos, garantindo que a comparação seja feita apenas entre registros relevantes. A validação das entradas assegura que apenas dados consistentes e úteis sejam processados, evitando erros durante a execução do algoritmo.
Raio-X da questão
conflitos de sala
avaliacao
pseudocódigo · estruturas de dados
Revisar conceitos de algoritmos e complexidade temporal.
O aluno pode confundir a lógica de comparação de horários, não considerando corretamente os casos em que os horários se sobrepõem.
ciencia_tecnologia
pensamento_critico
abstrato
Questões parecidas com resolução
- Crie um algoritmo em pseudocódigo que, dada uma matriz em que cada linha é um registro de aula com campos: disciplina…
- Considere um vetor (matriz unidimensional) chamado 'agenda' em que cada registro possui os campos: dia (string), hora…
- Projete um algoritmo em pseudocódigo que converta uma matriz 'horarios' de dimensão D×H (dias × horários) em uma lista…
- Elabore um algoritmo em pseudocódigo que receba uma matriz de registros 'sala' (linhas = salas, colunas = períodos) em…
- Proponha um algoritmo para alocar salas de aula a turmas considerando horários, capacidade das salas e conflitos de…
- Proponha uma decomposição em subtarefas e um esboço de pseudocódigo para automatizar um algoritmo que agenda horários de…
🔎 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
