Algoritmos e Programação Flávio Euripedes de Oliveira Esp. em Analise de Sistemas Esp. em Segurança da Informação [email protected] Tema central: Introdução à Lógica de Programação Flávio Euripedes Apresentação – Slide 2 Fundamentos de Programação Objetivos: Apresentar uma introdução sobre noções básicas de lógica; Definir silogismos; Introduzir conceitos de lógica de programação; Apresentar conceitos de algoritmos, bem como suas características e exemplos; Verificar o aprendizado do aluno através da aplicação de exercícios. Flávio Euripedes Apresentação – Slide 3 Fundamentos de Programação Referencias Bibliográficas: FORBELLONE, André Luiz Villar; EBERSPACHER, Henri. Lógica de Programação: a construção de algoritmos e estruturas de dados. 3 ed. São Paulo: Pearson Education, 2005. MANZANO, Jose Augusto N G. Algoritmos: logica para desenvolvimento de programação de computadores. São Paulo: Érica, 2001.’ Flávio Euripedes Apresentação – Slide 4 Fundamentos de Programação Lógica: Do grego Logiké, arte de raciocinar. Flávio Euripedes Apresentação – Slide 5 Fundamentos de Programação Definição 1: Ciência que tem como objetivo o estudo dos métodos e princípios que permitem distinguir raciocínios válidos de outros não válidos. Raciocínio: Encadeamento de argumentos ou juízos para chegar a uma demonstração (conclusão). Flávio Euripedes Apresentação – Slide 6 Fundamentos de Programação Definição 2: A lógica estuda a “correção do raciocínio”. Flávio Euripedes Apresentação – Slide 7 Fundamentos de Programação Definição 3: A lógica tem em vista a “ordem da razão”. Isso dá a entender que a nossa razão pode funcionar desordenadamente. Por isso a lógica estuda e ensina a colocar “ordem no pensamento”. Flávio Euripedes Apresentação – Slide 8 Fundamentos de Programação Silogismo: Raciocínio formado de três proposições: a primeira, chamada premissa maior, a segunda, premissa menor, e a terceira, conclusão. (A conclusão se infere da maior por intermédio da menor). Exemplo 01: Todo mamífero é um animal Todo cavalo é um mamífero Portanto, todo cavalo é um animal Flávio Euripedes Apresentação – Slide 9 Fundamentos de Programação Silogismo: Minas Gerais é um estado do Brasil Todos os araxaenses são de Minas Gerais Portanto, todos os araxaenses são brasileiros Brasil Minas Gerais Araxá Flávio Euripedes Apresentação – Slide 10 Fundamentos de Programação Silogismo: Representam, na Lógica Proposicional, um argumento composto por duas premissas e uma conclusão. OBS: a relação pode ser válida ou não. Exemplo de um silogismo inválido: Minas Gerais está localizado no Brasil Todos os araxaenses são de Minas Gerais Portanto, todos os araxaenses estão no Brasil (Não necessariamente, pois pode haver araxaenses morando em outros países). Flávio Euripedes Apresentação – Slide 11 Fundamentos de Programação Lógica de Programação: Como ser humano expressa seu raciocínio? Palavra escrita em um idioma (linguagem) Pode ser escrito em outro idioma, mas representa o mesmo raciocínio A Lógica de Programação é concebida pela mente e pode ser escrita em qualquer uma das inúmeras linguagens de programação. Cada linguagem possui vários comandos Estuda-se a lógica através de algoritmos Flávio Euripedes Apresentação – Slide 12 Fundamentos de Programação Algoritmos: “Sequência de passos que visam atingir um objetivo bem definido” (FORBELLONE, 2000). “Sequência ordenada, e não ambígua, de passos que levam a solução de um dado problema” (TREMBLAY). Flávio Euripedes Apresentação – Slide 13 Fundamentos de Programação Características: Possui início e fim; Não dar margem a dupla interpretação; Sempre que executado, sob as mesmas condições, deverá produzir o mesmo resultado; Capacidade de receber dado(s) de entrada do mundo exterior. Flávio Euripedes Apresentação – Slide 14 Fundamentos de Programação Algorítmo para se trocar uma lampada: 1. 2. 3. 4. 5. 6. 7. 8. pegar uma escada; posicionar a escada embaixo da lâmpada; buscar uma lâmpada nova; subir na escada; retirar a lâmpada velha; colocar a lâmpada nova; descer da escada; jogar a lâmpada velha no lixo. Flávio Euripedes Apresentação – Slide 15 Fundamentos de Programação E se a lâmpada estivesse queimada? 1. 2. 3. 4. pegar uma escada; posicionar a escada embaixo da lâmpada; buscar uma lâmpada nova; acionar o interruptor; 5. se a lâmpada não acender, então: seletivo 1. subir na escada; 2. retirar a lâmpada velha; 3. colocar a lâmpada nova; 4. descer da escada; 5. jogar a lâmpada velha no lixo. Flávio Euripedes Apresentação – Slide 16 → Inclusão do teste Fundamentos de Programação Melhorando o Algoritmo: 1. acionar o interruptor 2. se a lâmpada não acender, então: → Inclusão do teste seletivo 1. 2. 3. 4. 5. 6. 7. 8. pegar uma escada; posicionar a escada embaixo da lâmpada; buscar uma lâmpada nova; subir na escada; retirar a lâmpada velha; colocar a lâmpada nova; descer da escada; jogar a lâmpada velha no lixo. Flávio Euripedes Apresentação – Slide 17 Fundamentos de Programação E se a lâmpada nova também estivesse queimada? acionar o interruptor se a lâmpada não acender, então: → Inclusão do teste seletivo pegar uma escada posicionar a escada embaixo da lâmpada enquanto a lâmpada não acender, faça: → Inclusão do teste repetitivo, com cond. parada. buscar uma lâmpada nova; subir na escada; retirar lâmpada velha; colocar a lâmpada nova; descer da escada; jogar a lâmpada velha no lixo; acionar interruptor. fim do enquanto Guardar escada Flávio Euripedes Apresentação – Slide 18 Fundamentos de Programação Exercícios: 1. Criar um algoritmo para se tomar banho. 2. Criar um algoritmo para se trocar o pneu de um carro. 3. Criar um algoritmo para se falar no orelhão. Flávio Euripedes Apresentação – Slide 19 Fundamentos de Programação Algoritmo para se tomar banho: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. O banheiro está disponível? Se sim prossiga se não finalize Entrar no banheiro Tirar a roupa Colocar a roupa suja no cesto Ir para debaixo do chuveiro Abrir o chuveiro Molhar o corpo Ensaboar Enxaguar Enxugar Vestir roupa limpa Pentear o cabelo Sair do banheiro Flávio Euripedes Apresentação – Slide 20 Fundamentos de Programação Algoritmo para se trocar pneu de um carro: 1. 2. 3. O pneu está furado? Se sim prossiga se não finalize Abrir o porta malas O pneu de estepe, chave de rodas e macaco estão ok? Se sim prossiga se não vá para o passo 11 4. Suspender a roda com o pneu furado com o macaco 5. Retirar os parafusos da roda 6. Retirar o pneu furado 7. Colocar o pneu de estepe na roda 8. Apertar os parafusos 9. Abaixar o macaco 10. Guardar o pneu furado, chave de rodas e macaco no porta malas 11. Fechar o porta malas Flávio Euripedes Apresentação – Slide 21 Fundamentos de Programação Algoritmo para se falar no orelhão: 1. Tirar o fone do gancho 2. Foi dado sinal de discagem? Se sim prossiga, se não vá para o passo 8. 3. Introduzir o cartão. 4. Teclar o número desejado. 5. A ligação foi completada? Se sim prossiga se não vá para o passo 7. 6. Falar o desejado. 7. Retirar o cartão. 8. Colocar o fone no gancho. Flávio Euripedes Apresentação – Slide 22 Fundamentos de Programação