Por que avisos sobre a subida de um rio chegam tarde a alguns moradores? Para responder a esse problema, a…
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
Por que avisos sobre a subida de um rio chegam tarde a alguns moradores? Para responder a esse problema, a Defesa Civil de um município planejou um programa que funcione a cada hora. O sistema deve receber as medições de três réguas eletrônicas, decidir se o nível exige atenção, alerta ou emergência, enviar a mensagem correspondente aos bairros próximos e guardar cada medição para consulta posterior. A mesma leitura será usada tanto na decisão do aviso quanto em um gráfico histórico. Além disso, as regras que definem os níveis de risco podem ser alteradas sem mudar o envio das mensagens. A equipe pretende organizar o código para corrigir ou atualizar uma parte sem precisar refazer todo o programa. Analise as tarefas previstas no texto e identifique a organização do programa que melhor permite automatizá-las e alterá-las separadamente.
- A) Criar uma rotina principal que leia os dados, decida o risco, envie mensagens e grave o histórico em um único bloco.
- B) Criar uma rotina para cada bairro, repetindo leitura, decisão de risco, envio de aviso e gravação do histórico.
- C) Criar uma rotina que envie todos os avisos antes de receber as medições e decidir o nível de risco.
- D) Criar uma rotina que mostre as medições na tela, deixando a decisão de risco e o registro para ação manual.
- E) Criar rotinas para ler medições, definir o risco, enviar avisos e gravar histórico, chamadas por uma rotina principal.
✅ Resposta correta: alternativa E
Resolução passo a passo
- O enunciado descreve quatro tarefas distintas que o programa precisa realizar a cada hora: receber as medições das réguas, decidir o nível de risco (atenção, alerta ou emergência), enviar as mensagens aos bairros e guardar as medições para consulta e gráfico. Além disso, as regras de risco devem poder mudar sem alterar o envio das mensagens, e a equipe quer corrigir ou atualizar partes separadamente.
- Para isso, a melhor organização é separar cada tarefa em uma rotina própria (leitura, decisão de risco, envio de avisos e gravação do histórico) e fazer uma rotina principal que apenas chama essas partes na ordem certa a cada hora. Assim, trocar a regra de decisão não exige mexer no envio de mensagens, e a mesma leitura pode ser usada tanto pelo aviso quanto pelo gráfico.
- Por que as outras estão erradas:
- A) Coloca tudo em um único bloco, o que dificulta alterar uma parte sem mexer nas demais.
- B) Repete a mesma lógica para cada bairro, duplicando código e tornando a manutenção mais trabalhosa, sem separar as tarefas.
- C) Envia avisos antes de ler as medições e decidir o risco, o que não faz sentido, pois não há informação para o aviso.
- D) Exige ação manual, contrariando a exigência de automação das tarefas.
- Conclusão: a alternativa E é a que melhor atende à automatização e à alteração independente de cada parte, por modularizar as tarefas e centralizar a coordenação em uma rotina principal.
💡 Dica: Identifique os módulos do programa e como eles podem ser organizados para facilitar alterações.
Alternativa por alternativa
O aluno acredita que concentrar todas as tarefas em um único bloco simplifica o programa, sem perceber que isso impede alterar as regras de risco separadamente do envio de mensagens.
O aluno entende que criar uma rotina por bairro organiza o sistema, sem notar que isso repete a mesma lógica várias vezes e não separa as tarefas pedidas.
O aluno inverte a ordem lógica do processo, supondo que o aviso possa ser enviado antes de existir uma medição e uma decisão de risco.
O aluno lê o enunciado como se a Defesa Civil quisesse apenas visualizar dados, ignorando que o texto pede envio automático de mensagens e decisão automática de risco.
A solução decompõe o problema em tarefas relacionadas e automatiza seu encadeamento. A leitura pode alimentar risco e histórico.
Raio-X da questão
organização modular de programas
diagnostico
conceitos básicos de programação · modularização de código
estude modularização e separação de responsabilidades em programação
Confundir organização modular com programação linear, dificultando alterações futuras.
ciencia_tecnologia
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…
- Caminhões recolhem livros em uma campanha fictícia para renovar bibliotecas de bairro. Em cada ponto de coleta…
- — A gente perdeu dois pedidos ontem — reclamou a atendente da padaria, olhando o caderno cheio de recados. Pela manhã…
- A fila na biblioteca do bairro aumentava quando muitas pessoas queriam usar as mesas de estudo. Para organizar as…
- — A rua da ponte precisa aparecer antes das demais no mapa de vistoria — observou a agente da Defesa Civil após uma…
- — Se o nome do remédio ficar sem horário, alguém pode deixar de avisar o cuidador — observou Joana, voluntária de um…
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
