Aula 09

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 8

A ULA 9

E XPRESSÕES L ÓGICAS

9.1 Lógica proposicional

Lógica é o estudo do raciocínio1 . Em particular, utilizamos lógica quando desejamos de-


terminar se um dado raciocínio está correto. Nesta disciplina, introduzimos algumas noções
básicas de Lógica Proposicional para que sejamos capazes de entender alguns tipos de dados e
expressões utilizados nos algoritmos que desenvolveremos. No entanto, a relação entre lógica,
resolução de problemas e programação de computadores é muito mais ampla, rica e complexa
do que a discussão que apresentamos aqui.
A Lógica Proposicional consiste de uma linguagem e de um formalismo de cálculo para falar
e deduzir fatos, respectivamente, sobre proposições. Uma proposição é uma sentença declarativa
à qual podemos atribuir um valor verdadeiro ou falso. Há vários tipos de sentenças:

• Imperativas: “Multiplique 2 por 3.”

• Exclamativas: “Que cerveja gelada!”

• Interrogativas: “Está chovendo lá fora?”

• Declarativas: “Todo aluno da UFRN é maior de idade.”

O que distingue as sentenças declarativas das demais é o fato de que à elas podemos atribuir
um valor verdadeiro ou falso, embora nem sempre sejamos capazes de saber que valor atribuir.
Em lógica, assumimos que as proposições satisfazem dois princípios:

1. Terceiro Excluído: uma proposição ou é verdadeira ou é falsa, isto é, não existe uma
terceira possibilidade.

2. Não-Contradição: uma proposição não pode ser, ao mesmo tempo, verdadeira e falsa.

As sentenças: “os únicos inteiros positivos que dividem 7 são 1 e o próprio 7” e “para todo
inteiro positivo n, existe um primo maior do que n” são exemplos de proposições.
Aqui, usamos letras minúsculas, tais como p, q e r, para representar proposições e adotamos
a notação
p:1+1=3
para definir p como sendo a proposição 1 + 1 = 3.
1
Conjunto de argumentos ou idéias pensadas por alguém.

1
9.2 P ROPOSIÇÕES COMPOSTAS 2

9.2 Proposições compostas

A linguagem utilizada em lógica para representar proposições e realizar cálculos sobre elas
foi cuidadosamente desenvolvida para evitar ambiguidades. Este não é o caso da língua por-
tuguesa, que nos permite facilmente construir sentenças ambíguas:

• Grandes carros e aviões.


O que é grande? Só os carros ou carros e aviões?

• José está vendo o jogo em cima das dunas.


Quem está em cima das dunas? O jogo? José? Ambos?

A linguagem que usaremos para construir algoritmos e as linguagens de programação também


não são ambíguas, mas não servem para descrever argumentos, conhecimento, verdades, etc.
É por isso que estudaremos uma linguagem própria para falar de proposições. Uma das carac-
terísticas desta linguagem é o uso de conectivos lógicos para criar novas proposições, proposições
compostas, a partir de proposições existentes.
Sejam p e q duas proposições. A conjunção de p e q, representada por p ∧ q, é a proposição

p e q.

A disjunção de p e q, representada por p ∨ q, é a proposição

p ou q.

Por exemplo, se
p: 1+1=3
e
q: uma década equivale a 10 anos
então a conjunção de p e q é

p∧q : 1+1=3 e uma década equivale a 10 anos

e a disjunção de p e q é

p∨q : 1+1=3 ou uma década equivale a 10 anos.

Os valores verdades das proposições, tais como conjunções e disjunções, podem ser des-
critos através de tabelas verdades. A tabela verdade de uma proposição p definida a partir das
proposições p1 , . . . , pn lista todas as possíveis combinações de valores lógicos de p1 , . . . , pn , com
T denotando verdadeiro e F denotando falso, e para cada combinação desses valores lógicos,
a tabela verdade lista o valor lógico de p.
O valor lógico da proposição composta p ∧ q é definido pela tabela verdade 9.1.
Por exemplo, se
p: 1+1=3
e
q: uma década equivale a 10 anos

DIM0320 - DIMA P /UFRN P ROF. M ARCELO F. S IQUEIRA , E D . P ROF. U MBERTO S. C OSTA


9.2 P ROPOSIÇÕES COMPOSTAS 3

p q p∧q
V V V
V F F
F V F
F F F

