Capítulo 07: Operadores Lógicos e Portas Booleanas (E, OU, NÃO)

🎯 Objetivo da Aula

No mundo real, uma decisão raramente depende de um único fator isolado. Uma carreta de alto valor não é liberada para cruzar a rodovia apenas porque o motorista tem carteira válida: ela precisa ao mesmo tempo ter a apólice de seguro aprovada E o rastreador via satélite ativo. No Scratch, combinamos múltiplos testes utilizando os Operadores Lógicos Booleanos.

Ao final desta aula, você será capaz de:

  1. Compreender o funcionamento das Portas Lógicas na computação: Conjunção (e), Disjunção (ou) e Negação (não).
  2. Dominar o uso dos blocos hexagonais verdes:
    • <[ ] e [ ]> (Ambas as condições precisam ser verdadeiras).
    • <[ ] ou [ ]> (Basta uma das condições ser verdadeira).
    • <não [ ]> (Inverte o resultado do teste).
  3. Construir um Validador de Checklist de Viagem Noturna e Segurança de Carga.

📥 Material de Apoio e Roteiro de Blocos:


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

Situação: A equipe de gerenciamento de risco da FastLog estabeleceu regras rígidas para a saída de caminhões com Cargas Especiais:

  • Regra 1 (Conjunção E): Para liberar a saída, o veículo precisa ter o Lacre Intacto (sim) E o Rastreador Ligado (sim). Se faltar qualquer um dos dois, a cancela não abre!
  • Regra 2 (Disjunção OU): Se a carga for de produtos perigosos, o motorista precisa ter o Curso MOPP (sim) OU estar acompanhado de um Instrutor Técnico (sim).

Missão: Programar o sistema de auditoria na guarita de segurança da FastLog utilizando expressões booleanas compostas.


🧠 Fundamentos: As Portas Lógicas no Scratch

1. O Operador Conjunção: <[ ] e [ ]>

Exige que todas as partes sejam verdadeiras simultaneamente:

Condição ACondição BResultado de <(A) e (B)>Ação no Pátio
VerdadeiroVerdadeiroVERDADEIRO✅ Cancela abre!
VerdadeiroFalsoFALSO❌ Bloqueado (falta B).
FalsoVerdadeiroFALSO❌ Bloqueado (falta A).
FalsoFalsoFALSO❌ Bloqueado total.

2. O Operador Disjunção: <[ ] ou [ ]>

Basta que pelo menos uma das condições seja verdadeira para que o bloco seja executado:

graph TD
    A["Início: Teste de Escolta ou Blindagem"] --> B{"<(Tem_Blindagem = 'sim') ou (Tem_Escolta = 'sim')>"}
    B -- "Pelo menos um SIM" --> C["LIBERADO: Nível de segurança aceitável."]
    B -- "Ambos NÃO" --> D["BLOQUEIO: Risco crítico de sinistro!"]
    
    style B fill:#f39c12,stroke:#fff,stroke-width:2px,color:#fff
    style C fill:#27ae60,stroke:#fff,stroke-width:2px,color:#fff
    style D fill:#c0392b,stroke:#fff,stroke-width:2px,color:#fff

3. O Operador Negação: <não [ ]>

Inverte a polaridade do resultado:

  • Se o teste for falso, <não [falso]> se transforma em Verdadeiro.
  • Exemplo logístico: <não <tocando em [cancela]?>> significa “enquanto não estiver encostando na cancela”.

📖 Exemplo Guiado: Checklist de Saída da Portaria

Passo a Passo no Scratch 3.0:

  1. Crie as variáveis: Lacre_Ok e Rastreador_Ok.
  2. Adicione o ator Auditor_Segurança e monte o script:
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
quando clicar em 🏁
pergunte [O lacre do baú está intacto? (sim/nao):] e espere
mude [Lacre_Ok v] para (resposta)

pergunte [O sinal do rastreador via satélite está ativo? (sim/nao):] e espere
mude [Rastreador_Ok v] para (resposta)

se <<(Lacre_Ok) = [sim]> e <(Rastreador_Ok) = [sim]>> então
    mude o efeito [cor v] para (50) // Verde
    toque o som [Bell v]
    diga [AUDITORIA APROVADA: Veículo seguro para trânsito rodoviário!] por (3) segundos
senão
    mude o efeito [cor v] para (0) // Vermelho
    toque o som [Buzz v]
    diga [SAÍDA NEGADA: Risco de segurança! Verifique lacre e sinal.] por (3) segundos
fim

🛠️ Prática Obrigatória 1: Autorização de Transporte de Produtos Perigosos

O Desafio:

Para conduzir um caminhão-tanque de combustível da FastLog:

  1. Pergunte se o motorista possui a certificação especial MOPP: [Possui certificado MOPP? (sim/nao):] e salve em Tem_MOPP.
  2. Pergunte se o caminhão possui extintor de incêndio pressurizado: [Extintor inspecionado? (sim/nao):] e salve em Extintor_Ok.
  3. Use o operador <[ ] e [ ]>:
    • Se possuir MOPP E o extintor estiver ok: Exiba [TRANSPORTE PERIGOSO AUTORIZADO] com som de aprovação.
    • Senão: Exiba [VIOLAÇÃO DE NORMAS AMBIENTAIS: Caminhão retido no box de segurança!].

🛠️ Prática Obrigatória 2: Acesso Preferencial por Tag ou Emergência

