Algoritmos e Estruturas de Dados I – Refinamentos Sucessivos Profa. Mercedes Gonzales Márquez Refinamento sucessivos Um algoritmo é considerado completo se os seus comandos forem do entendimento do seu destinatário. Um comando que não for do entendimento do usuário terá de ser desdobrado em novos comandos, que constituirão um refinamento do comando inicial. Refinamento sucessivos Exemplo 1: O algoritmo para escrever os termos de Fibonacci inferiores a L poderia ser desdobrado em: Algoritmo 1. Receba o valor L 2. Processe os dois primeiros termos 3. Processe os termos restantes Refinamento sucessivos 1. Receba o valor L Leia (L) 2. Processe os dois primeiros termos T1<-1 T2<-1 Se T1<L então Escreva T1,T2 Refinamento sucessivos 3. Processe os termos restantes Fib<-T1+T2 Se Fib<L então Escreva Fib T1<-T2 T2->Fib Fib->T1+T2 Refinamento sucessivos Juntando os refinamentos temos o algoritmo completo Leia L T1<-1 T2<-1 Se T1<L então Escreva T1,T2 Fib<-T1+T2 Se Fib<L então Escreva Fib T1<-T2 T2->Fib Fib->T1+T2 Refinamento sucessivos Exemplo 2: Leia três valores inteiros, determine e imprima o menor deles. Algoritmo 1. Leia os números 2. Determine o menor número 3. Escreva o menor número Refinamento sucessivos 1. Leia os números Leia A,B,C 2. Determine o menor número Se A<B e A<C então Menor<-A Senão Determine o menor dentre B e C Fim se Refinamento sucessivos 3. Determine o menor dentre B e C Se B<C então Menor<-B Senão Menor<-C Fim se 4. Escreva o menor número Escreva Menor Refinamento sucessivos Juntando os refinamentos temos o algoritmo completo Leia A,B,C Se A<B e A<C então Menor<-A Senão Se B<C então Menor<-B Senão Menor<-C Fim se Fim se Escreva Menor