Capítulo 07: Operadores Lógicos (E, OU, NAO)

🎯 Objetivo da Aula

No mundo real, as decisões raramente dependem de uma única coisa. Nesta aula, você aprenderá sobre os Operadores Lógicos. O objetivo é capacitar você a criar regras complexas, combinando várias condições em um único comando se.


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

Situação: Para uma carga ser liberada na alfândega da FastLog, ela precisa passar por dois critérios simultâneos. Regra: O motorista precisa ter o Manifesto de Carga E o Peso não pode ultrapassar 15.000 kg.

Missão: Criar um sistema de liberação automática que valide ambos os critérios ao mesmo tempo.


🧠 Fundamentos: A Teoria Traduzida

1. Operadores Lógicos (As Portas)

Eles servem para “grudar” as comparações:

🎬 Exemplo 1: Cotidiano (Cinema)

se (tem_ingresso e idade >= 16) entao Entrar fimse

🚢 Exemplo 2: Técnico (Liberação de Embarque)

se (tem_nota_fiscal e peso_carga <= 15000) entao Liberar Caminhão fimse

graph TD
    A[Início] --> B{"Tem NF E Peso <= Limite?"}
    B -- "Sim (Ambos)" --> C[LIBERAR]
    B -- "Não (Falhou um)" --> D[BARRAR]
    
    style B fill:#8e44ad,stroke:#fff,color:#fff
    style C fill:#2ecc71,stroke:#fff,color:#fff
    style D fill:#e74c3c,stroke:#fff,color:#fff

2. A Tabela da Verdade no VisuAlg

  • e: Só é verdadeiro se as duas condições forem verdadeiras.
  • ou: É verdadeiro se pelo menos uma das condições for verdadeira.
  • nao: Inverte o resultado (Verdade vira Falso).

📖 Exemplo Guiado: Portão Alfandegário

Operadores lógicos permitem combinar condições. O operador e exige que ambos sejam verdadeiros; o ou exige que pelo menos um seja.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
algoritmo "Liberacao_Alfandega"
var
   documento : logico
   peso : real
inicio
   escreva("Possui Manifesto? (V/F): ")
   leia(documento)
   escreva("Peso da Carga (Kg): ")
   leia(peso)
   
   se (documento = verdadeiro) e (peso <= 15000) entao
      escreval("STATUS: [LIBERADO]")
   senao
      escreval("STATUS: [RETIDO]")
   fimse
fimalgoritmo

🛠️ Prática Obrigatória 1: Verificador de Segurança

Crie um programa que peça se o funcionário tem cracha (V/F) OU se ele é um visitante_autorizado (V/F). Se qualquer um dos dois for verdadeiro, exiba a mensagem: “ACESSO PERMITIDO”.

✅ Resultado Esperado

1
2
3
Crachá: F
Visitante: V
ACESSO PERMITIDO

🛠️ Prática Obrigatória 2: Critério de Seleção FastLog

Um candidato só pode ser contratado se tiver idade >= 18 E formacao_concluida (V/F). Crie o programa que peça esses dados e exiba: “Candidato Apto para Contratação” ou “Candidato Não Atende aos Requisitos”.

✅ Resultado Esperado

1
2
3
Idade: 19
Formação: V
Candidato Apto para Contratação

🔥 Desafio de Fixação (Opcional): Liberação de Desconto

Crie um programa que peça se o cliente é VIP (V/F) OU se o valor_compra é maior que 1.000. Se uma dessas for verdade, exiba: “DESCONTO DE 10% LIBERADO”.


📤 Instruções de Entrega (Microsoft Teams)

Após validar seus códigos:

  1. Use o operador e para critérios rigorosos e ou para critérios flexíveis.
  2. Salve os arquivos com a extensão .alg (Ex: Atividade_07_SeuNome.alg).
  3. Envie no Microsoft Teams na tarefa “VisuAlg Cap 07 - Lógica Booleana”.

🔑 Gabarito de Código

Prática 1:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
algoritmo "CheckSeguranca"
var
   cracha, visitante : logico
inicio
   escreva("Crachá? ") leia(cracha)
   escreva("Visitante? ") leia(visitante)
   se (cracha = verdadeiro) ou (visitante = verdadeiro) entao
      escreval("ACESSO PERMITIDO")
   fimse
fimalgoritmo

Desafio:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
algoritmo "Desconto"
var
   vip : logico
   valor : real
inicio
   escreva("É VIP? ") leia(vip)
   escreva("Valor: ") leia(valor)
   se (vip = verdadeiro) ou (valor > 1000) entao
      escreval("DESCONTO DE 10% LIBERADO")
   fimse
fimalgoritmo