Na porta de um centro comunitário, voluntários recebem pedidos de doação e querem reduzir erros na hora de…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Descrever com precisão a solução de um problema, construindo o programa que implementa a solução descrita.
Fonte: Base Nacional Comum Curricular (MEC).Questão
Na porta de um centro comunitário, voluntários recebem pedidos de doação e querem reduzir erros na hora de separar e entregar as sacolas. Cada pedido chega como uma linha de texto no celular, no formato: BAIRRO;FAMILIA;ITEM. A mesma família pode enviar mais de um item em linhas diferentes, e vários pedidos do mesmo bairro chegam misturados ao longo do dia. Para organizar a entrega, eles combinaram duas saídas do programa: (1) um roteiro por bairro, listando as famílias daquele bairro e os itens pedidos por cada uma; (2) uma lista de separação por bairro, com a contagem de quantas unidades de cada item devem ser colocadas no carro antes de sair. Eles pediram que o programa não “apague” pedidos repetidos e só gere o roteiro depois de ler todas as linhas recebidas. Analise o texto e identifique a decomposição de etapas que permite programar as duas saídas (roteiro e separação) por bairro, mantendo todos os pedidos registrados.
- A) Ler todas as linhas e guardar um único registro por família, substituindo o anterior quando chegar um novo pedido.
- B) Ler todas as linhas e agrupar primeiro por item, juntando depois os bairros para formar o roteiro de entrega.
- C) Ler todas as linhas, agrupar por bairro, reunir itens por família e contar itens por bairro para gerar as duas saídas.
- D) Ler todas as linhas, calcular a contagem total de itens do dia e depois dividir igualmente essa contagem entre os bairros.
- E) Ler uma linha e já imprimir o bairro, a família e o item, repetindo isso até acabarem as mensagens.
✅ Resposta correta: alternativa C
Resolução passo a passo
- Leia o enunciado e identifique o que o programa precisa produzir: duas saídas por bairro, um roteiro (famílias e itens de cada família) e uma lista de separação (contagem de unidades por item), sem apagar pedidos repetidos e só gerar as saídas depois de ler todas as linhas.
- Organize a sequência de etapas necessária. Primeiro, ler todas as linhas recebidas, pois os pedidos chegam misturados e o roteiro só pode ser gerado depois da leitura completa.
- Agrupar os pedidos por bairro, separando o conjunto de cada localidade, já que as duas saídas são feitas bairro a bairro.
- Dentro de cada bairro, reunir os itens por família, mantendo cada pedido registrado (inclusive quando a mesma família aparece em várias linhas). Esse agrupamento alimenta o roteiro.
- Dentro de cada bairro, contar quantas unidades de cada item foram pedidas, o que alimenta a lista de separação.
- Com esses dados, gerar as duas saídas. A alternativa C é a única que contém essa sequência completa e correta.
- Por que as outras estão erradas: A apaga pedidos anteriores da mesma família, contrariando o pedido de não apagar registros. B agrupa por item antes do bairro, o que dificulta montar o roteiro por família e por bairro. D calcula um total geral e divide igualmente, o que não reflete a demanda real de cada bairro. E imprime linha a linha sem ler tudo antes e sem agrupar ou contar, o que impede gerar as saídas pedidas.
💡 Dica: Identifique como agrupar e contar os dados para gerar as saídas solicitadas.
Alternativa por alternativa
Acredita que basta manter um único registro por família, substituindo o anterior, o que elimina pedidos repetidos da mesma família e desrespeita a exigência de não apagar pedidos.
Por que engana: Confundir agrupamento por bairro com agrupamento por item ou substituir registros ao invés de acumular.
Imagina que agrupar primeiro por item e depois juntar os bairros resolve o roteiro, sem perceber que o roteiro precisa das famílias agrupadas dentro de cada bairro.
Decomposição adequada: primeiro coleta, depois organiza por bairro, mantém itens por família e calcula contagens por bairro antes de imprimir.
Entende que a contagem total do dia deve ser dividida igualmente entre os bairros, ignorando que cada bairro tem seus próprios pedidos e que as saídas são feitas por bairro.
Supõe que processar cada linha separadamente e imprimir logo em seguida atende ao pedido, sem perceber que é preciso ler todas as linhas antes e agrupar ou contar os dados.
Raio-X da questão
agrupamento e contagem dados
diagnostico
estrutura de dados básica · agrupamento e contagem
estude estruturas de dados e agrupamento por chave
Confundir agrupamento por bairro com agrupamento por item ou substituir registros ao invés de acumular.
pensamento_critico
cotidiano
Questões parecidas com resolução
- — Moça, minha senha é 14, mas a moça do balcão chamou a 15… — reclamou um cliente na fila do ponto de recarga de água…
- — A gente perdeu dois pedidos ontem — reclamou a atendente da padaria, olhando o caderno cheio de recados. Pela manhã…
- Na organização de uma feira de troca de livros e brinquedos do bairro, quatro estudantes ficaram responsáveis por…
- Por que uma mesma rua pode aparecer com 12 reclamacoes de poste apagado em um dia e, no fim, serem apenas 7 postes…
- — Hoje a lista de entregas mudou de novo — reclamou Davi, que ajuda a associação do bairro a distribuir kits de higiene…
- A fila na biblioteca do bairro aumentava quando muitas pessoas queriam usar as mesas de estudo. Para organizar as…
🔎 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