Tabela 9.1: Tabela verdade da conjunção.

então p é falsa e q é verdadeira, o que implica que a conjunção

p∧q : 1+1=3 e uma década equivale a 10 anos

é falsa.
O valor lógico da proposição composta p ∨ q é definido pela tabela verdade 9.2:
p q p∨q
V V V
V F V
F V V
F F F

Tabela 9.2: Tabela verdade da disjunção.

Por exemplo, se
p: 1+1=3
e
q: uma década equivale a 10 anos
então p é falsa e q é verdadeira, o que implica que a disjunção

p∧q : 1+1=3 ou uma década equivale a 10 anos

é verdadeira.
Existe ainda uma outra proposição importante:
Seja p uma proposição qualquer. Então, a negação de p, denotada por p, é a proposição

não é verdade que p.

O valor lógico da proposição p é definido pela tabela verdade 9.3.


p p
V F
F V

Tabela 9.3: Tabela verdade da negação.

Por exemplo, se
p: 1+1=3

DIM0320 - DIMA P /UFRN P ROF. M ARCELO F. S IQUEIRA , E D . P ROF. U MBERTO S. C OSTA


9.2 P ROPOSIÇÕES COMPOSTAS 4

e
q: uma década equivale a 10 anos
então p é falsa e q é verdadeira, o que implica que
p: não é verdade que 1 + 1 = 3
é verdadeira e
q: não é verdade que uma década equivale a 10 anos
é falsa.
Nós podemos utilizar conjunção, disjunção e negação para construir uma nova proposi-
ção a partir de duas proposições, onde cada uma delas pode ser uma proposição composta.
Quando isto acontece, usamos parênteses e regras de precedência para determinar, de forma
não-ambígua, como avaliar o valor lógico da proposição resultante.
Por exemplo, se p, q e r são proposições, então
(p ∧ q) ∨ r
também é uma proposição. Como podemos avaliar o valor lógico dessa proposição? Nós
supomos que o operador de negação possui precedência sobre os conectivos de conjunção e
disjunção. Então, a proposição
p∧q
significa a conjunção de p com q. Isto é, o operador de negação atua sobe q antes que o conectivo
de conjunção atue sobre p e q.
Finalmente, quando temos mais duas proposições conectadas por ∧ ou ∨, usamos parênte-
ses para determinar a ordem de composição das proposições. Por exemplo,
(p ∧ q) ∨ r
significa a disjunção da proposição p ∧ q com a proposição r. Isto é, os parênteses servem para
determinar que a conjunção de p com q deve ocorrer antes da disjunção de p ∧ q com r.
Se os parênteses fossem removidos, isto é, se tivéssemos
p∧q∨r
não poderíamos determinar se a sentença acima se trata da conjunção de p com q ∨ r ou da
disjunção de p ∧ q com r.
Agora, se supusermos que p é V, q é V e r é F, o valor lógico de (p ∧ q) ∨ r é
(p ∧ q) ∨ r = (V ∧ V) ∨ F
= (V ∧ F) ∨ F
=F∨F
= F.

Em alguns casos, no entanto, o uso de parênteses é desnecessário. Por exemplo,


(p ∨ q) ∧ (p ∨ q) ∧ (p ∨ q) ∧ (p ∨ q)
No caso acima, não importa a ordem em que agrupamos as proposições definidas dentro dos
parênteses, pois o valor lógico da proposição resultante será sempre o mesmo. Isto porque o
conectivo “fora” que conecta as proposições parentizadas é o mesmo: ∧.

DIM0320 - DIMA P /UFRN P ROF. M ARCELO F. S IQUEIRA , E D . P ROF. U MBERTO S. C OSTA


9.3 O PERADORES LÓGICOS 5

9.3 Operadores lógicos

Como vimos na Aula 7, uma relação é, na verdade, uma proposição, pois ela é uma sen-
tença declarativa (em particular, uma comparação entre dois valores) cujo valor só pode ser
verdadeiro ou falso. Logo, é bastante natural nos perguntarmos se podemos combinar rela-
ções usando algum operador, assim como fizemos com as proposições que vimos na Seção 9.2
usando conectivos lógicos, conjunção e disjunção. A resposta é sim. Em particular, podemos
construir expressões lógicas, que são expressões cujo resultado é um valor lógico. Toda re-
lação é, portanto, uma expressão lógica. No entanto, uma expressão lógica pode consistir de
mais de uma relação, as quais são combinadas através dos operadores lógicos. No Portugol da
ferramenta V ISU A LG, os operadores lógicos são os mostrados na Tabela 9.4.
Operador Descrição
nao Negação
e Conjunção
xou Disjunção Exclusiva
ou Disjunção

