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.
6 Lógíca de programação
• acionar o interruptor;
• subir na escada;
• retirar a lâmpada queimada;
• co 1 ocar a 1 âmpada nova;
• se a lâmpada não acender, então
• retirar a lâmpada queimada;
• colocar outra lâmpada nova;
• se a lâmpada não acender, então
• retirar a lâmpada queimada;
• colocar outra lâmpada nova;
• se a lâmpada não acender, então
• retirar a 1 âmpada queima da;
• colocar outra lâmpada nova;
•
•
•
Até quando?
Notamos que o Algoritmo 1.4 11ão está ter1nh1ado, falta especificar até quando será feito
o teste da lâmpada. As ações cessarão quando conseguir1nos colocar uma lâmpada que acenda;
caso contrátio, ficarernos testando indefinidamente (note que o inter1,.1ptor continua
acionado!). Essa solução está rnais próxilna do objetivo, pois garante que a lâmpada acenda
novamente, ou 1nelhor, que seja trocada com êxito, porém, ternos o problema de não sabei·
o nún1ero exato de testes das lâmpadas.
Observen1os que o teste da lân1pada nova é efetuado por u1n 1nesn10 co1tjunto de ações:
• se a lâmpada não acender, então
• retirar a lâmpada queimada;
• colocar uma lâmpada nova.
Portanto, e1n vez de reescrevermos várias vezes esse co1tjunto de ações, podemos alterar o
fluxo seqüencial de execução de for1na que, após executada a ação co 1 ocar outra 1 âmpada
nova, voltemos a executar o teste se a 1 âmpada não acender, fazendo co1n que essas ações
seja1n executadas o número de vezes necessário se1n termos de reescrevê-las.
Precisamos, então, expressar essa repetição da ação sen1 repetir o texto que representa a
ação, assim con10 determinar u1n li1nite para tal repetição, com o objetivo de garantir uma
condição de parada, ou seja, que seja cessada a atividade de testar a lâ1npada nova quando
ela já estiver acesa. U1na solução seria:
• enquanto a lâmpada não acender, faça
• retirar a lâmpada queimada;
• colocar uma lâmpada nova.
A condição 1 âmpada não acender permaneceu e estabelecemos um fluxo repetitivo que
será finalizado assim que a condição de parada for falsa, ou seja, assirn que a lân1pada acender.
Perceben1os que o número de repetições é indefinido, porém é finito, e que depende