Capítulo 07: Operadores Lógicos e Álgebra Booleana (E, OU, NAO, XOU)

🎯 Objetivo da Aula

Na vida prática de uma transportadora, raramente uma decisão depende de apenas um fator isolado. Para liberar o embarque de um caminhão, por exemplo, o motorista precisa estar com o exame médico válido E o veículo precisa ter o tacógrafo inspecionado OU possuir escolta autorizada.

Nesta aula, você aprenderá a:

  1. Compreender a Álgebra Booleana e o funcionamento das Tabelas-Verdade.
  2. Dominar a conjunção e (AND), a disjunção ou (OR), a negação nao (NOT) e a disjunção exclusiva xou (XOR).
  3. Utilizar Parênteses de Agrupamento para definir a precedência exata de testes compostos.
  4. Construir filtros rigorosos de auditoria e conformidade corporativa (Compliance).

📥 Material de Apoio e Código-Fonte da Aula:


🏢 O Cenário Prático (Seu Desafio)

Situação: A diretoria da FastLog instituiu o Programa de Qualificação de Fornecedores (Selo Ouro). Para que uma transportadora parceira receba o Selo Ouro e tenha prioridade de carregamento, ela deve atender simultaneamente aos seguintes requisitos:

  1. Ter uma taxa de pontualidade maior ou igual a 90%.
  2. Ter uma taxa de avarias de carga menor ou igual a 2%.
  3. NÃO possuir nenhuma pendência jurídica ou fiscal ativa.

Missão: Você deve criar o algoritmo de auditoria que avalie os três critérios em uma única expressão booleana combinada e emita a homologação do fornecedor.


🧠 Fundamentos: As Tabelas-Verdade dos Operadores Booleanos

1. O Operador e (Conjunção / AND)

O operador e só resulta em VERDADEIRO se TODAS as condições forem verdadeiras ao mesmo tempo:

Expressão AExpressão BA e B
VERDADEIROVERDADEIROVERDADEIRO
VERDADEIROFALSOFALSO
FALSOVERDADEIROFALSO
FALSOFALSOFALSO

2. O Operador ou (Disjunção / OR)

O operador ou resulta em VERDADEIRO se PELO MENOS UMA das condições for verdadeira:

Expressão AExpressão BA ou B
VERDADEIROVERDADEIROVERDADEIRO
VERDADEIROFALSOVERDADEIRO
FALSOVERDADEIROVERDADEIRO
FALSOFALSOFALSO

3. O Operador nao (Negação / NOT) e xou (XOR)

  • nao: Inverte o estado booleano (nao VERDADEIRO vira FALSO; nao FALSO vira VERDADEIRO).
  • xou (Ou Exclusivo): Resulta em VERDADEIRO se uma e apenas uma das opções for verdadeira (se ambas forem iguais, vira FALSO). Exemplo: uma promoção de frete grátis é válida se o cliente é novo xou se ele indicou um amigo (mas não as duas coisas ao mesmo tempo, para evitar acúmulo de benefícios): freteGratis <- clienteNovo xou indicouAmigo.
graph TD
    A["Expressão: (Pontualidade >= 90) e (Avarias <= 2) e (nao PendenciaFiscal)"] --> B{Avaliação Booleana}
    B -- "Todos V" --> C["Resultado: VERDADEIRO -> SELO OURO HOMOLOGADO!"]
    B -- "Qualquer F" --> D["Resultado: FALSO -> FORNECEDOR REPROVADO"]
    
    style B fill:#8e44ad,stroke:#fff,stroke-width:2px,color:#fff
    style C fill:#217346,stroke:#fff,stroke-width:2px,color:#fff
    style D fill:#c0392b,stroke:#fff,stroke-width:2px,color:#fff

Digitando valores logico com leia()
Ao usar leia() para preencher uma variável logico, o VisuAlg aceita as abreviações V e F como atalho para VERDADEIRO e FALSO — não é necessário digitar a palavra inteira.


📖 Exemplo Guiado: Auditoria de Homologação de Fornecedores

Código do Algoritmo:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
algoritmo "Auditoria_Selo_Ouro"
var
   transportadora : caractere
   taxaPontualidade, taxaAvarias : real
   temPendenciaFiscal, homologado : logico

