Projete um algoritmo em pseudocódigo que converta uma matriz 'horarios' de dimensão D×H (dias × horários) em…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Elaborar algoritmos que envolvam instruções sequenciais, de repetição e de seleção usando uma linguagem de programação.
Fonte: Base Nacional Comum Curricular (MEC).Questão
Projete um algoritmo em pseudocódigo que converta uma matriz 'horarios' de dimensão D×H (dias × horários) em uma lista de registros [dia, hora, ocupado], preservando a ordem linha-por-linha e incluindo apenas células marcadas como true (ocupado). Explique o pseudocódigo e sua complexidade.
✍️ Questão dissertativa: veja abaixo a resposta esperada e a explicação.
Resposta esperada
Entrada: matriz horarios[D][H] (booleano). Saída: lista registros. Algoritmo: lista <- [] para dia de 0 até D-1 faça para hora de 0 até H-1 faça se horarios[dia][hora] == true então registro <- {dia: dia, hora: hora, ocupado: true} append(lista, registro) retornar lista Observações: o algoritmo percorre a matriz em ordem linha-por-linha (dia crescente, horas em sequência), preservando a ordem original. Complexidade: O(D×H) em tempo e O(k) em espaço adicional, onde k é o número de células true (no pior caso k = D×H).
Explicação
O algoritmo percorre cada elemento da matriz, verificando se é verdadeiro, e registra apenas os dias e horários ocupados, garantindo que a ordem original seja mantida. A complexidade de tempo O(D×H) é justificada pelo fato de que cada célula da matriz é acessada uma vez, enquanto a complexidade de espaço O(k) se refere ao armazenamento dos registros apenas para as células ocupadas. Essa abordagem é eficiente e direta, atendendo aos requisitos da questão.
Raio-X da questão
algoritmo em pseudocódigo
avaliacao
matrizes e arrays · lógica de programação
Revisar conceitos de matrizes e estruturas de dados.
O aluno pode confundir a estrutura de repetição necessária para percorrer a matriz, resultando em uma lista incompleta ou incorreta.
ciencia_tecnologia
pensamento_critico
abstrato
Questões parecidas com resolução
- Descreva em pseudocódigo um algoritmo que detecte conflitos de sala em uma matriz 'horarios' onde cada registro é [dia…
- Descreva em pseudocódigo um algoritmo que recebe uma matriz de registros 'agenda' (linhas = dias, colunas = horários)…
- Crie um algoritmo em pseudocódigo que, dada uma matriz em que cada linha é um registro de aula com campos: disciplina…
- Desenvolva um algoritmo em pseudocódigo que, dada uma matriz 'agenda' de registros [dia, hora, descricao], remova…
- Projete um algoritmo em pseudocódigo que, dada uma matriz M[R][C] em que cada célula contém o número de alunos de uma…
- Elabore em pseudocódigo um algoritmo que, dado um vetor de registros 'tarefas' (descricao, duracao_horas, prioridade) e…
🔎 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
