Qual técnica de programação pode ser usada para resolver problemas complexos dividindo-os em subproblemas?
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
Qual técnica de programação pode ser usada para resolver problemas complexos dividindo-os em subproblemas?
- A) Programação Estrutural
- B) Programação Orientada a Objetos
- C) Recursão
- D) Algoritmo Guloso
- E) Programação Funcional
✅ Resposta correta: alternativa C
Resolução passo a passo
- O enunciado pede uma técnica que resolve problemas complexos dividindo-os em subproblemas. Passo 2: Na recursão, a função resolve um problema chamando a si mesma sobre instâncias menores do mesmo problema, até chegar a um caso base que se resolve diretamente. Esse processo de quebrar o problema em partes menores é a essência da técnica, e é por isso que a alternativa C é a mais adequada. Passo 3: A alternativa A (Programação Estrutural) também envolve decomposição em módulos, mas o enunciado fala em técnica de divisão em subproblemas do mesmo tipo, o que descreve melhor a recursão; há sobreposição conceitual, e essa é a principal dúvida da questão. Passo 4: A alternativa B (Programação Orientada a Objetos) organiza o software em torno de objetos e classes, e não se define pela divisão do problema em subproblemas. Passo 5: A alternativa D (Algoritmo Guloso) constrói a solução fazendo, a cada passo, a escolha localmente ótima, sem necessariamente dividir o problema em subproblemas. Passo 6: A alternativa E (Programação Funcional) baseia-se em funções puras e composição de funções, sendo um paradigma de estilo de escrita, não uma técnica de divisão do problema. Passo 7: Conclusão: a resposta C está de acordo com o gabarito oficial, com a ressalva de que a Programação Estrutural também poderia ser aceita em um contexto de modularização.
💡 Dica: Pense em como dividir um problema em partes menores.
Alternativa por alternativa
O aluno associa 'dividir em subproblemas' apenas à modularização e ao refinamento sucessivo (top-down), sem perceber que a questão pede a técnica que resolve o problema pela redução a instâncias menores do mesmo tipo.
O aluno confunde a decomposição de sistemas em classes e objetos, típica da POO, com a decomposição de um problema em subproblemas, que é um conceito algorítmico distinto do paradigma de organização de código.
Por que engana: Confundir recursao com outras tecnicas como programacao orientada a objetos ou algoritmos gulosos, nao reconhecendo a divisao em subproblemas.
Recursão é uma técnica que resolve problemas dividindo-os em subproblemas iguais.
O aluno acredita que dividir o problema em partes é o mesmo que tomar decisões gulosas em cada etapa, ignorando que o algoritmo guloso não se caracteriza pela divisão em subproblemas e sim pela escolha localmente ótima.
O aluno associa a programação funcional à ideia de 'funções que resolvem partes do problema' e conclui que ela é a técnica de decomposição, sem notar que o enunciado descreve um método de resolução e não um estilo de escrita de código.
Raio-X da questão
técnica de programação
avaliacao
conceito de recursao · divisao de problemas em subproblemas
Revisar técnicas de programação como divisão de problemas.
Confundir recursao com outras tecnicas como programacao orientada a objetos ou algoritmos gulosos, nao reconhecendo a divisao em subproblemas.
ciencia_tecnologia
pensamento_critico
abstrato
Questões parecidas com resolução
- Qual a técnica que permite dividir um problema grande em partes menores para facilitar a solução?
- Identifique a técnica de solução utilizada quando um algoritmo é dividido em partes menores que podem ser resolvidas…
- Em um sistema, o problema pode ser dividido em subproblemas menores. Como essa técnica é chamada?
- Identifique a técnica de decomposição em um problema de programação que consiste em dividir um programa complexo em…
- Identifique a técnica de solução utilizada quando um algoritmo é dividido em partes menores e reutilizáveis.
- Identifique a técnica que consiste em dividir um problema em partes menores para facilitar a solução.
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
