GeraProva GeraProva Provas com IA para professores do Brasil
Computação2º anoBNCC EF15CO04Difícil⏱ longo

Projete um algoritmo em pseudocódigo que receba um vetor de registros 'colaboradores' (campos: id, nome…

Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva

Habilidade BNCC EF15CO04

Aplicar a estratégia de decomposição para resolver problemas complexos, dividindo esse problema em partes menores, resolvendo-as e combinando suas soluções.

Fonte: Base Nacional Comum Curricular (MEC).

Questão

Projete um algoritmo em pseudocódigo que receba um vetor de registros 'colaboradores' (campos: id, nome, setor, salario) e um vetor de registros 'promocoes' (campos: id, aumentoPercentual). O algoritmo deve: 1) atualizar o campo salario dos colaboradores correspondentes; 2) contar quantas promoções foram aplicadas por setor; 3) retornar um vetor de registros 'resumo' (campos: setor, totalPromocoes). Descreva a estrutura de dados, a lógica de busca por id e o fluxo de atualização, considerando eficiência e uso de matrizes unidimensionais.

✍️ Questão dissertativa: veja abaixo a resposta esperada e a explicação.

Resposta esperada

Resposta modelo (pseudocódigo e justificativa): Estrutura: vetor colaboradores[0..n-1] de registros {id,nome,setor,salario}; vetor promocoes[0..m-1] de registros {id,aumentoPercentual}; vetor resumoMap (associação setor?total) implementado como vetor de registros {setor,totalPromocoes} ou tabela simples. Pseudocódigo: inicializar resumoMap vazio para cada p em promocoes: idp ? p.id aumento ? p.aumentoPercentual i ? buscarÍndicePorId(colaboradores, idp) // busca linear ou índice auxiliar se i ? -1 então colaboradores[i].salario ? colaboradores[i].salario * (1 + aumento/100) setor ? colaboradores[i].setor resumoMap[setor].totalPromocoes ? resumoMap[setor].totalPromocoes + 1 fim se fim para construir vetor resumo a partir de resumoMap retornar resumo Busca e eficiência: se m e n forem pequenos, busca linear (percorrer colaboradores) é suficiente (O(m·n)). Para maior eficiência, construir um índice auxiliar (por exemplo, vetor de pares id?índice ou tabela de dispersão) antes do loop de promoções, reduzindo a busca a O(1) e total para O(n + m). Justificativa: usa apenas vetores unidimensionais de registros, atualiza campos diretamente nos registros do vetor, e agrega contagens por setor em outro vetor de registros, atendendo requisitos de atualização e relatório.

Explicação

A solução proposta utiliza estruturas de dados adequadas para armazenar as informações dos colaboradores e das promoções, permitindo uma atualização eficiente dos salários e a contagem das promoções por setor. A lógica de busca por ID é otimizada através da possibilidade de implementar um índice auxiliar, reduzindo o tempo de busca. Além disso, a construção do vetor resumo a partir de um mapa de associações garante que as informações sejam organizadas e acessíveis de forma clara.

Raio-X da questão

Dificuldade Difícil
Bloom Criar
Leitura alto
Discriminação alto
Peso pedagógico alto
Autonomia do enunciado completo
Cobertura da habilidade multipla
🧪 Simulado🩺 Diagnóstico🧮 Exige cálculo🏠 Cotidiano🔗 Interdisciplinar⭐ Representativa✍️ interpretativa🧩 desafio
🎯 Conceito central

algoritmo em pseudocódigo

📌 Objetivo

avaliacao

🧱 Pré-requisitos

estrutura de dados · algoritmos em pseudocódigo

📚 Reveja

Revisar conceitos de vetores e estruturas de dados em programação.

⚠️ Erro mais comum

O aluno pode confundir a lógica de atualização do salário com a contagem de promoções, não separando corretamente as duas operações no algoritmo.

🌎 Tema transversal

ciencia_tecnologia

🤝 Socioemocional

pensamento_critico

🏫 Contexto

abstrato

Questões parecidas com resolução

Todas as questões de 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

Ocorreu um erro inesperado. Recarregar X

Rejoining the server...

Rejoin failed... trying again in seconds.

Failed to rejoin.
Please retry or reload the page.

The session has been paused by the server.

Failed to resume the session.
Please retry or reload the page.