1 / 14

Algoritmos e Estruturas de Dados I – Refinamentos Sucessivos

Profa. Mercedes Gonzales Márquez. Algoritmos e Estruturas de Dados I – Refinamentos Sucessivos. Refinamento sucessivos. Um algoritmo é considerado completo se os seus comandos forem do entendimento do seu destinatário.

Download Presentation

Algoritmos e Estruturas de Dados I – Refinamentos Sucessivos

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Profa. Mercedes Gonzales Márquez Algoritmos e Estruturas de Dados I – Refinamentos Sucessivos

  2. 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.

  3. Refinamento sucessivos Exemplo 1 (bem simples): O algoritmo para calcular a média aritmética de dois números pode ser desdobrado da seguinte forma: Algoritmo CALCULA_MÉDIA Receba os dois números Calcule a média dos dois números Exiba o resultado

  4. Refinamento sucessivos • Podemos desdobrar o comando “Calcule a média dos dois números” em: • Soma os dois números • Divida o resultado por 2 • Após esse refinamento, o algoritmo pode ser considerado completo, a menos que o destinatário não saiba fazer as operações de adição e divisão, ou não seja capaz de entender diretamente algum comando

  5. Refinamento sucessivos • O algoritmo estando completo, podemos reescrevê-lo, inserindo o refinamento na posição do comando que foi refinado. Assim: • Algoritmo (“visão global”) 1. Receba os dois números 2. Soma os dois números 3. Divida o resultado por 2 4. Exiba o resultado

  6. Refinamento sucessivos • À medida que um algoritmo se torna maior e mais complexo, a sua “visão global” torna-se menos clara e, neste caso, um algoritmo apresentado com os refinamentos sucessivos separados torna-se uma melhor abordagem para quem precisar entendê-lo.

  7. Refinamento sucessivos • Exemplo 2: 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

  8. Refinamento sucessivos • 1. Receba o valor L • Leia (L) 2. Processe os dois primeiros termos Se L>1 T1 ← 1 (*) T2 ← 1 Escreva T1,T2 • * Veremos nas próximas aulas que o símbolo ← será usado na representação de PseudoCódigo para representar atribuição de dados.

  9. Refinamento sucessivos 3. Processe os termos restantes Fib ← T1+T2 Enquanto Fib<L então Escreva Fib T1 ← T2 T2 ← Fib Fib ← T1+T2 Fim enquanto

  10. Refinamento sucessivos Juntando os refinamentos temos a visão global do algoritmo completo. Leia L T1 ← 1 T2 ← 1 Se T1<L então Escreva T1,T2 Fib ← T1+T2 Enquanto Fib<L então Escreva Fib T1 ← T2 T2 ← Fib Fib ← T1+T2 Fim enquanto

  11. Refinamento sucessivos • Exemplo 3: 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

  12. 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

  13. 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

  14. Refinamento sucessivos Juntando os refinamentos temos a visão global do 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

More Related