Tabela 9.4: Operadores lógicos da linguagem Portugol.

Suponha que a, b e c são variáveis do tipo inteiro. Então,

(a > b + c) e (c <= 5 − a)

é uma conjunção das relações


a>b+c
e
c <= 5 − a .
O resultado da avaliação da expressão lógica

(a > b + c) e (c <= 5 − a)

(ou seja, da conjunção das duas relações acima) será o valor verdadeiro se, e somente se, o
resultado das duas relações for o valor verdadeiro. Por outro lado, se a expressão lógica for

(a > b + c) ou (c <= 5 − a)

então o resultado da avaliação da expressão lógica (ou seja, da disjunção) será o valor verdadeiro
se, e somente se, o resultado de uma ou de ambas as relações for o valor verdadeiro. Já

nao (a > b + c)

é uma negação da relação


a > b + c.
O resultado da avaliação da expressão lógica (ou seja, da negação) será o valor verdadeiro se, e
somente se, o resultado da avaliação da relação for o valor falso.
As expressões lógicas podem combinar mais de duas relações. Por exemplo,

(a <> 4 + b) ou (2 ∗ 5 % c = 1) e (a <= 5 − c)

DIM0320 - DIMA P /UFRN P ROF. M ARCELO F. S IQUEIRA , E D . P ROF. U MBERTO S. C OSTA


9.3 O PERADORES LÓGICOS 6

e
nao (c ∗ 2 > 10) ou (c − 3 <> 4) ou (b > c ∗ 4) .
Como a utilização demasiada de parênteses pode prejudicar a legibilidade da expressão, o uso
de regras de precedência de operadores é sempre útil. A Tabela 9.5 exibe a prioridade dos
operadores lógicos da linguagem Portugol da ferramenta V ISU A LG. Estas prioridades podem
ser modificadas pelo uso de parênteses, assim como fizemos com as expressões aritméticas.
Prioridade Operador
mais alta nao
↑ e
↑ xou
mais baixa ou

Tabela 9.5: Prioridade de todos os operadores da linguagem Portugol vistos até o momento.

De acordo com essas precedências, o valor da expressão lógica

(2 > 3) e (3 < 2) ou (2 < 3)

é verdadeiro, pois

(2 > 3) e (3 < 2) ou (2 < 3) ⇒ falso e (3 < 2) ou (2 < 3)


⇒ falso e falso ou (2 < 3)
⇒ falso ou (2 < 3)
⇒ falso ou verdadeiro
⇒ verdadeiro .

Por outro lado, se o operador ou tivesse maior prioridade do que o operador e, então

(2 > 3) e (3 < 2) ou (2 < 3)

avaliaria para falso, pois

(2 > 3) e (3 < 2) ou (2 < 3) ⇒ (2 > 3) e falso ou (2 < 3)


⇒ (2 > 3) e falso ou verdadeiro
⇒ (2 > 3) e verdadeiro
⇒ falso e verdadeiro
⇒ falso .

No exemplo acima, as relações foram “cercadas” com parênteses. Na Lógica Proposicional,


esses parênteses seriam desnecessários, pois qualquer operador relacional possui prioridade sobre
todo operador lógico. No entanto, a ferramenta V ISU A LG exige que as relações que compõem
uma expressão lógica sejam cercadas por parênteses. Logo, usando a linguagem Portugol
desta ferramenta, as expressões lógicas acima não podem ser reescritas como mostrado a seguir:

2 > 3 e 3 < 2 ou 2 < 3 .

DIM0320 - DIMA P /UFRN P ROF. M ARCELO F. S IQUEIRA , E D . P ROF. U MBERTO S. C OSTA


9.4 E XERCÍCIOS RESOLVIDOS 7

9.4 Exercícios resolvidos

1. Avalie as seguintes expressões lógicas:

(a) falso ou ( 10 % 5 ∗ 2 <> 5 ∗ 2 + 1 )


(b) nao falso e ( 3 ∗ 3 \ 3 < 15 − 5 % 7 )

solução:

(a)

