Aula 09
Aula 09
Aula 09
E XPRESSÕES L ÓGICAS
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
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:
p e q.
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 é
e a disjunção de p e q é
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
p q p∧q
V V V
V F F
F V F
F F F
é 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
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
é 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
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
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.
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
(a > b + c) e (c <= 5 − a)
(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)
(a <> 4 + b) ou (2 ∗ 5 % c = 1) e (a <= 5 − c)
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.
é verdadeiro, pois
Por outro lado, se o operador ou tivesse maior prioridade do que o operador e, então
solução:
(a)
(b)
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)
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.
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".