Recebe-se uma matriz M (m×n) de registros de alunos (nome, nota). Descreva um algoritmo em pseudocódigo para…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Construir soluções de problemas usando a técnica de decomposição e automatizar tais soluções usando uma linguagem de programação.
Fonte: Base Nacional Comum Curricular (MEC).Questão
Recebe-se uma matriz M (m×n) de registros de alunos (nome, nota). Descreva um algoritmo em pseudocódigo para detectar e remover linhas com registros inválidos (nome vazio ou nota <0 ou >10) e discuta por que escolher lista encadeada ou matriz conforme a frequência de remoções. Indique complexidade do processo.
✍️ Questão dissertativa: veja abaixo a resposta esperada e a explicação.
Resposta esperada
Percorrer M linha a linha: para cada registro verificar if nome = "" ou nota <0 ou nota>10; marcar índice inválido. Se número de remoções pequeno, remover diretamente da matriz (shift de linhas) com custo O(m·n) no pior caso; pseudocódigo: para i de 1 a m se inválido então removerLinha(i). Se remoções frequentes, converter M em lista ligada de registros e ao detectar inválido executar remoção O(1) ajustando ponteiros, depois opcionalmente reconstruir matriz. Complexidade: verificação O(m·n); remoções em matriz podem exigir O(m·n) por remoção por deslocamento; em lista, remoções O(1) cada, total O(m·n) pela verificação mais O(k) pelas remoções, onde k é número de registros removidos.
Explicação
A solução proposta aborda a verificação de cada registro de forma sistemática, garantindo que todas as condições de validade sejam checadas. A escolha entre matriz e lista encadeada é fundamentada na frequência de remoções, onde a lista encadeada oferece eficiência em remoções frequentes, enquanto a matriz pode ser mais prática para um número reduzido de remoções. A análise de complexidade é clara, diferenciando os custos de operações em cada estrutura de dados, o que é essencial para entender a eficiência do algoritmo.
Raio-X da questão
algoritmo de validação
avaliacao
estrutura de dados · pseudocódigo
Revisar conceitos de estruturas de dados e complexidade de algoritmos.
O aluno pode confundir a lógica de remoção de elementos em uma lista encadeada com a de uma matriz, levando a uma implementação incorreta do algoritmo.
ciencia_tecnologia
pensamento_critico
abstrato
Questões parecidas com resolução
- Projete um algoritmo em pseudocódigo que detecte e remova registros duplicados em uma matriz de dados escolares (cada…
- 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…
- Descreva, em pseudocódigo, um algoritmo que receba uma matriz de registros 'registro' (linhas = alunos, colunas =…
- Projete em pseudocódigo um algoritmo que recebe uma matriz de registros 'alunos' (linhas = turmas, colunas = posições)…
- Elabore em pseudocódigo um algoritmo que, dado um array de registros 'alunos' com campos (nome, notas[4]…
- Projete um algoritmo em pseudocódigo que receba uma lista de registros de alunos (campos: nome, idade, nota) como dado…
Todas as questões de Estratégias de solução de problemas - Decomposiçã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
