LP I

Tabelas Verdade & Leis de De Morgan

Lógica de Programação I - 1° Ano Técnico

1 / 13

Tabelas Verdade

& Leis de De Morgan

1

Construir

Tabelas verdade sistemáticas

2

Aplicar

Leis de De Morgan

3

Implementar

Lógica em Java

Metodologia: 5 Passos

Abordagem sistemática para construção de tabelas verdade

1

Identificar Proposições

Encontre as variáveis simples (p, q, r, ...)

2

Calcular Linhas

Use a fórmula: 2ⁿ (n = número de proposições)

3

Criar Estrutura

Monte colunas para proposições e operações

4

Preencher Valores

Siga o padrão sistemático V/F

5

Calcular Resultado

Aplique os operadores lógicos

💡 Dica Profissional

Sempre verifique seus cálculos testando com valores conhecidos

Exemplo Prático: ¬(p ∧ q)

Análise Estrutural

Proposições: p, q
Quantidade: 2 proposições
Linhas: 2² = 4 linhas

Sequência de Operações:

1
p ∧ q (conjunção)
2
¬(p ∧ q) (negação)

Tabela Verdade

p q p ∧ q ¬(p ∧ q)
V V V F
V F F V
F V F V
F F F V

📊 Interpretação

A negação de (p E q) é falsa apenas quando ambas p e q são verdadeiras simultaneamente.

Leis de De Morgan

Equivalências fundamentais da lógica proposicional

1

Primeira Lei

¬(p ∧ q) ≡ ¬p ∨ ¬q

"A negação de uma conjunção é igual à disjunção das negações"

2

Segunda Lei

¬(p ∨ q) ≡ ¬p ∧ ¬q

"A negação de uma disjunção é igual à conjunção das negações"

Exemplo Intuitivo

🌧️ Situação Original

"NÃO (está chovendo E está frio)"

Significa: Não é verdade que está chovendo e frio ao mesmo tempo

⚖️ Aplicando De Morgan

"(NÃO está chovendo) OU (NÃO está frio)"

Significa: Ou não está chovendo, ou não está frio (ou ambos)

Implementação em Java

DeMorganExample.java

public class DeMorganExample {
    public static void main(String[] args) {
        // Variáveis de exemplo
        boolean chovendo = true;
        boolean frio = false;
        
        // Lei 1: !(p && q) ≡ !p || !q
        boolean original1 = !(chovendo && frio);    // true
        boolean deMorgan1 = !chovendo || !frio;     // true
        
        // Lei 2: !(p || q) ≡ !p && !q
        boolean original2 = !(chovendo || frio);    // false
        boolean deMorgan2 = !chovendo && !frio;     // false
        
        // Verificação das equivalências
        System.out.println("Lei 1 - Equivalentes: " + (original1 == deMorgan1));
        System.out.println("Lei 2 - Equivalentes: " + (original2 == deMorgan2));
    }
}

💻 Saída do Programa

Lei 1 - Equivalentes: true
Lei 2 - Equivalentes: true

🎯 Pontos-chave

  • As expressões são logicamente equivalentes
  • Útil para simplificar condições complexas
  • Melhora legibilidade do código

Simulador de Tabelas Verdade

Experimente diferentes expressões lógicas em tempo real

🎮 Controles Interativos

📊 Resultado em Tempo Real

p
V
q
V
Expressão:
p ∧ q
Resultado:
V

💡 Dica Interativa

Experimente diferentes combinações para ver como os operadores lógicos funcionam!

🎯 Desafio: Teste as Leis de De Morgan

1. Compare ¬(p ∧ q) com ¬p ∨ ¬q

Teste diferentes valores e observe que sempre dão o mesmo resultado!

2. Compare ¬(p ∨ q) com ¬p ∧ ¬q

Verifique a segunda lei de De Morgan na prática!

Precedência de Operadores

Hierarquia de Precedência

1

¬ (NÃO)

Maior precedência - executado primeiro

2

∧ (E)

Precedência intermediária

3

∨ (OU)

Menor precedência - executado por último

Exemplo Prático

Expressão: ¬p ∧ q ∨ r

1
¬p (negação primeiro)
2
(¬p) ∧ q (conjunção)
3
((¬p) ∧ q) ∨ r (disjunção)

