Baixe o app para aproveitar ainda mais
Prévia do material em texto
Prof. M.Sc. Anderson Soares andersonsoares@ufra.edu.br Técnicas de Programação I 1 TÉCNICAS EM PROGRAMAÇÃO I Introdução Introdução a computação Algoritmo Noções de lógica Conclusão O que vamos ver na aula de hoje? 2Técnicas de Programação I Introdução Breve histórico Lógica de programação Conclusão • Identificação – Aula 02 – Disciplina: Técnicas de Programação I • Objetivo • Breve histórico • Lógica de programação • Referências Objetivos 3Técnicas de Programação I Introdução Breve histórico Lógica de programação Conclusão • Objetivos: – Apresentar os conceitos elementares de lógica. – Estabelecer uma relação entre lógica e algoritmos. Breve história 4Técnicas de Programação I Introdução Breve histórico Lógica de programação Conclusão • Álgebra de Boole – George Boole em 1847 publicou um volume de título: The Mathematical Analysis of Logic (A análise matemática da lógica). – Introduz conceitos de lógica simbólica demonstrando que a lógica podia ser representada por equações algébricas. – 100 anos depois seu trabalho foi fundamental para a construção e programação dos computadores eletrônicos. Breve história 5Técnicas de Programação I Introdução Breve histórico Lógica de programação Conclusão Mas o que tem de novo nessa Álgebra de Boole Breve história 6Técnicas de Programação I Introdução Breve histórico Lógica de programação Conclusão • Álgebra de Boole – Nesta álgebra existem apenas 3 (três) operadores: • E (AND); • Ou (OR); • Não (NOT). Breve história 7Técnicas de Programação I Introdução Breve histórico Lógica de programação Conclusão • Álgebra de Boole – Em 1937, Claude Shannon (estudante do MIT) estabeleceu a relação da álgebra de Boole e os circuitos eletrônicos. Breve história 8Técnicas de Programação I Introdução Breve histórico Lógica de programação Conclusão Mas afinal, o que aconteceu? Breve história 9Técnicas de Programação I Introdução Breve histórico Lógica de programação Conclusão • Álgebra de Boole – Na álgebra de Boole existem apenas 2 (dois) estados lógicos: • Sim/Verdadeiro/1 • Não/Falso/0 Breve história 10Técnicas de Programação I Introdução Breve histórico Lógica de programação Conclusão • Álgebra de Boole – Claude Shannon transferiu os 2 (dois) estados lógicos (Sim e Não) para diferentes diferenças de potencial no circuito. – Atualmente todos os computadores usam a Álgebra de Boole materializada em microships que contêm milhares de interruptores miniaturizados combinados em portas lógicas produzindo resultados em linguagem binária. Lógica de programação 11Técnicas de Programação I Introdução Breve histórico Lógica de programação Conclusão Existe lógica no dia-a-dia? Lógica de programação 12Técnicas de Programação I Introdução Breve histórico Lógica de programação Conclusão • Lógica no dia-a-dia – A lógica é importante no dia-a-dia, já que para que quando queremos pensar, falar, escrever ou agir corretamente, precisamos colocar “ordem no pensamento” (FORBELLONE, 2005). – Ex: O professor já está em sala. Eu cheguei atrasado. Logo devo pedir licença ao professor ao entrar na sala. Lógica de programação 13Técnicas de Programação I Introdução Breve histórico Lógica de programação Conclusão Mas e a lógica de programação? Lógica de programação 14Técnicas de Programação I Introdução Breve histórico Lógica de programação Conclusão • Mas e a lógica de programação? – É o uso correto das leis do pensamento, da “ordem da razão” e de processos de raciocínio e simbolização formais na programação de computadores (FORBELLONE, 2005). – Objetivo: Ter racionalidade e desenvolver técnicas que cooperem na produção de soluções logicamente válidas e coerentes, que resolvam com qualidade os problemas que se deseja programar (FORBELLONE, 2005). Lógica de programação 15Técnicas de Programação I Introdução Breve histórico Lógica de programação Conclusão • Expressão lógica – Denomina-se expressão lógica a expressão cujos operadores são lógicos e cujos operadores são relações, constantes e/ou variáveis do tipo lógico (Lopes e Garcia, 2002). Lógica de programação 16Técnicas de Programação I Introdução Breve histórico Lógica de programação Conclusão • Expressão lógica Fonte: Lopes e Garcia, 2002. Operador Matemática Usaremos Conjunção E && Disjunção Ou || Negação Não ! Lógica de programação 17Técnicas de Programação I Introdução Breve histórico Lógica de programação Conclusão • Tabela verdade do operador &&/AND/E/^ • Suponha 2 perguntas feitas a 4 pessoas. Só será chamado para a entrevista quem dominar as 2 linguagens. Fonte: Lopes e Garcia, 2002. Você conhece a linguagem C++? Você conhece a linguagem Java? Saída 0 0 0 0 1 0 1 0 0 1 1 1 Lógica de programação 18Técnicas de Programação I Introdução Breve histórico Lógica de programação Conclusão • Tabela verdade do operador ||/OR/Ou/v • Suponha 2 perguntas feitas a 4 pessoas. Só será chamado para a entrevista quem dominar pelo menos 1 linguagem. Fonte: Lopes e Garcia, 2002. Você conhece a linguagem C++? Você conhece a linguagem Java? Saída 0 0 0 0 1 1 1 0 1 1 1 1 Lógica de programação 19Técnicas de Programação I Introdução Breve histórico Lógica de programação Conclusão • Tabela verdade do operador !/NOT/Nao – A cor da camisa A não é azul. – A cor da camisa B não é amarela. Fonte: Lopes e Garcia, 2002. Camisa Cor Saída A Azul Falso B Verde Verdadeiro Lógica de programação 20Técnicas de Programação I Introdução Breve histórico Lógica de programação Conclusão • Tabela verdade do operador !/NOT/Não/¬ Fonte: Lopes e Garcia, 2002. A !A Saída 1 0 Falso 0 1 Verdadeiro Lógica de programação 21Técnicas de Programação I Introdução Breve histórico Lógica de programação Conclusão • Expressão lógica – Se chover E relampejar, eu fico em casa. Quando eu fico em casa? • Chover = A • Relampejar = B A B Saída 0 0 0 0 1 0 1 0 0 1 1 1 Lógica de programação 22Técnicas de Programação I Introdução Breve histórico Lógica de programação Conclusão • Expressão lógica – Se chover OU relampejar, eu fico em casa. Quando eu fico em casa? • Chover = A • Relampejar = B A B Saída 0 0 0 0 1 1 1 0 1 1 1 1 23Técnicas de Programação I 1. Qual o resultado das proposições? a) 2 < 5 e 15/3 = 5 b) 2<5 ou 15/3 = 5 c) Falso ou 20/(18/3) != (21/3) / 2 (Considere apenas valores inteiros) d) Não Verdadeiro ou 3²/3 < 15 – 35 / 7 (Considere o apenas o resto da divisão) Introdução Breve histórico Lógica de programação Conclusão Exercício Referências 24Técnicas de Programação I Introdução Breve histórico Lógica de programação Conclusão • Bibliografia Básica: – MIZRAHI, V. V. Treinamento em Linguagem C. 2ª. Edição. São Paulo: Pearson Prentice Hall, 2008. – FARRER, H.; BECKER, C. G. et al. Algoritmos Estruturados. 3ª Edição. Rio de Janeiro: LTC, 1999. – FORBELLONE, A. L. & EBERSPÄCHER, H. F. Lógica de Programação – A Construção de Algoritmos e Estruturas de Dados. 3ª Edição. São Paulo: Pearson, 2005. Referências 25Técnicas de Programação I Introdução Breve histórico Lógica de programação Conclusão • Bibliografia Complementar: – ASCENCIO, A. F. G. & CAMPOS, E. A. V. Fundamentos da Programação de Computadores – Algoritmos, Pascal, C, C++ e Java. 2ª. Edição.São Paulo: Pearson, 2008. – DEITEL, P. & DEITEL, H. C: Como Programar. 6ª. Edição. São Paulo: Pearson, 2011. – LOPES, A. & GARCIA, G. Introdução à Programação – 500 Algoritmos Resolvidos. Rio de Janeiro: Campus, 2002. – FEOFILOFF, P. Algoritmos em Linguagem C. Rio de Janeiro: Elsevier, 2008. – KERNIGHAN, B. W. & RITCHIE, D. M. C: A Linguagem de Programação ANSI. Rio de Janeiro: Campus, 1989. Referências 26Técnicas de Programação I Introdução Breve histórico Lógica de programação Conclusão • Bibliografia Complementar: – Forbellone, A. L. V.; Eberspacher, H. F.. Lógica de programação: a construção de algoritmos e estruturas de dados. 3ª Ed. Prentice Hall – São Paulo, 2005. Prof. M.Sc. Anderson Soares andersonsoares@ufra.edu.br Técnicas de Programação I 27 TÉCNICAS EM PROGRAMAÇÃO I Introdução Breve histórico Lógica de programação Conclusão
Compartilhar