Lógica de Programação I - 1° Ano Técnico
Tabelas verdade sistemáticas
Leis de De Morgan
Lógica em Java
Abordagem sistemática para construção de tabelas verdade
Encontre as variáveis simples (p, q, r, ...)
Use a fórmula: 2ⁿ (n = número de proposições)
Monte colunas para proposições e operações
Siga o padrão sistemático V/F
Aplique os operadores lógicos
Sempre verifique seus cálculos testando com valores conhecidos
p | q | p ∧ q | ¬(p ∧ q) |
---|---|---|---|
V | V | V | F |
V | F | F | V |
F | V | F | V |
F | F | F | V |
A negação de (p E q) é falsa apenas quando ambas p e q são verdadeiras simultaneamente.
Equivalências fundamentais da lógica proposicional
"A negação de uma conjunção é igual à disjunção das negações"
"A negação de uma disjunção é igual à conjunção das negações"
"NÃO (está chovendo E está frio)"
"(NÃO está chovendo) OU (NÃO está frio)"
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));
}
}
Experimente diferentes expressões lógicas em tempo real
Experimente diferentes combinações para ver como os operadores lógicos funcionam!
Teste diferentes valores e observe que sempre dão o mesmo resultado!
Verifique a segunda lei de De Morgan na prática!
Maior precedência - executado primeiro
Precedência intermediária
Menor precedência - executado por último
p | q | ¬q | p ∨ ¬q |
---|---|---|---|
V | V | ||
V | F | ||
F | V | ||
F | F |
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");
}
}
}
Para permitir acesso, todas as condições devem ser verdadeiras:
Qual operador lógico garante que TODAS as condições sejam verdadeiras?
boolean podeAcessar =
usuarioValido && senhaCorreta &&
sistemaAtivo;
O operador && (E) garante que todas as três condições sejam verdadeiras!
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");
}
}
}
Complete as expressões lógicas para implementar as regras eleitorais brasileiras.
boolean podeVotar = idade >= 16; boolean votoObrigatorio = idade >= 18 && idade <= 70;
Construa e analise as tabelas verdade:
Prove usando tabelas verdade:
Livro pode ser emprestado se:
disponível ∧ ¬temMultas
Aluno aprovado se:
média ≥ 7 ∨ (média ≥ 5 ∧ fezRecuperação)
Acesso negado se:
¬usuárioVálido ∨ ¬senhaCorreta ∨ ¬sistemaAtivo
Você dominou os fundamentos da lógica proposicional, tabelas verdade e leis de De Morgan.
2ⁿ linhas para n proposições
¬(p ∧ q) ≡ ¬p ∨ ¬q
¬(p ∨ q) ≡ ¬p ∧ ¬q
¬ → ∧ → ∨
Avaliação Parcial - 19/08
Simples e compostas
Conjunção (E), disjunção (OU), negação (NÃO)
Construção e interpretação
Leis de De Morgan