A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Introdução à Programação: uma Abordagem Funcional Programação I Engenharia de Computação Prof.ª Claudia Boeres 2009/1.

Apresentações semelhantes


Apresentação em tema: "Introdução à Programação: uma Abordagem Funcional Programação I Engenharia de Computação Prof.ª Claudia Boeres 2009/1."— Transcrição da apresentação:

1 Introdução à Programação: uma Abordagem Funcional Programação I Engenharia de Computação Prof.ª Claudia Boeres 2009/1

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.

3 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 sobre elementos do cotidiano. Hoje está chovendo Maria é irmã de José uma proposição lógica é verdadeira ou falsa

4 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; < 20 Sentenças abertas: alguns componentes da sentença não estão devidamente explicitados. Para avaliá-la é preciso instanciar esses componentes x > 5

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

6 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

7 Tabelas de verdade Palavras lógicas: e, ou e não epqp e q VVV VFF FVF FFF oupqp ou q VVV VFV FVV FFF nã o pnão p VF FV

8 O tipo de dados boolean Formado pelas constantes True e False e as operações lógicas aval :: {True, False}

9 Operadores Lógicos Operação lógica Operador lógico (Haskell) e&& ou|| nãonot

10 Operadores relacionais operadorsignificadoexemploresultado == igualdade (2 + 3) == (8 – 3) True /= Diferença 5 /= (4 * 2 -3) False < Menor (2 + 3) < 6 True <= Menor ou igual (2 * 3) <= 6 True > Maior (4 + 2) > (2 * 3) False >= Maior ou igual (8 – 3 * 2) >= (15 div 3) False

11 Qual é a resposta da avaliação das expressões abaixo? > 3 2 > (3 + 5) == 8 && 30 /= 24 && 10 > 4 > not (7 > 8) || 4^2 == 16 && 50.5 <= 100

12 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

13 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

14 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.

15 Exemplos > 3+4 > 7 False :: Bool > 3>4 && 5 < 9 || 3 ==3 True :: Bool

16 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) Q (x1,y1) r


Carregar ppt "Introdução à Programação: uma Abordagem Funcional Programação I Engenharia de Computação Prof.ª Claudia Boeres 2009/1."

Apresentações semelhantes


Anúncios Google