Introduo Programao uma Abordagem Funcional PD I Engenharia
Introdução à Programação: uma Abordagem Funcional PD I – Engenharia Elétrica Prof. ª Claudia Boeres 2008/2
Expressões Lógicas e o tipo Boolean • importante para a tomada de decisão; tipo boolean: tipo de dados para representar a satisfação ou não de uma condição; • George Boole: estudou e formalizou operações com estes tipos de valores. •
Proposições Lógicas sentenças matemáticas: afirmações sobre elementos matemáticos; O número três é par O número cinco é maior que zero Proposições lógicas: afirmações elementos do cotidiano. Hoje está chovendo Maria é irmã de José sobre uma proposição lógica é verdadeira ou falsa
Sentenças fechadas e abertas Sentenças fechadas: todos os componentes da sentença estão explicitados, podendo ser avaliada imediatamente, conferindo o que elas afirmam com o mundo ao qual elas se referem; 7 + 3 < 20 Sentenças abertas: alguns componentes da sentença não estão devidamente explicitados. Para avaliá-la é preciso instanciar esses componentes x>5
Sentenças compostas Formada a partir das proposições lógicas simples Hoje é domingo e faz sol 3 > 2 e 3 < 10 Flamengo não é o melhor time do Rio de Janeiro
Avaliação de sentenças compostas Como se avalia esse tipo de sentença? Hoje faz sol e eu vou à praia Nesta manhã Joãozinho não vai à escola Amanhã choverá ou ficará nublado
Tabelas de verdade e Palavras lógicas: e, ou e não p V V F F q V F peq V F F F ou p q V V F F V F p ou q V V V F nã p não p o V F F V
O tipo de dados boolean Formado pelas constantes True e False e as operações lógicas aval : : <sentença> {True, False}
Operadores Lógicos Operador lógico Operação lógica (Haskell) e ou não && || not
Operadores relacionais operador significado == igualdade /= Diferença < Menor ou <= igual > Maior ou >= igual exemplo (2 + 3) == (8 – 3) 5 /= (4 * 2 -3) (2 + 3) < 6 (2 * 3) <= 6 (4 + 2) > (2 * 3) (8 – 3 * 2) >= (15 div 3) resultado True False
Qual é a resposta da avaliação das expressões abaixo? > 3 < 5 && 7 > 2 > (3 + 5) == 8 && 30 /= 24 && 10 > 4 > not (7 > 8) || 4^2 == 16 && 50. 5 <= 100
Definição de funções booleanas Funções booleanas: o contradomínio destas funções consiste no conjunto {True, False} Exemplos: Verificar se um número é ímpar: impar x = mod x 2 /= 0 Verificar se um número pertence ao intervalo [0, 1]: intervalo 0 -1 x = x >= 0 && x <= 1
Mais exemplos Verificar se um número está dentro do intervalo [a, b], com a < b; Verificar se um número é maior que o outro; Verificar se um ponto pertence ao primeiro quadrante do plano cartesiano
Hierarquia dos operadores relacionais e lógicos Operadores aritméticos: todos estão no mesmo nível de hierarquia, que está abaixo dos operadores aritméticos e de funções e primitivas; Operadores lógicos && e ||: estão abaixo dos operadores aritméticos e o operador && tem precedência sobre ||; O operador not tem prioridade idêntica a qualquer outra primitiva do Haskell; Se a expressão possui operadores no mesmo nível de hierarquia, são avaliados da esquerda
Exemplos > 3+4 > 7 False : : Bool > 3>4 && 5 < 9 || 3 ==3 True : : Bool
Exercício Faça uma função que verifique se um ponto P (x, y) pertence ao círculo de raio r e centro Q (x 1, y 1). P (x, y) r Q (x 1, y 1)
- Slides: 16