🎯 Resultado Final

((¬p) ∧ q) ∨ r

Atividade Prática 1

Complete a Tabela Verdade: p ∨ ¬q

p q ¬q p ∨ ¬q
V V
V F
F V
F F

Atividade Prática 2

Aplique as Leis de De Morgan

1. ¬(p ∧ q) =
2. ¬(p ∨ q) =
3. ¬(¬p ∧ q) =
4. ¬(p ∨ ¬q) =

Projeto Prático: Sistema de Acesso

SistemaAcesso.java

public class SistemaAcesso {
    public static void main(String[] args) {
        boolean usuarioValido = true;
        boolean senhaCorreta = false;
        boolean sistemaAtivo = true;
        
        // Complete a condição:
        boolean podeAcessar = ___;
        
        if (podeAcessar) {
            System.out.println("✅ Acesso permitido");
        } else {
            System.out.println("❌ Acesso negado");
        }
    }
}

🤔 Análise do Problema

Para permitir acesso, todas as condições devem ser verdadeiras:

  • Usuário deve ser válido
  • Senha deve estar correta
  • Sistema deve estar ativo

💡 Dica

Qual operador lógico garante que TODAS as condições sejam verdadeiras?

Projeto Avançado: Sistema de Votação

ValidacaoIdade.java

import java.util.Scanner;

public class ValidacaoIdade {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        
        System.out.print("Digite sua idade: ");
        int idade = scanner.nextInt();
        
        // Regras:
        // Pode votar: idade >= 16
        // Voto obrigatório: 18 <= idade <= 70
        
        boolean podeVotar = _______;
        boolean votoObrigatorio = _______;
        
        if (podeVotar) {
            if (votoObrigatorio) {
                System.out.println("🗳️ Voto obrigatório");
            } else {
                System.out.println("📝 Voto facultativo");
            }
        } else {
            System.out.println("❌ Não pode votar");
        }
    }
}

📊 Regras Eleitorais

16+
Pode votar (facultativo)
18-70
Voto obrigatório
70+
Pode votar (facultativo)

🎯 Desafio

Complete as expressões lógicas para implementar as regras eleitorais brasileiras.

Exercícios de Consolidação

📊 Exercício 1: Tabelas Especiais

Construa e analise as tabelas verdade:

  • a) p ∧ ¬p (contradição)
  • b) p ∨ ¬p (tautologia)
  • c) ¬(p ∧ q) ∨ r

⚖️ Exercício 2: Equivalências

Prove usando tabelas verdade:

  • a) ¬(p ∨ q) ≡ ¬p ∧ ¬q
  • b) p ∧ (q ∨ r) ≡ (p ∧ q) ∨ (p ∧ r)

💼 Exercício 3: Casos Reais

Sistema de Biblioteca

Livro pode ser emprestado se:

disponível ∧ ¬temMultas

Sistema de Notas

Aluno aprovado se:

média ≥ 7 ∨ (média ≥ 5 ∧ fezRecuperação)

Sistema de Segurança

Acesso negado se:

¬usuárioVálido ∨ ¬senhaCorreta ∨ ¬sistemaAtivo

🎯 Metodologia de Resolução

  1. 1. Identifique as proposições
  2. 2. Determine as operações lógicas
  3. 3. Construa a tabela sistematicamente
  4. 4. Verifique os resultados
  5. 5. Interprete o significado prático

Missão Cumprida!

Você dominou os fundamentos da lógica proposicional, tabelas verdade e leis de De Morgan.

✅ Competências Desenvolvidas

Construção sistemática de tabelas verdade
Aplicação das Leis de De Morgan
Precedência de operadores lógicos
Implementação prática em Java
Resolução de problemas reais

🎯 Conceitos-chave

Tabelas Verdade

2ⁿ linhas para n proposições

Leis de De Morgan

¬(p ∧ q) ≡ ¬p ∨ ¬q

¬(p ∨ q) ≡ ¬p ∧ ¬q

Precedência

¬ → ∧ → ∨

🚀 Próxima Jornada

Avaliação Parcial - 19/08

Proposições

Simples e compostas

Operadores Lógicos

Conjunção (E), disjunção (OU), negação (NÃO)

Tabelas verdade

Construção e interpretação

Equivalências lógicas

Leis de De Morgan