Elabore um algoritmo em pseudocódigo que receba uma matriz de registros 'sala' (linhas = salas, colunas =…
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
Elabore um algoritmo em pseudocódigo que receba uma matriz de registros 'sala' (linhas = salas, colunas = períodos) em que cada registro tem: idSala (inteiro), alunos (vetor ordenado por chegada) e capacidade (inteiro). O algoritmo deve redistribuir alunos quando o número de alunos em um período exceder a capacidade, buscando vagas em outras salas no mesmo período, mantendo a ordem de chegada e sem perder registros.
✍️ Questão dissertativa: veja abaixo a resposta esperada e a explicação.
Resposta esperada
Algoritmo Redistribuir(salas, linhas, cols) Para c de 0 até cols-1: criar filaExtras vazia // coletar excedentes mantendo ordem de chegada Para r de 0 até linhas-1: enquanto tamanho(salas[r][c].alunos) > salas[r][c].capacidade: idx := salas[r][c].capacidade // posição (0-based) do primeiro excedente aluno := removerEm(salas[r][c].alunos, idx) enfileirar(filaExtras, aluno) // preencher vagas com a fila de excedentes Para r de 0 até linhas-1: enquanto tamanho(salas[r][c].alunos) < salas[r][c].capacidade e not vazia(filaExtras): aluno := desenfileirar(filaExtras) anexar(salas[r][c].alunos, aluno) Fim Para Observações: removerEm(..., capacidade) retira o primeiro aluno que excede a vaga, preservando a ordem de chegada dos excedentes; a fila temporária mantém a sequência ao redistribuir, evitando perda de dados.
Explicação
O algoritmo implementa uma lógica eficiente para redistribuir alunos entre salas, garantindo que a ordem de chegada seja preservada ao utilizar uma fila temporária. A coleta de excedentes e a redistribuição são feitas em duas etapas, permitindo que as salas sejam preenchidas até sua capacidade máxima sem perder registros. Essa abordagem assegura que todos os alunos sejam considerados e alocados adequadamente, respeitando as limitações de cada sala.
Raio-X da questão
algoritmo de redistribuição
avaliacao
estrutura de dados · algoritmos de busca
Revisar conceitos de matrizes e algoritmos de busca.
O aluno pode confundir a lógica de redistribuição, não mantendo a ordem de chegada dos alunos ao mover para outras salas.
ciencia_tecnologia
pensamento_critico
abstrato
Questões parecidas com resolução
- Os aplicativos de mapa, como o GPS, ajudam o carro de entregas a chegar à casa do cliente. O aplicativo compara dois…
- Lia organiza carrinhos, bonecas e blocos separando cada tipo, colocando-os em caixas e guardando as caixas na…
- Em um jogo, uma personagem controlada por IA precisa chegar a um tesouro sem bater nas paredes. Qual instrução ajuda a…
- Desenhe um algoritmo em pseudocódigo que, dada uma matriz M[N][M] com 0 (livre) e 1 (bloqueado), identifique todas as…
- Em um programa, Substring(codigo, início, quantidade) pega letras do texto a partir da posição indicada, e…
- Projete um algoritmo em pseudocódigo que, dadas as variáveis temperatura (inteiro ºC), ocupacao (inteiro, número 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