falso ou ( 10 % 5 ∗ 2 <> 5 ∗ 2 + 1 ) ⇒ falso ou ( 0 ∗ 2 <> 5 ∗ 2 + 1 )


⇒ falso ou ( 0 <> 5 ∗ 2 + 1 )
⇒ falso ou ( 0 <> 10 + 1 )
⇒ falso ou ( 0 <> 11 )
⇒ falso ou verdadeiro
⇒ verdadeiro .

(b)

nao falso e ( 3 ∗ 3 \ 3 < 15 − 5 % 7 ) ⇒ verdadeiro e ( 3 ∗ 3 \ 3 < 15 − 5 % 7 )


⇒ verdadeiro e ( 9 \ 3 < 15 − 5 % 7 )
⇒ verdadeiro e ( 3 < 15 − 5 % 7 )
⇒ verdadeiro e ( 3 < 15 − 5 )
⇒ verdadeiro e ( 3 < 10 )
⇒ verdadeiro e verdadeiro
⇒ verdadeiro .

2. Suponha que x seja uma variável do tipo inteiro e considere a seguinte expressão lógica:

(x % 3 = 0) e (x % 7 = 0)

Então, para quais valores de x a expressão lógica acima avalia para o valor verdadeiro?
solução:
Para todo valor inteiro que seja um múltiplo comum de 3 e de 7. Por exemplo, −21 e 21.

3. Suponha que x seja uma variável do tipo inteiro. Então, escreva uma expressão lógica
envolvendo x que avalie para o valor verdadeiro se, e somente se, o valor de x for par e
não for maior do que 11.
solução:

(x % 2 = 0) e (x <= 11)

DIM0320 - DIMA P /UFRN P ROF. M ARCELO F. S IQUEIRA , E D . P ROF. U MBERTO S. C OSTA


9.5 E XERCÍCIOS PROPOSTOS 8

9.5 Exercícios propostos

1. Avalie o valor da expressão p e (q ou r) quando sabe-se que:

(a) p é verdade, q é falso e r é falso


(b) p é verdade, q é verdade e r é falso
(c) p é falso, p é falso e r é verdade

2. Resolva as expressões lógicas:

(a) nao (2 > 3)


(b) (6 < 8) ou (3 > 7)
(c) nao (2 <> 2.0)
(d) (5 >= 6) ou (6 < 7) ou nao (a + 5 - 6 = 8), onde a = 5
(e) ((34 < 9) e (5 + u = 34)) ou ((5 = 15/3) e (8 > 12)), onde u = 29

3. Avalie as seguintes expressões lógicas:

(a) nao (7 <> 15 \ 2) ou verdadeiro e (4 − 6 > 4 − 20)


(b) (2 ∗ 5 > 3) ou (5 + 1 < 2) e (2 < 7 − 2)

4. Suponha que x seja uma variável do tipo real e considere a seguinte expressão lógica:

x∗x−4>5

Então, para quais valores de x a expressão lógica acima avalia para o valor falso?

5. Suponha que x seja uma variável do tipo logico. Então, escreva uma expressão lógica
envolvendo x que avalie para o valor falso se, e somente se, o valor de x for verdadeiro.

6. Suponha que x seja uma variável do tipo logico. Então, escreva uma expressão lógica
envolvendo x que avalie para o valor verdadeiro se, e somente se, o valor de x for falso.

7. Suponha que x seja uma variável do tipo inteiro. Então, escreva uma expressão lógica
envolvendo x que avalie para o valor verdadeiro se, e somente se, o valor de x for par ou
não for maior do que 11, mas não ambos.

8. Escreva um algoritmo para determinar se um aluno está aprovado ou reprovado em uma


disciplina baseando-se em sua porcentagem de faltas, média parcial e nota do exame final. Um
aluno para ser aprovado precisa cumprir as seguintes condições:

• Sua porcentagem de faltas não deve ultrapassar 25%;


• Sua média parcial deve ser igual ou maior que 7.0, ou a soma de sua média parcial e de
sua nota do exame final deve ser igual ou maior que 10.0.

Os valores de porcentagem de faltas, média parcial e nota do exame final do aluno devem ser
lidos pelo algoritmo. A saída do algoritmo deve ser "aluno aprovado"ou "aluno reprovado".

DIM0320 - DIMA P /UFRN P ROF. M ARCELO F. S IQUEIRA , E D . P ROF. U MBERTO S. C OSTA

Você também pode gostar