1 / 61

Lógica de Programação

Lógica de Programação. Aula 5. Germano Marcos Email: germano_07@hotmail.com. Lógica. Lógica é uma parte da filosofia que estuda o fundamento, a estrutura e as expressões humanas do conhecimento. Lógica de programação é a técnica de encadear pensamentos para atingir determinado objetivo.

hanne
Télécharger la présentation

Lógica de Programação

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. Lógica de Programação Aula 5 Germano Marcos Email: germano_07@hotmail.com

  2. Lógica • Lógica é uma parte da filosofia que estuda o fundamento, a estrutura e as expressões humanas do conhecimento. • Lógica de programação é a técnica de encadear pensamentos para atingir determinado objetivo.

  3. Lógica Exemplos de ordenação do raciocínio: • Todo mamífero é um animal. • Todo homem é mamífero. • Portanto, todo homem é um animal. • Pernambuco é um estado do Brasil • Quem nasce em Pernambuco é pernambucano • Portanto, todos os pernambucanos são brasileiros.

  4. Lógica • Todo mamífero é um animal. premissa • Todo homem é mamífero. premissa • Portanto, todo homem é um animal. conclusão SILOGISMO • Argumento composto por duas premissas e uma conclusão • Estabelece uma relação (válida ou não) • São estudos do Cálculo Sentencial ou Lógica Proposicional

  5. Silogismo • Silogismo Válido Ex: Pernambuco é um estado do Brasil Tiago reside em Pernambuco Logo, Tiago reside no Brasil • Silogismo Inválido Ex: Existem biscoitos feitos de água e sal.O mar é feito de água e sal.Logo, o mar é um biscoitão.

  6. Lógica Vamos pensar em novos exemplos: ? ?? ??? ????? ?????? ????????? ????????????

  7. Lógica de Programação • Um pensamento pode ser representado em vários idiomas, embora sempre expresse a mesma idéia, o mesmo raciocínio. • A idéia é concebida. Em seguida racionalizada, ordenada, e formalizada através da representação em uma certa linguagem de programação, como C, Java, PHP, Ruby...

  8. Lógica de Programação • Entretanto, cada linguagem de programação, assim como os idiomas da linguagem natural (linguagem falada e escrita, Português, Inglês, Espanho, Francês), tem suas especificidades. • Para que possamos representar formalmente um raciocínio, sem nos preocuparmos com um linguagem de programação específica, usamos os ALGORITMOS.

  9. Algoritmo • O que é um Algoritmo ? é formalmente uma sequência finita de passos que levam a execução de uma tarefa. Podemos pensar em algoritmo como uma receita, uma sequência de instruções que dão cabo de uma meta específica. Estas tarefas não podem ser redundantes nem subjetivas na sua definição, devem ser claras e precisas. • É um conjunto de passos, finito, sequenciais, pré definidos e não ambíguos.

  10. Algoritmo • E como precisamos detalhar essa sequência de ações/passos, então é necessário pensar com ordem. • Quer dizer: usar a Lógica!

  11. Algoritmo • No dia a dia usamos algoritmos, mas os conhecemos como receitas. • Ao fazer um bolo precisamos seguir uma receita. • Exercício: Vamos pensar numa receita de bolo ou para tomar um banho.

  12. Situação Problema => Fazer um Bolo Dados de entrada => ingredientes (ovos, trigo,açúcar, fermento etc.) Processamento: Unte tabuleiro com manteiga; Misture fermento,trigo,ovos,leite; Mexa a massa; Coloque a massa no tabuleiro; Ligue o forno; Coloque tabuleiro no forno; Aguarde até o bolo assar; Desligue o forno; Tire o bolo do forno; Saida de dados => Bolo Pronto Resposta: Algoritmo 1 S O L U Ç Ã O

  13. Resposta: Algoritmo 2 Situação Problema => Tomar Banho; Dados de entrada => Pessoa suja; Processamento: • Tirar a roupa; • Ir para debaixo do chuveiro; • Abrir o registro; • Ensaboar-se; • Passar shampoo nos cabelos; • Enxaguar todo o corpo; • Fechar o registro; Dados de saída => Pessoa Limpa: S O L U Ç Ã O

  14. Algoritmo • Observação: Existem algumas diferenças entre o nosso algoritmo e aquele utilizado pelo computador ? SIM

  15. Algoritmo • Exemplo Clássico: Algoritmo para a troca de uma lâmpada utilizando o português coloquial. • Embora essas atividades pareçam óbvias, normalmente as realizamos inconscientemente para alcançar os nossos objetivos.

  16. Algoritmo da Lâmpada V. 1 • Pegar uma escada • Pegar uma lâmpada nova • Posicionar a escada abaixo da lâmpada a ser trocada • Subir na escada • Retirar a lâmpada velha • Colocar a lâmpada nova

  17. Algoritmo da Lâmpada • A sequenciação: • É uma forma de reger o fluxo das ações a serem executadas; • A ordem é importante; • No exemplo da troca da lâmpada a sequenciação é linear;

  18. Algoritmo da Lâmpada • E se a lâmpada não estiver queimada? • De acordo com o algoritmo que desenvolvemos a troca seria feita independentemente de a lâmpada estar ou não queimada! • Essa possibilidade não foi prevista. • Podemos verificar se a lâmpada acende antes de buscar a escada e a lâmpada.

  19. Algoritmo da Lâmpada • Para solucionar a possibilidade de a lâmpada não estar queimada podemos refinar um pouco mais o nosso algoritmo anterior. • Como? • Efetuando um teste. Vamos lá!

  20. Algoritmo da Lâmpada V. 2 • Acionar o interruptor; • Se a lâmpada não acender, então: • Pegar uma escada; • Pegar uma lâmpada nova; • Posicionar a escada abaixo da lâmpada a ser • trocada; • Subir na escada; • Retirar a lâmpada velha; • Colocar a lâmpada nova;

  21. Algoritmo da Lâmpada • Note que agora estabelecemos uma condição ao nosso algoritmo: • Se essa condição for verdadeira (???) efetuaremos a troca da lâmpada, seguindo os próximos passos.

  22. Algoritmo da Lâmpada • Se a condição for falsa (???) então os passos relativos à troca da lâmpada não serão executados. • Quer dizer, a lâmpada, que está funcionando, não será trocada.

  23. Algoritmo da Lâmpada • Essa condição de teste que estabelecemos é o chamado Teste de Seleção. • Dada uma condição, então as ações a serem executadas dependerão da avaliação dessa condição (verdadeira ou falsa).

  24. Atividades • Elaborar um Silogismo Válido e um Inválido; • Elaborar um Algoritmo para trocar um pneu furado.

  25. Lógica de Programação • Lógica de programação é a técnica de encadear pensamentos para atingir determinado objetivo. • Por que estamos estudando Lógica de Programação? • R: para aprendermos a construir algoritmos coerentes e válidos.

  26. Algoritmo da Lâmpada V. 2 • Acionar o interruptor; • Se a lâmpada não acender, então: • Pegar uma escada; • Pegar uma lâmpada nova; • Posicionar a escada abaixo da lâmpada a ser • trocada; • Subir na escada; • Retirar a lâmpada velha; • Colocar a lâmpada nova;

  27. Algoritmo da Lâmpada • O algoritmo v.2 parece ser adequado, mas, e no caso de a lâmpada nova estiver defeituosa? • Podemos melhorar o nosso algoritmo ao ponto de ter que trocar a lâmpada, quantas vezes for necessário, até que funcione. • Refinando...

  28. Algoritmo da Lâmpada • Acionar o interruptor; • Se a lâmpada não acender, então: • Pegar uma escada; • Pegar uma lâmpada nova; • Posicionar a escada abaixo da lâmpada a ser trocada; • Subir na escada; • Retirar a lâmpada velha; • Colocar a 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 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: • . . . até quando??? V. 3

  29. Algoritmo da Lâmpada • Notemos que o algoritmo v.3 não especifica até quando o teste da lâmpada será feito. • Refinando ainda mais o algoritmo v.3, porém, agora teremos que lidar com o problema descrito logo a cima.

  30. Algoritmo da Lâmpada O trecho: • Enquanto a lâmpada não acender, faça: • Retirar a lâmpada queimada; • Colocar uma lâmpada nova; Condição de Parada

  31. Algoritmo da Lâmpada v.4 • Acionar o interruptor; • Se a lâmpada não acender, então: • Pegar uma escada; • Pegar uma lâmpada nova; • Posicionar a escada abaixo da lâmpada a ser trocada; • Subir na escada; • Retirar a lâmpada velha; • Colocar a lâmpada nova; • Enquanto a lâmpada não acender, faça: • Retirar a lâmpada queimada; • Colocar uma lâmpada nova;

  32. Algoritmo da Lâmpada • Notemos que, até o momento, definimos um algoritmo para a troca de apenas uma lâmpada (na verdade, o conjunto: lâmpada, soquete, interruptor), testando esse conjunto e trocando tantas lâmpadas sejam necessárias até que o conjunto funcione. • E se precisássemos trocar várias lâmpadas?? Por exemplo 10...

  33. Algoritmo da Lâmpada V.5 • Ir até o interruptor do primeiro soquete; • Enquanto a quantidade de soquetes testados for igual dez, faça: • Acionar o interruptor • Se a lâmpada não acender, então • Pegar uma escada • Pegar uma lâmpada nova • Posicionar a escada abaixo da lâmpada a ser trocada • Subir na escada • Retirar a lâmpada velha • Colocar a lâmpada nova • Enquanto a lâmpada não acender, faça: • Retirar a lâmpada queimada; • Colocar uma lâmpada nova; • Ir até o interruptor do próximo soquete;

  34. Algoritmo da Lâmpada V.5 • Ir até o interruptor do primeiro soquete; • Enquando a quantidade de soquetes testados for igual a dez, faça: • Acionar o interruptor Teste de seleção • Se a lâmpada não acender, então • Pegar uma escada • Pegar uma lâmpada nova • Posicionar a escada abaixo da lâmpada a ser trocada • Subir na escada • Retirar a lâmpada velha • Colocar a lâmpada nova • Enquanto a lâmpada não acender, faça: Estrutura de parada • Retirar a lâmpada queimada; • Colocar uma lâmpada nova; • Ir até o interruptor do próximo soquete; Estrutura de repetição

  35. Desafio 1  • Um homem precisa atravessar um rio com um barco que possui capacidade apenas para carregar ele mesmo e mais uma de suas três cargas: um lobo, um bode e um feixe de capim. O que o homem deve fazer para conseguir atravessar o rio sem perder suas cargas? Escreva um algoritmo mostrando a resposta, ou seja, indicando todas as ações necessárias para que o homem possa fazer sua travessia segura.

  36. R: Desafio 1  • Leva o bode para o outro lado do rio • Volta sozinho • Leva o lobo para o outro lado do rio • Volta com o bode • Leva o capim para o outro lado do rio • Volta sozinho • Leva o bode para o outro lado do rio

  37. Desafio 2  Três senhoras (dona Branca, dona Rosa e dona Violeta) passeavam pelo parque quando dona Rosa disse: • Não é curioso que estejamos usando vestidos de cores branca, rosa e violeta, embora nenhuma de nós esteja usando um vestido de cor igual ao seu próprio nome? • Uma simples coincidência (respondeu a senhora com o vestido violeta). Qual a cor do vestido de cada senhora?

  38. R: Desafio 02 

  39. Desafio 03  Três padres jesuítas e três canibais precisam atravessar um rio. Para tal dispõe de um barco com capacidade para 2 pessoas. Por medida de segurança, não se deve permitir que em alguma margem a quantidade de jesuítas seja inferior a de canibais. Qual a solução para efetuar a travessia com segurança? Elabore um algoritmo que represente a solução para este problema.

  40. Resolução – Algoritmo 3 • Início; • Vai 1 canibal e 1 jesuíta; • Volta 1 jesuíta; • Vão 2 canibais; • Volta 1 canibal; • Vão 2 jesuítas; • Volta 1 canibal e 1 jesuíta; • Vão 2 jesuítas; • Volta 1 canibal; • Vão 2 canibais; • Volta 1 canibal; • Vão 2 canibais; • Fim.

  41. Desafio 4 - Torre de Hanoi

  42. 1. Laranja => 2; 2. Verde => 3; 3. Laranja => 3; 4. Roxo => 2; 5. Laranja => 1; 6. Verde => 2; 7. Laranja =>2; 8. Amarelo => 3; 9. Laranja => 3; 10. Verde => 1; 11. Laranja => 1; 12. Roxo => 3; 13. Laranja => 2; 14. Verde => 3; 15. Laranja => 3; 16. Azul => 2; 17. Laranja => 1; 18. Verde =>2; 19. Laranja => 2; 20. Roxo => 1; 21. Laranja => 3; 22. Verde => 1; 23. Laranja => 1; 24. Amarelo => 2; 25. Laranja => 2; 26. Verde => 3; Resolução – Torre de Hanoi • Laranja => 3 • Roxo => 2 • Laranja => 1 • Verde => 2 • Laranja => 2 • Vermelho => 2 • Laranja => 3 • Verde => 1 • Laranja => 1 • Roxo => 3

  43. Resolução – Torre de Hanoi • Laranja => 2 • Verde => 3 • Laranja => 3 • Amarelo => 1 • Laranja => 1 • Verde => 2 • Laranja => 2 • Roxo => 1 • Laranja => 3 • Verde => 1 • Laranja => 1 • Azul => 3 • Laranja => 2 • Verde => 3 • Laranja => 3 • Roxo => 2 • Laranja => 1 • Verde => 2 • Laranja => 2 • Amarelo => 3 • Laranja => 3 • Verde => 1 • Laranja => 1 • Roxo => 3 • Laranja => 2 • Verde => 3 • Laranja => 3

  44. Algoritmos • Qualquer pessoa pode resolver o problema de trocar a lâmpada do seu modo.

  45. Algoritmos • Entretanto, o computador tradicional não tem conhecimento prévio nem adquire experiências, por isso devemos determinar detalhadamente as ações que desejamos que ele execute. • Como?

  46. Algoritmos • Prevendo possíveis obstáculos e a forma de transpô-los = descrever uma sequência finita de ações que garantam a solução do problema. Algoritmos

  47. Textualmente: Mais fácil de entender, pois usa a nossa linguagem natural; Passível de erros, por conta de que as vezes não usamos palavras adequadas Menos trabalhoso Graficamente: Mais fiel ao raciocínio original Substitui algumas palavras por desenhos Mais difícil de enteder (??) Mais trabalhoso Algoritmos Formas de Representação

  48. Bloco de ações F V 1a Ação 1a Ação 2a Ação 2a Ação ... ... n-ésima Ação n-ésima Ação Algoritmos Gráficos • Fluxograma Tradicional Estruturas de Seleção e de Repetição Início Ação • Diagrama de Chapin Ação

  49. Algoritmos GráficosFluxograma Início Leia B1, B2 Calcule M (B1 + B2) / 2 Média >= 6 verdadeira Falsa Aluno aprovado Aluno reprovado Fim

More Related