— Hoje a lista de entregas mudou de novo — reclamou Davi, que ajuda a associação do bairro a distribuir kits…
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
— Hoje a lista de entregas mudou de novo — reclamou Davi, que ajuda a associação do bairro a distribuir kits de higiene. No celular dele, um programa mostra a próxima parada e registra quando o kit foi entregue. No primeiro dia, eram 4 endereços; na semana seguinte, passaram a ser 9, e a ordem também mudou. Davi tinha escrito o algoritmo repetindo o mesmo conjunto de comandos para cada endereço, apenas trocando o nome da rua. Uma colega disse que ele podia decompor a tarefa “fazer uma entrega” em uma rotina com um parâmetro (o endereço) e, depois, automatizar o percurso usando uma lista de endereços do dia (PARADAS) e um comando de repetição que percorre todos os itens da lista. Davi quer que o mesmo programa funcione em qualquer dia, mesmo quando PARADAS tiver mais ou menos endereços. Analise a situação e identifique a alteração no algoritmo que permite generalizar a solução para qualquer quantidade de endereços, evitando reescrever comandos a cada nova lista de PARADAS.
- A) Criar uma única mensagem com todos os enderecos juntos e registrar apenas uma vez ao final do dia.
- B) Criar uma rotina entregar(endereco) e repetir essa rotina para cada endereco da lista PARADAS.
- C) Criar um laço REPITA 4 VEZES e trocar manualmente o nome da rua dentro do laço.
- D) Criar vários testes SE, um para cada rua possível, escolhendo qual comando executar em cada caso.
- E) Criar uma sequência maior copiando os mesmos comandos toda vez que surgir um novo endereco.
✅ Resposta correta: alternativa B
Resolução passo a passo
- O problema pede a alteração no algoritmo que permite generalizar a solução para qualquer quantidade de endereços, sem reescrever comandos a cada nova lista.
- A ideia central é abstração por procedimento com parâmetro. Em vez de repetir o mesmo conjunto de comandos trocando apenas o nome da rua, define-se uma rotina entregar(endereco), que contém os comandos de uma entrega, recebendo o endereço como parâmetro.
- Em seguida, um comando de repetição percorre a lista PARADAS e chama entregar(endereco) para cada item. Assim, o número de endereços pode ser 4, 9 ou qualquer outro, pois o programa não depende de quantidade fixa: basta trocar o conteúdo da lista.
- Por que as outras estão erradas: A) não executa entregas individuais e não resolve a generalização do percurso; C) fixa a repetição em 4 e exige troca manual, o que contraria a generalização; D) cria uma escolha para cada rua, o que cresce com o número de ruas e não é generalizável; E) é exatamente o problema original, pois copia comandos a cada novo endereço.
- Portanto, a alteração correta é a alternativa B.
💡 Dica: Identifique como usar rotina e laço para generalizar o algoritmo.
Alternativa por alternativa
O aluno acredita que agrupar os dados em uma única mensagem resolve a repetição de comandos, confundindo registro de informação com automatização da ação de entrega.
Decompõe “entrega” em uma rotina com parâmetro e automatiza com laço sobre a lista, funcionando para qualquer tamanho de PARADAS.
O aluno vê o laço de repetição como solução, mas fixa o número de repetições em 4 e ainda troca o nome da rua manualmente, o que não generaliza para outras quantidades de endereços.
Por que engana: Confundir repetição fixa com laço que percorre lista, ou não usar rotina para evitar repetição de código.
O aluno pensa que é preciso prever cada rua com um teste SE próprio, sem perceber que um parâmetro dispensa a lista de casos possíveis.
O aluno interpreta que basta continuar copiando os comandos para cada novo endereço, justamente o padrão que Davi quer eliminar.
Raio-X da questão
rotina e laço de repetição
diagnostico
conceito de rotina em programação · uso de listas em algoritmos
Estude como criar rotinas com parâmetros e usar laços para percorrer listas.
Confundir repetição fixa com laço que percorre lista, ou não usar rotina para evitar repetição de código.
pensamento_critico
cotidiano
Questões parecidas com resolução
- No fim da tarde, a cozinha solidária do bairro recebe pedidos por mensagem e imprime um bilhete para cada entrega. O…
- Pesquisadores acompanham a qualidade da água em estações de um rio e precisam automatizar a leitura dos sensores. No…
- Descreva como você poderia criar um algoritmo que resolve um problema de entrega de encomendas em uma cidade…
- Na porta de um centro comunitário, voluntários recebem pedidos de doação e querem reduzir erros na hora de separar e…
- — O alerta saiu de Arumã, mas o enlace entre Caju e Ema parou de funcionar — avisou a operadora da central fluvial…
- — A rua da ponte precisa aparecer antes das demais no mapa de vistoria — observou a agente da Defesa Civil após uma…
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
