Capítulo 07: Operadores Relacionais e Lógicos

🎯 Objetivo da Aula

O mundo real raramente é resolvido com apenas uma pergunta simples. Nesta aula, você aprenderá a combinar várias condições em uma única linha. O objetivo é dominar as Portas Lógicas (e, ou, nao), permitindo que seu programa tome decisões baseadas em vários critérios simultâneos.


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

Situação: A FastLog está contratando motoristas de caminhão. Regras de Contratação: O candidato deve ter mais de 21 anos E possuir Habilitação Categoria D.

Missão: Criar um filtro automático que só aprove quem atender a ambos os requisitos ao mesmo tempo.


🧠 Fundamentos: A Teoria Traduzida

1. Operadores Relacionais (Revisão)

São os comparadores que já vimos: ==, !=, >, <, >=, <=. Eles sempre devolvem verdadeiro ou falso.

2. Operadores Lógicos (As Portas)

Eles servem para “grudar” os relacionais:

🎬 Exemplo 1: Cotidiano (Cinema)

se (tem_ingresso e idade >= 16) { Entrar }

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

se (tem_nota_fiscal e peso_carga <= limite) { Liberar Caminhão }

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

📖 Exemplo Guiado: Filtro de Contratação

Vamos programar a lógica da FastLog que exige dois critérios simultâneos (Porta e):

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
programa {
	funcao inicio() {
		inteiro idade
		cadeia categoria
		
		escreva("Digite sua idade: ")
		leia(idade)
		escreva("Digite sua categoria de CNH (A, B, C, D): ")
		leia(categoria)
		
		se (idade > 21 e categoria == "D") {
			escreva("Parabéns! Você está apto para a vaga de Motorista.")
		} senao {
			escreva("Infelizmente você não atende aos requisitos mínimos.")
		}
	}
}

🛠️ Prática Obrigatória 1: Aprovador de Empréstimo

Crie um programa que peça o Salário e a Idade de um cliente. O empréstimo só será aprovado se o Salário for maior que 2000 E a Idade for maior ou igual a 18.

✅ Resultado Esperado

1
2
3
Informe seu salário: 2500.0
Informe sua idade: 20
Empréstimo APROVADO!

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

Um candidato no pátio só pode ser contratado se tiver idade >= 18 E a formacao_concluida for igual a verdadeiro. Crie um programa que valide essa contratação.

✅ Resultado Esperado

1
2
3
Idade: 19
Formação Concluída (verdadeiro/falso): verdadeiro
Candidato Qualificado para Contratação.

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

Crie um programa que peça se o motorista Tem Nota Fiscal (lógico) e se o Peso da Carga está abaixo de 10.000 kg. O caminhão só é liberado se ambas as condições forem verdadeiras.


📤 Instruções de Entrega (Microsoft Teams)

Após validar seus códigos:

  1. O operador e exige que todas as partes sejam verdadeiras para o se ser executado.
  2. Salve os arquivos com a extensão .por (Ex: Atividade_07_SeuNome.por).
  3. Envie no Microsoft Teams na tarefa “Capítulo 07 - Operadores Lógicos”.

🔑 Gabarito de Código

Prática 1:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
programa {
	funcao inicio() {
		real salario
		inteiro idade
		escreva("Salário: ") leia(salario)
		escreva("Idade: ") leia(idade)
		
		se (salario > 2000 e idade >= 18) {
			escreva("Empréstimo APROVADO!")
		} senao {
			escreva("Empréstimo NEGADO.")
		}
	}
}

Desafio:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
programa {
	funcao inicio() {
		logico tem_nf
		real peso
		escreva("Tem NF? ") leia(tem_nf)
		escreva("Peso: ") leia(peso)
		
		se (tem_nf == verdadeiro e peso <= 10000) {
			escreva("EMBARQUE LIBERADO")
		} senao {
			escreva("EMBARQUE BARRADO")
		}
	}
}