Logica_de_Programacao_3_Edicao_Livro
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
128 J Lógíca de programação
• Se algu1na parte ainda perma11ecer complexa, decon1pô-la tan1bén1.
• Analisar o resultado para garantir entendimento e coerê11cia.
Fazendo urna analogia, entender o funcionamento corpo hurnano não é nada trivial. Isso
J)orque nosso corpo é uma rnáquina co 11plexa. Porém, podemos dividir esse proble1na ern
parr.es menores: sisr.ema digestivo, respiratório, nervoso, cardiovascular etc. e assim, tentando
compreender cada parte separadame11te, poden1os compree11der melhor o todo. Caso
essas partes ainda seja1n muito con1plexas, pode1nos co11tinuar dividindo e1n partes ainda
1nenores, por exemplo, o siste1na respiratório pocle ser clividido em na1iz, faringe, laringe,
traquéia e pulrnões; os pulrnões, por sua vez, ern brônquios, bronquíolos e alvéolos, e assirn
por diante.
Esse processo de decon1posição contínua tan1bém é conhecido co1no refina1nentos sucessivos,
porque se parte de um problema complexo e abrangente, que é sucessivamente
dividido até resultar e1n problemas n1ais simples e específicos.
NOTA-------------------------~
À técnica de Refinamentos Sucessivos também se dá o nome de Top-Down (de cima para baixo), uma
vez que se parte de conceitos mais abrangentes (abstratos) até atingir o nível de detalhamento desejado.
Também existe uma técnica exatamente inversa, conhecida por Bottom-Up (de baixo para cima).
Consiste em partir dos conceitos mais detalhados e ir agrupando-os sucessivamente em níveis mais abrangentes
(abstratos) até atingir o nível de abstração desejado.
O processo de compreensão é freqüentemente mais natural quando se usa a técnica Top-Down. Por
exemplo, é mais fácil compreender um automóvel partindo-se do todo até o último parafuso do que do
parafuso até o todo. Certamente existem exceções. Por exemplo, é mais fácil entender operações aritméticas
mais abstratas, como potenciação e radiciação, se antes soubermos somar e subtrair.
MÓDULOS
Depois de decornpor um problema complexo ern subJ>roblemas, pode111os construir urn
subalgoritrno ou módulo para cada subproblema. Passarernos a descrever de que forrna isso
poderá ser feito, 1nas antes apresentaremos o problen1a que será utilizado con10 exemplo no
decorrer do capítulo.
Construir un1 algoritmo que calcule os atrasos e as horas trabalhadas de um dado funcionário
a partir do cartão de ponto ilusu·ado na Figura 6.1.