Slide 1 - claudiaboeres

Propaganda
Introdução à Programação:
uma Abordagem Funcional
Programação I
Engenharia de Computação
Prof.ª Claudia Boeres
2009/1
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
elementos matemáticos;
O número três é par
O número cinco é maior que zero
sobre
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
V
F
peq
V
F
F
F
ou p
q
V
V
F
F
V
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
Menor ou
<=
igual
>
Maior
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
True
True
False
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]:
intervalo0-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 para a direita.
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
(x1, y1).
P (x,y)
r
Q (x1,y1)
Download