Capítulo 05: Estruturas Condicionais Simples (SE-ENTAO-FIMSE)
🎯 Objetivo da Aula
Um programa que apenas segue uma linha reta sem desvios é limitado. O verdadeiro poder da computação surge quando o algoritmo é capaz de avaliar uma condição lógica e decidir se deve ou não executar um determinado bloco de instruções.
Nesta aula, você aprenderá a:
- Compreender o conceito de Desvio de Fluxo Condicional Simples.
- Dominar a sintaxe da estrutura
se (condicao) entao ... fimse. - Utilizar com maestria todos os Operadores Relacionais do VisuAlg (
=,<>,>,<,>=,<=). - Implementar regras de negócio e travas de segurança em sistemas corporativos.
📥 Material de Apoio e Código-Fonte da Aula:
- 📄 Arquivo Pronto (.alg): Baixar Capitulo_05.alg (abra diretamente no VisuAlg 3.0)
- 📦 Exercícios Separados (.zip): Baixar Capitulo_05.zip
🏢 O Cenário Prático (Seu Desafio)
Situação: A balança da rodovia que dá acesso ao Centro de Distribuição da FastLog monitora o peso bruto dos caminhões. A lei de trânsito estabelece que caminhões do tipo Toco não podem ultrapassar o limite máximo de 16.000 kg (16 toneladas). Se um caminhão exceder esse peso, o sistema deve acionar uma sirene de alerta e calcular a multa por excesso de carga.
Missão: Construir um algoritmo de fiscalização rodoviária que receba o peso na balança e execute a rotina de autuação apenas se o caminhão estiver acima do limite legal permitido.
🧠 Fundamentos: A Lógica do Desvio Condicional
1. Como Funciona a Tomada de Decisão?
A estrutura condicional simples avalia uma Expressão Lógica (Booleana) que só pode resultar em VERDADEIRO ou FALSO:
- Se o teste for
VERDADEIRO, o computador desvia o fluxo e executa os comandos dentro do bloco. - Se o teste for
FALSO, o computador simplesmente ignora o bloco e segue para a próxima instrução após ofimse.
graph TD
A[Início: Leitura do Peso] --> B{Peso > 16.000 kg?}
B -- "VERDADEIRO (Sim)" --> C["Executar Bloco:<br/>1. Exibir ALERTA DE EXCESSO<br/>2. Calcular Multa"]
B -- "FALSO (Não)" --> D[Continuar Fluxo Normal]
C --> D
D --> E[Fim do Algoritmo]
style B fill:#f39c12,stroke:#fff,stroke-width:2px,color:#fff
style C fill:#c0392b,stroke:#fff,stroke-width:2px,color:#fff
style D fill:#217346,stroke:#fff,stroke-width:2px,color:#fff2. Tabela de Operadores Relacionais
| Operador | Significado | Exemplo no Código | Resultado se A=10 e B=20 |
|---|---|---|---|
= | Igual a | A = B | FALSO |
<> | Diferente de | A <> B | VERDADEIRO |
> | Maior que | A > B | FALSO |
< | Menor que | A < B | VERDADEIRO |
>= | Maior ou igual a | A >= 10 | VERDADEIRO |
<= | Menor ou igual a | B <= 15 | FALSO |
Diferença de Sintaxe de Diferença (<> vs !=):
Em linguagens C, Java e Python, “diferente de” escreve-se !=. No VisuAlg e Pascal, escreve-se <> (menor que e maior que juntos).
3. A Sintaxe no VisuAlg
📖 Exemplo Guiado: Balança Fiscal de Rodovia
Código do Algoritmo:
✅ Exemplo de Execução no Console (F9):
Com peso excedente (17.500 kg):
🛠️ Prática Obrigatória 1: Alerta de Ponto de Reposição de Estoque
Passo 1: O Desafio
No galpão da FastLog, o estoque mínimo de segurança de paletes é de 50 unidades. Crie um algoritmo "Alerta_Estoque_Minimo" que receba o saldo atual de paletes em estoque. Se a quantidade for menor ou igual a 50, o sistema deve exibir:
"[ALERTA] Estoque crítico! Solicitar compra urgente de reposição."- Calcular quantas unidades faltam para atingir o estoque ideal de 200 unidades.
✅ Resultado Esperado (Prática 1):
🛠️ Prática Obrigatória 2: Bonificação de Motoristas por Eficiência
A FastLog paga um bônus de R$ 500,00 se a taxa de pontualidade do motorista for maior ou igual a 95%.
Crie um algoritmo "Bonus_Pontualidade" que receba o nome do motorista, o salário base e o percentual de pontualidade. Se atingir a meta, acrescente o bônus de R$ 500,00 ao salário e exiba a mensagem de parabenização.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_05_SeuNome_SeuSobrenome.alg. - Teste o programa com valores que ativam o
see com valores que não ativam. - No Microsoft Teams, envie na tarefa “VisuAlg Cap 05 - Condicionais Simples”.
- Clique em Entregar (Turn In).
💡 Checkpoint de Lógica & Engenharia de Software
Você acabou de aprender sobre Branching (Desvio de Código). Na arquitetura da CPU, o processador utiliza uma técnica chamada Branch Prediction (Previsão de Desvio) para tentar adivinhar se a condição do se será verdadeira antes mesmo de calcular o resultado, otimizando o pipeline de execução.
🔥 Desafio de Fixação: Desconto para Fretes Acima de R$ 5.000
Crie um algoritmo que receba o valor de um frete. Se o frete for superior a R$ 5.000,00, conceda 8% de desconto comercial e exiba o novo valor com desconto.
🔑 Gabarito de Código Completo
Prática 1:
Prática 2:
Desafio:
📝 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.
- Segundo o capítulo, quais são os dois únicos resultados possíveis de uma Expressão Lógica (Booleana) avaliada por um
se? - O que acontece com o bloco de comandos dentro do
sequando a condição testada resulta emFALSO? - Qual é a sintaxe básica da estrutura condicional simples no VisuAlg (do
seaofimse)? - Segundo a Tabela de Operadores Relacionais, qual operador representa “diferente de” no VisuAlg, e como ele se diferencia da sintaxe usada em C, Java e Python?
- No Exemplo Guiado (Balança Fiscal de Rodovia), qual é o limite legal de peso, em kg, considerado para acionar o alerta de sobrecarga?
- No Exemplo Guiado, qual fórmula foi usada para calcular o valor da multa por excesso de peso?
- Na Prática Obrigatória 1 (Alerta de Ponto de Reposição de Estoque), a partir de qual quantidade de paletes em estoque o sistema deve disparar o alerta crítico?
- Na Prática Obrigatória 2 (Bonificação de Motoristas por Eficiência), qual condição de pontualidade libera o bônus de R$ 500,00?
- Segundo o Checkpoint de Lógica, o que é o Branch Prediction (Previsão de Desvio) mencionado como técnica usada pela CPU?
- Segundo as Instruções de Entrega, com quais tipos de valores o programa deve ser testado antes do envio da atividade?