fp-algo1

Upload: daniel-nunes

Post on 14-Jan-2016

226 views

Category:

Documents


0 download

DESCRIPTION

FP-Algo1

TRANSCRIPT

  • Fundamentos de Programao

    Noes de Algoritmos

    Tibrius O. BonatesDEMA/UFC

    2015.1

  • Noes de Algoritmos

    Algoritmo sequncia de passos que realiza uma determinada tarefa.

    Uma mesma tarefa pode admitir vrios algoritmos.

    Exemplo de tarefa: trocar um pneu de um carro.

    Exemplo de algoritmo para trocar um pneu de um carro: ...

  • Noes de Algoritmos

    Algoritmo sequncia de passos que realiza uma determinada tarefa.

    Uma mesma tarefa pode admitir vrios algoritmos.

    Exemplo de tarefa: trocar um pneu de um carro.

    Exemplo de algoritmo para trocar um pneu de um carro: ...

  • Noes de Algoritmos

    Algoritmo sequncia de passos que realiza uma determinada tarefa.

    Uma mesma tarefa pode admitir vrios algoritmos.

    Exemplo de tarefa: trocar um pneu de um carro.

    Exemplo de algoritmo para trocar um pneu de um carro: ...

  • Noes de Algoritmos

    Um algoritmo deve especificar passos bem definidos, queno contenham ambiguidade.

    Desta forma, sabe-se que tipo de resultado final ser obtido.

    Como consequncia, quando executado sob exatamente asmesmas condies, o algoritmo produzir o mesmoresultado.

    Na maioria dos cases, algoritmos so elaborados paraespecificar tarefas que podem ser realizadas (internamente)por um computador.

  • Noes de Algoritmos

    Um algoritmo deve especificar passos bem definidos, queno contenham ambiguidade.

    Desta forma, sabe-se que tipo de resultado final ser obtido.

    Como consequncia, quando executado sob exatamente asmesmas condies, o algoritmo produzir o mesmoresultado.

    Na maioria dos cases, algoritmos so elaborados paraespecificar tarefas que podem ser realizadas (internamente)por um computador.

  • Noes de Algoritmos

    Um algoritmo deve especificar passos bem definidos, queno contenham ambiguidade.

    Desta forma, sabe-se que tipo de resultado final ser obtido.

    Como consequncia, quando executado sob exatamente asmesmas condies, o algoritmo produzir o mesmoresultado.

    Na maioria dos cases, algoritmos so elaborados paraespecificar tarefas que podem ser realizadas (internamente)por um computador.

  • Noes de Algoritmos

    Um algoritmo deve especificar passos bem definidos, queno contenham ambiguidade.

    Desta forma, sabe-se que tipo de resultado final ser obtido.

    Como consequncia, quando executado sob exatamente asmesmas condies, o algoritmo produzir o mesmoresultado.

    Na maioria dos cases, algoritmos so elaborados paraespecificar tarefas que podem ser realizadas (internamente)por um computador.

  • Noes de Algoritmos

    Um possvel algoritmo (dentre vrios) para trocar um pneu:

    1. Obter estepe, macaco e chave de roda2. Usar macaco para elevar carro3. Usar chave de roda para remover parafusos4. Remover pneu furado5. Posicionar estepe6. Usar chave de roda para fixar parafusos7. Baixar carro

    Dois pequenos problemas com este algoritmo so: No est bem definido o quanto se deve elevar o carro. Equipamentos no so recolhidos.

  • Noes de Algoritmos

    Um possvel algoritmo (dentre vrios) para trocar um pneu:

    1. Obter estepe, macaco e chave de roda2. Usar macaco para elevar carro3. Usar chave de roda para remover parafusos4. Remover pneu furado5. Posicionar estepe6. Usar chave de roda para fixar parafusos7. Baixar carro

    Dois pequenos problemas com este algoritmo so:

    No est bem definido o quanto se deve elevar o carro. Equipamentos no so recolhidos.

  • Noes de Algoritmos

    Um possvel algoritmo (dentre vrios) para trocar um pneu:

    1. Obter estepe, macaco e chave de roda2. Usar macaco para elevar carro3. Usar chave de roda para remover parafusos4. Remover pneu furado5. Posicionar estepe6. Usar chave de roda para fixar parafusos7. Baixar carro

    Dois pequenos problemas com este algoritmo so: No est bem definido o quanto se deve elevar o carro.

    Equipamentos no so recolhidos.

  • Noes de Algoritmos

    Um possvel algoritmo (dentre vrios) para trocar um pneu:

    1. Obter estepe, macaco e chave de roda2. Usar macaco para elevar carro3. Usar chave de roda para remover parafusos4. Remover pneu furado5. Posicionar estepe6. Usar chave de roda para fixar parafusos7. Baixar carro

    Dois pequenos problemas com este algoritmo so: No est bem definido o quanto se deve elevar o carro. Equipamentos no so recolhidos.

  • Noes de Algoritmos

    Um possvel algoritmo (dentre vrios) para trocar um pneu:

    1. Obter estepe, macaco e chave de roda2. Usar macaco para elevar carro at pneu no tocar o cho3. Usar chave de roda para remover parafusos4. Remover pneu furado5. Posicionar estepe6. Usar chave de roda para fixar parafusos7. Baixar carro8. Recolher equipamentos

  • Noes de Algoritmos

    Por que construir um algoritmo?

    1. Identificar recursos necessrios (ingredientes ou dados).

    2. Identificar subtarefas (Elevar carro, Afrouxarparafusos).

    3. Abstrair detalhes e focar em descrio de alto nvel,prxima ao domnio da tarefa.

    4. Fazer avaliao prvia de certas qualidades do algoritmo,antes de codific-lo em um programa.

  • Noes de Algoritmos

    Por que construir um algoritmo?

    1. Identificar recursos necessrios (ingredientes ou dados).

    2. Identificar subtarefas (Elevar carro, Afrouxarparafusos).

    3. Abstrair detalhes e focar em descrio de alto nvel,prxima ao domnio da tarefa.

    4. Fazer avaliao prvia de certas qualidades do algoritmo,antes de codific-lo em um programa.

  • Noes de Algoritmos

    Por que construir um algoritmo?

    1. Identificar recursos necessrios (ingredientes ou dados).

    2. Identificar subtarefas (Elevar carro, Afrouxarparafusos).

    3. Abstrair detalhes e focar em descrio de alto nvel,prxima ao domnio da tarefa.

    4. Fazer avaliao prvia de certas qualidades do algoritmo,antes de codific-lo em um programa.

  • Noes de Algoritmos

    Por que construir um algoritmo?

    1. Identificar recursos necessrios (ingredientes ou dados).

    2. Identificar subtarefas (Elevar carro, Afrouxarparafusos).

    3. Abstrair detalhes e focar em descrio de alto nvel,prxima ao domnio da tarefa.

    4. Fazer avaliao prvia de certas qualidades do algoritmo,antes de codific-lo em um programa.

  • Noes de Algoritmos

    Por que construir um algoritmo?

    1. Identificar recursos necessrios (ingredientes ou dados).

    2. Identificar subtarefas (Elevar carro, Afrouxarparafusos).

    3. Abstrair detalhes e focar em descrio de alto nvel,prxima ao domnio da tarefa.

    4. Fazer avaliao prvia de certas qualidades do algoritmo,antes de codific-lo em um programa.

  • Noes de Algoritmos

    Algoritmo Trocar-a-lmpada, verso 1:

    1. Obter escada2. Posicionar escada embaixo da lmpada3. Obter lmpada nova4. Subir na escada5. Retirar lmpada velha6. Colocar lmpada nova

    E se a lmpada no estivesse queimada?

  • Noes de Algoritmos

    Algoritmo Trocar-a-lmpada, verso 1:

    1. Obter escada2. Posicionar escada embaixo da lmpada3. Obter lmpada nova4. Subir na escada5. Retirar lmpada velha6. Colocar lmpada nova

    E se a lmpada no estivesse queimada?

  • Noes de Algoritmos

    Algoritmo Trocar-a-lmpada, verso 2:

    1. Obter escada2. Posicionar escada embaixo da lmpada3. Obter lmpada nova4. Acionar interruptor5. Se lmpada no acender, ento6. Subir na escada7. Retirar lmpada velha8. Colocar lmpada nova

    Buscamos escada e lmpada sem saber se estas sonecessrias.

  • Noes de Algoritmos

    Algoritmo Trocar-a-lmpada, verso 2:

    1. Obter escada2. Posicionar escada embaixo da lmpada3. Obter lmpada nova4. Acionar interruptor5. Se lmpada no acender, ento6. Subir na escada7. Retirar lmpada velha8. Colocar lmpada nova

    Buscamos escada e lmpada sem saber se estas sonecessrias.

  • Noes de Algoritmos

    Algoritmo Trocar-a-lmpada, verso 3:

    1. Acionar interruptor2. Se lmpada no acender, ento3. Obter escada4. Posicionar escada embaixo da lmpada5. Obter lmpada nova6. Subir na escada7. Retirar lmpada velha8. Colocar lmpada nova

    E se a lmpada nova no funcionar?

  • Noes de Algoritmos

    Algoritmo Trocar-a-lmpada, verso 3:

    1. Acionar interruptor2. Se lmpada no acender, ento3. Obter escada4. Posicionar escada embaixo da lmpada5. Obter lmpada nova6. Subir na escada7. Retirar lmpada velha8. Colocar lmpada nova

    E se a lmpada nova no funcionar?

  • Noes de Algoritmos

    Algoritmo Trocar-a-lmpada, verso 4:

    1. Acionar interruptor2. Se lmpada no acender, ento3. Obter escada4. Posicionar escada embaixo da lmpada5. Repetir6. Obter lmpada nova7. Subir na escada8. Retirar lmpada velha9. Colocar lmpada nova10. At lmpada acender