Capítulo 06: Condicionais Compostas (SE/SENAO)

🎯 Objetivo da Aula

Nesta aula, você aprenderá a lidar com o “Plano B”. O objetivo é dominar a estrutura SE/SENAO (if/else), que permite ao programa executar uma ação quando a condição é verdadeira e outra ação diferente quando a condição é falsa.


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

Situação: O RH da FastLog precisa de um sistema que valide a idade de novos estagiários. Regra de Negócio: Se o candidato tiver 18 anos ou mais, o sistema deve exibir “Candidato MAIOR de idade”. Caso contrário, deve exibir “Candidato MENOR de idade”.

Missão: Garantir que o sistema sempre dê uma resposta, independentemente da idade digitada.


🧠 Fundamentos: A Teoria Traduzida

🏫 Exemplo 1: Cotidiano (Notas)

se (nota >= 7) { Aprovado } senao { Reprovado }

🚛 Exemplo 2: Técnico (Prioridade de Entrega)

se (prazo_dias <= 2) { Carga URGENTE } senao { Carga NORMAL }

graph TD
    A[Início] --> B{Prazo <= 2 dias?}
    B -- "Sim (True)" --> C[Prioridade ALTA]
    B -- "Não (False)" --> D[Prioridade NORMAL]
    C --> E[Fim]
    D --> E
    
    style B fill:#8e44ad,stroke:#fff,color:#fff
    style C fill:#e74c3c,stroke:#fff,color:#fff
    style D fill:#2ecc71,stroke:#fff,color:#fff

3. A Sintaxe no Portugol

Observe como o senao vem logo após o fechamento da chave do se:

1
2
3
4
5
se (condicao) {
    // Código se for verdade
} senao {
    // Código se for mentira
}

📖 Exemplo Guiado: Validador de Acesso

O senao é o seu “Plano B”. Ele garante que o programa sempre dê uma resposta, mesmo quando a condição inicial é falsa:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
programa {
	funcao inicio() {
		inteiro idade
		
		escreva("Digite a idade do candidato: ")
		leia(idade)
		
		se (idade >= 18) {
			escreva("Candidato MAIOR de idade. Prosseguir.")
		} senao {
			escreva("Candidato MENOR de idade. Barrar.")
		}
	}
}

🛠️ Prática Obrigatória 1: Par ou Ímpar

Crie um programa que peça um número inteiro ao usuário. Se o resto da divisão por 2 (% 2) for igual a zero, exiba que o número é PAR. Caso contrário, exiba que é ÍMPAR.

✅ Resultado Esperado

1
2
Digite um número: 7
O número 7 é ÍMPAR

🛠️ Prática Obrigatória 2: Sistema de Login FastLog

Crie um programa que peça a senha do usuário. Se a senha for “fast123”, exiba “Acesso Total Liberado”. Senão, exiba “Acesso Negado - Tente Novamente”.

✅ Resultado Esperado

1
2
Digite a senha: 123
Acesso Negado - Tente Novamente

🔥 Desafio de Fixação (Opcional): Classificação de Frete

Peça o prazo de entrega em dias. Se o prazo for menor ou igual a 2 dias, exiba: “Carga URGENTE”. Caso contrário, exiba: “Carga NORMAL”.


📤 Instruções de Entrega (Microsoft Teams)

Após validar seus códigos:

  1. O senao nunca tem uma condição entre parênteses. Ele é o “caso contrário” automático.
  2. Salve os arquivos com a extensão .por (Ex: Atividade_06_SeuNome.por).
  3. Envie no Microsoft Teams na tarefa “Capítulo 06 - Condicional Composta”.

🔑 Gabarito de Código

Prática 1:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
programa {
	funcao inicio() {
		inteiro num
		escreva("Digite um número: ") leia(num)
		
		se (num % 2 == 0) {
			escreva("O número ", num, " é PAR")
		} senao {
			escreva("O número ", num, " é ÍMPAR")
		}
	}
}

Desafio:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
programa {
	funcao inicio() {
		inteiro prazo
		escreva("Prazo em dias: ") leia(prazo)
		se (prazo <= 2) {
			escreva("Carga URGENTE")
		} senao {
			escreva("Carga NORMAL")
		}
	}
}