Descreva em pseudocódigo um algoritmo que una duas matrizes de registros: 'alunos' (cada linha: [id, nome]) e…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Comparar diferentes casos particulares (instâncias) de um mesmo problema, identificando as semelhanças e diferenças entre eles, e criar um algoritmo para resolver todos, fazendo uso de variáveis (parâmetros) para permitir o tratamento de todos os casos de forma genérica.
Fonte: Base Nacional Comum Curricular (MEC).Questão
Descreva em pseudocódigo um algoritmo que una duas matrizes de registros: 'alunos' (cada linha: [id, nome]) e 'notas' (cada linha: [id, disciplina, nota]). O algoritmo deve produzir a matriz 'relatorio' onde cada linha é [id, nome, disciplina, nota]. Para alunos sem notas, incluir uma linha com disciplina = null e nota = null. Indique também como tratar notas cujo id não exista em 'alunos'.
✍️ Questão dissertativa: veja abaixo a resposta esperada e a explicação.
Resposta esperada
// Pseudocódigo (solução modelo) relatorio <- [] // matriz resultado nomes <- mapa vazio // mapa id -> nome para cada aluno em alunos: nomes[aluno.id] <- aluno.nome vistos <- conjunto vazio // ids que já apareceram em notas // Processa todas as notas, criando linhas unidas para cada registro nota em notas: se existe nomes[nota.id] então nome <- nomes[nota.id] senão nome <- null // id de nota não encontrado fimse adicionar [nota.id, nome, nota.disciplina, nota.nota] em relatorio adicionar nota.id em vistos fimpara // Garante que alunos sem nota tenham uma linha com disciplina=null e nota=null para cada aluno em alunos: se aluno.id NÃO está em vistos então adicionar [aluno.id, aluno.nome, null, null] em relatorio fimse fimpara // Observações sobre ids ausentes: // - Notas com id não presente em 'alunos' são mantidas com nome = null (ou podem ser descartadas, // dependendo da política do sistema). Esta implementação preserva a informação da nota. // Complexidade: construir o mapa é O(A), processar notas é O(N), completar alunos sem nota é O(A); total O(A+N).
Explicação
O algoritmo utiliza um mapa para associar os IDs dos alunos aos seus nomes, permitindo uma busca eficiente durante o processamento das notas. Ele garante que todos os alunos sejam incluídos no relatório, mesmo aqueles sem notas, ao verificar quais IDs já foram vistos. Além disso, a abordagem mantém as notas de alunos não registrados, atribuindo-lhes um nome nulo, o que preserva a informação sem perder dados relevantes.
Raio-X da questão
algoritmo de união de matrizes
avaliacao
estrutura de dados · pseudocódigo
Revisar conceitos de matrizes e pseudocódigo.
O aluno pode esquecer de incluir a verificação para alunos sem notas, resultando em uma matriz incompleta.
ciencia_tecnologia
criatividade
abstrato
Questões parecidas com resolução
- Proponha um algoritmo em pseudocódigo que integre notas de alunos vindas de três matrizes distintas (linhas = alunos…
- Projete em pseudocódigo um algoritmo que recebe uma matriz de registros 'alunos' (linhas = turmas, colunas = posições)…
- Projete um algoritmo em pseudocódigo que receba uma matriz 'turma' onde cada linha é um registro [id, notas[3], faltas]…
- Descreva, em pseudocódigo, um algoritmo que utilize uma matriz de registros 'turma' (linhas = fileiras, colunas =…
- Descreva, em pseudocódigo, um algoritmo que receba uma matriz de registros 'registro' (linhas = alunos, colunas =…
- Projete um registro para armazenar informações de um aluno (nome, matrícula, notas em 3 disciplinas) e descreva um…
Todas as questões de Estratégias de solução de problemas - Generalizaçã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