inicio
   escreval("=== AUDITORIA DE COMPLIANCE FASTLOG ===")
   escreva("Nome da Transportadora Parceira: ")
   leia(transportadora)
   escreva("Taxa de Pontualidade Histórica (%): ")
   leia(taxaPontualidade)
   escreva("Índice de Avarias de Carga (%): ")
   leia(taxaAvarias)
   escreva("Possui pendências jurídicas/fiscais? (V/F): ")
   leia(temPendenciaFiscal)

   // Expressão Lógica Composta com E e NAO
   homologado <- (taxaPontualidade >= 90.0) e (taxaAvarias <= 2.0) e (nao temPendenciaFiscal)

   escreval("")
   escreval("--- RESULTADO DA HOMOLOGAÇÃO ---")
   escreval("Parceiro Avaliado: ", transportadora)

   se (homologado) entao
      escreval("PARECER : [HOMOLOGADO] -> CONCESSÃO DO SELO OURO!")
      escreval("STATUS  : Liberado para contratos de alta prioridade.")
   senao
      escreval("PARECER : [NÃO HOMOLOGADO] -> CRITÉRIOS NÃO ATINGIDOS.")
      escreval("STATUS  : Necessário plano de ação corretivo.")
   fimse
fimalgoritmo

✅ Exemplo de Execução no Console (F9):

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
=== AUDITORIA DE COMPLIANCE FASTLOG ===
Nome da Transportadora Parceira: TransLog Express
Taxa de Pontualidade Histórica (%): 94.5
Índice de Avarias de Carga (%): 1.2
Possui pendências jurídicas/fiscais? (V/F): F

--- RESULTADO DA HOMOLOGAÇÃO ---
Parceiro Avaliado: TransLog Express
PARECER : [HOMOLOGADO] -> CONCESSÃO DO SELO OURO!
STATUS  : Liberado para contratos de alta prioridade.

🛠️ Prática Obrigatória 1: Liberação de Embarque na Portaria

Passo 1: O Desafio

Crie um algoritmo "Liberacao_Portaria" que avalie as seguintes regras de segurança: Um caminhão só pode cruzar a cancela de saída se:

  • A carga estiver totalmente lacrada (lacreConferido = VERDADEIRO) E
  • O motorista possuir documento fiscal impresso (temNotaFiscal = VERDADEIRO) OU possuir autorização da diretoria (autorizacaoDiretoria = VERDADEIRO).

✅ Resultado Esperado (Prática 1):

1
2
3
4
5
Lacre conferido? (V/F): V
Possui Nota Fiscal? (V/F): F
Autorização da Diretoria? (V/F): V

STATUS DA CANCELA: CANCELA ABERTA! Embarque autorizado.

🛠️ Prática Obrigatória 2: Detector de Risco em Rota Noturna

Um alerta de perigo deve ser emitido se o caminhão estiver trafegando em horário noturno (hora >= 22 ou hora < 5) E estiver transportando carga de alto valor (valor > 50000) E estiver com o rastreador desligado (nao rastreadorLigado). Crie o algoritmo "Detector_Risco_Noturno" informando se a viagem apresenta risco crítico de segurança.


📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_07_SeuNome_SeuSobrenome.alg.
  2. Valide as tabelas-verdade testando diferentes combinações de V e F.
  3. No Microsoft Teams, envie na tarefa “VisuAlg Cap 07 - Operadores Lógicos”.
  4. Clique em Entregar (Turn In).

💡 Checkpoint de Lógica & Engenharia de Software

Você acabou de aplicar os princípios fundamentais das Portas Lógicas Digitais (AND, OR, NOT, XOR). Todos os chips de silício, processadores e memórias são construídos combinando bilhões de transistores que executam fisicamente essas mesmas operações booleanas.


🔥 Desafio de Fixação: Avaliador de Bônus Trimestral

Crie um algoritmo que verifique se uma equipe de logística tem direito ao bônus anual:

  • A meta de entregas deve ser batida (entregasFeitas >= metaEntregas) E
  • O índice de reclamações no SAC deve ser menor que 3 E
  • O custo com combustível deve estar dentro do orçamento (gastoDiesel <= orcamentoDiesel).

🔑 Gabarito de Código Completo

Prática 1:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
algoritmo "Liberacao_Portaria"
var
   lacreConferido, temNotaFiscal, autorizacaoDiretoria, podeLiberar : logico
