Logica_de_Programacao_3_Edicao_Livro
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
MODULARIZANDO
ALGORITMOS
Objetivos
Explicar a técnica de refinamentos sucessivos.
Introduzir o conceito de módulos, den1onstrando
seu efeito prático 11a redução da complexidade.
Orientar sobre o escopo e a utilização de variáveis
de ferina a não gerar conflitos. Au1nentar a generalidade
dos módulos au-avés da passagem de parâmeu·os.
Co1nparar os diferentes contextos de módulos
e suas aplicações.
• Decomposição de problemas
• Construção de módulos ou
subalgoritmos
• Parametrização de módulos
• Tipos de módulos
Um proble1na complexo pode ser sin1plificado quando dividido e1n vá1ios proble1nas.
Para acompanhar essa abordagem, neste capítulo serão apresentados conceitos e técnicas
que perrnit.ern a divisão de urn algoritmo ern rnódulos ou subalgoritxnos.
DECOMPOSIÇÃO
A deco1nposição de um proble1na é fator deter1ninante para a redução da co1nplexidade.
Le1nbremos que Complexidade é sinônimo de Va1iedade, ou seja, a quanticlade de situações
diferentes que um problerna pode apresentar. Assim, quando decompornos um problerna
en1 subproblernas, estamos invariavehnente dividindo tarnbém a cornplexidade e, por conseqüência,
simplificando a resolução. Outra grande vantagem da decornposição é que permite
focalizar a ate11ção en1 um problen1a peque110 de cada vez, o que ao final produzirá tuna
n1elhor com1)ree11são do todo.
,
E conveniente que adotemos, então, urn critério para orientar o processo de decornpos1çao:
• Dividir o problen1a ern suas partes principais.
• Analisar a divisão obtida para garantir coerência.