Capítulo 06: Condicionais II (SE-ENTAO-SENAO)

🎯 Objetivo da Aula

Raramente uma regra tem apenas um caminho. Geralmente temos o “Plano A” e o “Plano B”. Nesta aula, você aprenderá sobre a Estrutura de Decisão Composta. O objetivo é dominar o uso do senao para garantir que seu algoritmo sempre tenha uma resposta, independentemente do dado inserido.


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

Situação: O setor de expedição da FastLog precisa classificar as entregas. Regra: Se o prazo de entrega for de 2 dias ou menos, a carga é considerada URGENTE (Tarifa Vermelha). Caso contrário, a carga é NORMAL (Tarifa Verde).

Missão: Criar um classificador automático de prioridade de frete.


🧠 Fundamentos: A Teoria Traduzida

1. O que é o SENAO?

O senao é o caminho alternativo. Se a condição do se for falsa, o computador executa obrigatoriamente o que estiver dentro do senao.

🏫 Exemplo 1: Cotidiano (Notas)

se (nota >= 7) entao Aprovado senao Reprovado fimse

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

se (prazo_dias <= 2) entao Carga URGENTE senao Carga NORMAL fimse

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

2. A Sintaxe no VisuAlg

1
2
3
4
5
se (condicao) entao
   // Caminho Verdadeiro
senao
   // Caminho Falso
fimse

📖 Exemplo Guiado: Classificador de Frete

O senao é o caminho alternativo. Se a condição for falsa, o computador executa obrigatoriamente o que estiver no bloco alternativo.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
algoritmo "Triagem_Cargas"
var
   prazo : inteiro
inicio
   escreva("Prazo de entrega (dias): ")
   leia(prazo)
   
   se (prazo <= 2) entao
      escreval("--- [!] CARGA URGENTE [!] ---")
   senao
      escreval("--- CARGA NORMAL ---")
   fimse
fimalgoritmo

🛠️ Prática Obrigatória 1: Verificador de Estoque

Crie um programa que peça a quantidade_atual e a quantidade_minima. Se a atual for menor que a mínima, exiba “STATUS: Comprar Agora!”. Caso contrário, exiba “STATUS: Estoque OK”.

✅ Resultado Esperado

1
2
3
Qtd Atual: 5
Qtd Mínima: 10
STATUS: Comprar Agora!

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

Peça a senha do usuário. Se a senha digitada for “admin123”, exiba “Acesso Total Liberado”. Caso contrário, exiba “Erro: Senha Inválida”.

✅ Resultado Esperado

1
2
Digite a senha: 123
Erro: Senha Inválida

🔥 Desafio de Fixação (Opcional): Calculadora de Bônus

Crie um programa que peça o valor total de vendas de um colaborador. Se as vendas forem maiores que 5.000, o bônus é de 10%. Senão, o bônus é de apenas 5%. Exiba o valor final do bônus.


📤 Instruções de Entrega (Microsoft Teams)

Após validar seus códigos:

  1. O senao não possui condição própria (ele é o “resto”).
  2. Salve os arquivos com a extensão .alg (Ex: Atividade_06_SeuNome.alg).
  3. Envie no Microsoft Teams na tarefa “VisuAlg Cap 06 - Condicionais Compostas”.

🔑 Gabarito de Código

Prática 1:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
algoritmo "CheckEstoque"
var
   atual, minima : inteiro
inicio
   escreva("Atual: ") leia(atual)
   escreva("Mínima: ") leia(minima)
   se (atual < minima) entao
      escreval("STATUS: Comprar Agora!")
   senao
      escreval("STATUS: Estoque OK")
   fimse
fimalgoritmo

Desafio:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
algoritmo "Bonus"
var
   vendas, total_bonus : real
inicio
   escreva("Vendas: ") leia(vendas)
   se (vendas > 5000) entao
      total_bonus <- vendas * 0.10
   senao
      total_bonus <- vendas * 0.05
   fimse
   escreval("BÔNUS CALCULADO: R$ ", total_bonus)
fimalgoritmo