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
- Na cantina da escola, Ana informa o lanche desejado, a quantidade e se vai pagar em dinheiro ou cartão. A atendente…
- Em um jogo criado pela turma, a pontuação de cada equipe é calculada multiplicando a quantidade de desafios concluídos…
- Em uma exposição, um painel registrou as cores dos crachás lidos na entrada. Lista A: azul, verde, azul, amarelo. Lista…
- Em uma cozinha, duas receitas foram preparadas em horários diferentes. Receita 1: uma torta de legumes começou a assar…
- Por que uma cozinha solidária pode ter alimentos guardados e, ainda assim, não conseguir montar todas as cestas…
- Moradores acompanham, pelo celular, um sistema de irrigação instalado em canteiros de uma praça. A cada manhã, dois…
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
