Operadores Lógicos
Operadores lógicos vêm de outro ramo da matemática: a álgebra, especialmente a álgebra elementar, que rege os princípios básicos da programação. Todas as linguagens de programação implementam, seja por formas primitivas ou sofisticadas, algum nível de lógica matemática. Em lógica matemática, a resolução de uma expressão pode resultar em apenas dois valores possíveis: verdadeiro e falso. Considerando que a implementação física de estruturas computacionais é feita considerando dois estados - passando corrente elétrica ou não em um circuito, estrutura magnetizada ou não em uma unidade de armazenamento de dados, etc -, pode-se dizer que a implementação física de um computador segue à risca os modelos clássicos de lógica matemática.
Para cada operador apresentado, será discutido também os princípios de cada operação lógica.
Disjunção (E
)
Em lógica, uma operação de disjunção terá resultado verdadeiro se os dois operandos forem verdadeiros. O resultado da operação será falso se pelo menos um dos operandos for falso.
Suponha duas sentenças:
“O universo é infinito” e “O ser humano é mortal”. Se construirmos uma frase juntando as duas primeiras frases:
“O universo é infinito e o ser humano é mortal.”
a frase é logicamente verdadeira. Agora, se montarmos uma frase modificando o primeiro operando (frase) para ser falso, teremos:
“O universo é finito e o ser humano é mortal.”
Por mais que “o ser humano é mortal” seja uma afirmação logicamente verdadeira, a afirmação como um todo é logicamente falsa.
Da mesma forma, em Portugol, suponha dois operandos do tipo Lógico, universoInfinito
e serHumanoMortal
. Atribuímos a eles o valor verdadeiro
e podemos usar o operador e
da seguinte forma:
Portugol IDE
logico universoInfinito <- verdadeiro, serHumanoMortal <- verdadeiro
escrever universoInfinito e serHumanoMortal
Portugol Studio
logico universoInfinito = verdadeiro, serHumanoMortal = verdadeiro
escreva(universoInfinito e serHumanoMortal)
Resposta em Console
verdadeiro
Ainda, podemos definir outras duas variáveis, nenhumMamiferoBotaOvos
(falso) e virusSaoMaioresQueBacterias
(falso) e combiná-las a título de exemplo.
Portugol IDE
logico universoInfinito <- verdadeiro, serHumanoMortal <- verdadeiro
logico nenhumMamiferoBotaOvos <- falso, virusSaoMaioresQueBacterias <- falso
escrever universoInfinito e serHumanoMortal
escrever universoInfinito e nenhumMamiferoBotaOvos
escrever virusSaoMaioresQueBacterias e serHumanoMortal
escrever virusSaoMaioresQueBacterias e nenhumMamiferoBotaOvos
Portugol Studio
logico universoInfinito = verdadeiro, serHumanoMortal = verdadeiro
logico nenhumMamiferoBotaOvos = falso, virusSaoMaioresQueBacterias = falso
escreva(universoInfinito e serHumanoMortal)
escreva(universoInfinito e nenhumMamiferoBotaOvos)
escreva(virusSaoMaioresQueBacterias e serHumanoMortal)
escreva(virusSaoMaioresQueBacterias e nenhumMamiferoBotaOvos)
Resposta em Console
verdadeiro
falso
falso
falso
Conjunção (OU
)
Em lógica, uma operação de conjunção terá resultado verdadeiro se pelo menos um dos dois operandos for verdadeiro. O resultado da operação será falso se ambos os operandos forem falsos.
Supondo as mesmas sentenças usadas como exemplo no operador de disjunção:
“O universo é infinito” (verdadeiro) “O ser humano é mortal” (verdadeiro) “Nenhum mamífero bota ovos” (falso) “Vírus são maiores que bactérias” (falso)
Se montarmos uma frase da seguinte forma:
“[Ou] o universo é infinito, ou nenhum mamífero bota ovos.”
Por mais que “Nenhum mamífero bota ovos” seja uma afirmação falsa, o resultado combinado das duas afirmações ainda é verdadeiro, porque “O universo é infinito” é uma afirmação verdadeira.
Portugol IDE
logico universoInfinito <- verdadeiro, serHumanoMortal <- verdadeiro
logico nenhumMamiferoBotaOvos <- falso, virusSaoMaioresQueBacterias <- falso
escrever universoInfinito ou serHumanoMortal
escrever universoInfinito ou nenhumMamiferoBotaOvos
escrever virusSaoMaioresQueBacterias ou serHumanoMortal
escrever virusSaoMaioresQueBacterias ou nenhumMamiferoBotaOvos
Portugol Studio
logico universoInfinito = verdadeiro, serHumanoMortal = verdadeiro
logico nenhumMamiferoBotaOvos = falso, virusSaoMaioresQueBacterias = falso
escreva(universoInfinito ou serHumanoMortal)
escreva(universoInfinito ou nenhumMamiferoBotaOvos)
escreva(virusSaoMaioresQueBacterias ou serHumanoMortal)
escreva(virusSaoMaioresQueBacterias ou nenhumMamiferoBotaOvos)
Resposta em Console
verdadeiro
verdadeiro
verdadeiro
falso
Negação (nao
)
Uma operação de negação, em lógica matemática, recebe um operando - que pode ser também uma expressão que resulta em um valor lógico, ou seja, verdadeiro
ou falso
- e inverte o seu valor.
Portugol IDE
logico minhaVariavel <- falso
escrever nao minhaVariavel
Portugol Studio
logico minhaVariavel = falso
escreva(nao(minhaVariavel))
Resposta em Console
verdadeiro