Crie um sistema de cancela automática com o operador <[ ] ou [ ]>:

  1. Crie as variáveis Tem_Tag_Pedagio e Veiculo_Emergencia.
  2. Pergunte se o veículo possui a Tag eletrônica da FastLog (sim/nao).
  3. Pergunte se é um veículo de emergência/ambulância (sim/nao).
  4. Se Tem_Tag_Pedagio = 'sim' OU Veiculo_Emergencia = 'sim':
    • A cancela abre imediatamente: diga [FAIXA EXPRESSA LIBERADA: Siga em frente sem parar.].
  5. Senão:
    • diga [PARE: Dirija-se à cabine de atendimento manual para pesagem.].

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo do projeto com o nome: Atividade_07_SeuNome_SeuSobrenome.sb3.
  2. Teste todas as 4 combinações possíveis (sim/sim, sim/nao, nao/sim, nao/nao).
  3. No Microsoft Teams, envie na tarefa “Scratch Cap 07 - Operadores Lógicos”.
  4. Clique em Entregar (Turn In).

💡 Checkpoint de Lógica & Engenharia de Software

Você acabou de aplicar os conceitos de Álgebra Booleana de George Boole (1854). Esses mesmos blocos lógicos são a fundação física de todas as portas eletrônicas (AND, OR, NOT) existentes nos processadores Intel, AMD e Apple Silicon modernos.


🔥 Desafio de Fixação: Validação de Três Condições Aninhadas

Para uma carreta bitrem viajar à noite, são exigidos: (Descanso_Motorista = 'sim') E (Clima_Bom = 'sim') E (Pressao_Pneus = 'sim'). Encaixe dois blocos <[ ] e [ ]> (um dentro do outro) para avaliar as 3 regras simultaneamente!


🔑 Gabarito de Código (Blocos do Scratch)

Prática 1:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
[Ator: Guarita_Seguranca]
quando clicar em 🏁
pergunte [Possui certificado MOPP? (sim/nao):] e espere
mude [Tem_MOPP v] para (resposta)
pergunte [Extintor inspecionado? (sim/nao):] e espere
mude [Extintor_Ok v] para (resposta)

se <<(Tem_MOPP) = [sim]> e <(Extintor_Ok) = [sim]>> então
    toque o som [Chime v]
    diga [TRANSPORTE PERIGOSO AUTORIZADO!] por (3) segundos
senão
    toque o som [Buzz v]
    diga [VIOLAÇÃO DE NORMAS AMBIENTAIS: Caminhão retido no box de segurança!] por (3) segundos
fim

Prática 2:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
[Ator: Cancela_Expressa]
quando clicar em 🏁
pergunte [Possui Tag eletrônica FastLog? (sim/nao):] e espere
mude [Tem_Tag_Pedagio v] para (resposta)
pergunte [É um veículo de emergência? (sim/nao):] e espere
mude [Veiculo_Emergencia v] para (resposta)

se <<(Tem_Tag_Pedagio) = [sim]> ou <(Veiculo_Emergencia) = [sim]>> então
    mude para a fantasia [Aberta v]
    diga [FAIXA EXPRESSA LIBERADA: Siga em frente sem parar.] por (3) segundos
senão
    diga [PARE: Dirija-se à cabine de atendimento manual para pesagem.] por (3) segundos
fim

Desafio:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
[Ator: Torre_Controle]
quando clicar em 🏁
pergunte [Motorista descansado? (sim/nao):] e espere
mude [Descanso v] para (resposta)
pergunte [Condições climáticas boas? (sim/nao):] e espere
mude [Clima v] para (resposta)
pergunte [Pneus calibrados? (sim/nao):] e espere
mude [Pneus v] para (resposta)

se <<<(Descanso) = [sim]> e <(Clima) = [sim]>> e <(Pneus) = [sim]>> então
    diga [CONDIÇÃO PERFEITA: Viagem noturna autorizada com segurança máxima!] por (3) segundos
senão
    diga [BLOQUEIO NOTURNO: Pelo menos uma condição de segurança foi violada!] por (3) segundos
fim

📥 Download do Roteiro Completo desta Aula:
Baixe o arquivo consolidado Capitulo_07.txt ou o pacote compactado (.zip) com os scripts e desafios da aula.


📝 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. O que o operador <[ ] e [ ]> exige para que o resultado final seja Verdadeiro?
  2. O que o operador <[ ] ou [ ]> exige para que o resultado final seja Verdadeiro?
  3. O que o operador <não [ ]> faz ao resultado de um teste?
  4. No Exemplo Guiado, quais são os nomes das duas variáveis criadas para o checklist de saída da portaria?
  5. No Exemplo Guiado, quais duas condições precisam ser “sim” simultaneamente para a “AUDITORIA APROVADA”?
  6. Na Prática Obrigatória 1, quais dois requisitos, combinados com o operador e, autorizam o “TRANSPORTE PERIGOSO”?
  7. Na Prática Obrigatória 2, quais duas condições, combinadas com o operador ou, liberam a “FAIXA EXPRESSA”?
  8. Segundo o Checkpoint, quem formulou a Álgebra Booleana, e em que ano?
  9. Segundo o Checkpoint, que tipo de processadores modernos foram citados como exemplo de porta lógica física AND/OR/NOT?
  10. No Exemplo Guiado, que valor é usado no bloco mude o efeito [cor v] para para indicar a aprovação (cor verde) da auditoria?