inicio
   escreva("Lacre conferido? (V/F): ") leia(lacreConferido)
   escreva("Possui Nota Fiscal? (V/F): ") leia(temNotaFiscal)
   escreva("Autorização da Diretoria? (V/F): ") leia(autorizacaoDiretoria)

   podeLiberar <- lacreConferido e (temNotaFiscal ou autorizacaoDiretoria)

   escreval("")
   se (podeLiberar) entao
      escreval("STATUS DA CANCELA: CANCELA ABERTA! Embarque autorizado.")
   senao
      escreval("STATUS DA CANCELA: BLOQUEADA! Pendência de conformidade.")
   fimse
fimalgoritmo

Prática 2:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
algoritmo "Detector_Risco_Noturno"
var
   hora : inteiro
   valorCarga : real
   rastreadorLigado, horarioNoturno, riscoCritico : logico
inicio
   escreva("Hora da Viagem (0 a 23): ") leia(hora)
   escreva("Valor da Carga (R$): ") leia(valorCarga)
   escreva("Rastreador Satelital Ligado? (V/F): ") leia(rastreadorLigado)

   horarioNoturno <- (hora >= 22) ou (hora < 5)
   riscoCritico <- horarioNoturno e (valorCarga > 50000.00) e (nao rastreadorLigado)

   escreval("")
   se (riscoCritico) entao
      escreval("[ALERTA VERMELHO] VIAGEM EM RISCO CRÍTICO! Acionar Torre de Controle.")
   senao
      escreval("[STATUS NORMAL] Parâmetros de segurança dentro dos limites aceitáveis.")
   fimse
fimalgoritmo

Desafio:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
algoritmo "Bonus_Trimestral"
var
   entregasFeitas, metaEntregas, reclamacoesSAC : inteiro
   gastoDiesel, orcamentoDiesel : real
   temDireitoBonus : logico
inicio
   metaEntregas <- 1000
   orcamentoDiesel <- 45000.00

   escreva("Total de Entregas Realizadas: ") leia(entregasFeitas)
   escreva("Reclamações Registradas no SAC: ") leia(reclamacoesSAC)
   escreva("Gasto Total com Diesel (R$): ") leia(gastoDiesel)

   temDireitoBonus <- (entregasFeitas >= metaEntregas) e (reclamacoesSAC < 3) e (gastoDiesel <= orcamentoDiesel)

   escreval("")
   se (temDireitoBonus) entao
      escreval(">>> PARABÉNS! BÔNUS TRIMESTRAL APROVADO PARA TODA A EQUIPE.")
   senao
      escreval(">>> BÔNUS NÃO LIBERADO. Uma ou mais metas corporativas foram violadas.")
   fimse
fimalgoritmo

📝 Atividade Extra: Questionário de Fixação (Caderno)

Instruções: Responda no caderno, de próprio punho, as 10 perguntas abaixo com base no que foi estudado neste capítulo. Ao concluir, leve o caderno até o professor para correção e visto.

  1. Segundo a tabela-verdade do capítulo, quando o operador e (AND) resulta em VERDADEIRO?
  2. Segundo a tabela-verdade do capítulo, quando o operador ou (OR) resulta em VERDADEIRO?
  3. O que faz o operador nao (NOT) com um valor booleano?
  4. Segundo o capítulo, em que condição o operador xou (Ou Exclusivo) resulta em VERDADEIRO?
  5. No Cenário Prático, quais são os três requisitos que uma transportadora parceira deve atender simultaneamente para receber o Selo Ouro?
  6. No Exemplo Guiado (Auditoria de Homologação de Fornecedores), qual expressão lógica composta foi utilizada para calcular a variável homologado?
  7. Na Prática Obrigatória 1 (Liberação de Embarque na Portaria), quais condições, combinadas com e e ou, permitem que o caminhão cruze a cancela de saída?
  8. Na Prática Obrigatória 2 (Detector de Risco em Rota Noturna), quais três condições, combinadas com e, caracterizam risco crítico de segurança?
  9. Segundo o Checkpoint de Lógica, quais quatro Portas Lógicas Digitais o capítulo cita como fundamentais na construção física de chips e processadores?
  10. Segundo as Instruções de Entrega, o que deve ser validado ao testar diferentes combinações de V e F no programa?