Capítulo 05: Estruturas Condicionais Simples (SE e Operadores Relacionais)
🎯 Objetivo da Aula
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) { ... }no Portugol Studio. - Utilizar com maestria os Operadores Relacionais Modernos (
==,!=,>,<,>=,<=). - Implementar travas de segurança e regras de conformidade operacional.
📥 Material de Apoio e Código-Fonte da Aula:
- 📄 Arquivo Pronto (.por): Baixar Capitulo_05.por (abra diretamente no Portugol Studio)
- 📦 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 legislação 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 emitir um alerta na tela da cabine e calcular o valor da multa por sobrecarga.
Missão: Construir um programa em Portugol que receba o peso na balança e execute a rotina de autuação apenas se o caminhão estiver acima do limite legal.
🧠 Fundamentos: O Desvio Condicional Simples
1. Como Funciona a Tomada de Decisão?
A estrutura condicional avalia uma Expressão Booleana que resulta exclusivamente em verdadeiro ou falso:
- Se for
verdadeiro, o computador entra nas chaves{ }dosee executa as instruções. - Se for
falso, o computador pula as chaves e segue em frente.
graph TD
A[Início: Leitura do Peso] --> B{Peso > 16.000 kg?}
B -- "verdadeiro (Sim)" --> C["Entra nas chaves { }:<br/>1. Exibir ALERTA DE EXCESSO<br/>2. Calcular Multa"]
B -- "falso (Não)" --> D[Continuar Fluxo Normal]
C --> D
D --> E[Fim do Programa]
style B fill:#f39c12,stroke:#fff,color:#fff
style C fill:#c0392b,stroke:#fff,color:#fff
style D fill:#27ae60,stroke:#fff,color:#fff2. Tabela de Operadores Relacionais no Portugol Studio
| 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 |
Nunca use = para comparar igualdade:
Em C, Java, JavaScript e Portugol Studio, == (dois iguais) compara valores; = (um igual) faz atribuição.
== e != também funcionam com texto (cadeia)
Os operadores desta tabela não se limitam a números: nome == "Carlos" ou status != "Pendente" comparam o conteúdo de duas cadeia diretamente, sem precisar de nenhuma função especial (diferente de Java, onde comparar texto exige .equals()).
📖 Exemplo Guiado: Balança Fiscal de Rodovia
Código do Programa:
✅ Exemplo de Execução no Console (Shift + F6):
🛠️ 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 programa estoque_minimo.por que receba o saldo atual de paletes. 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 Pontualidade
A FastLog paga um bônus de R$ 500,00 se a taxa de pontualidade do motorista for maior ou igual a 95.0%.
Crie um programa bonus_motorista.por 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.por. - Teste com pesos que ativem o
see pesos normais que passem direto. - No Microsoft Teams, envie na tarefa “Portugol Cap 05 - Condicionais Simples”.
- Clique em Entregar (Turn In).
💡 Checkpoint de Lógica & Engenharia de Software
Você acabou de aplicar a base de Branching (Desvio de Fluxo). No desenvolvimento de software bancário, travas condicionais simples são responsáveis por validar se o saldo da conta é suficiente antes de autorizar qualquer saque ou transferência Pix.
🔥 Desafio de Fixação: Desconto Comercial de Frete
Crie um programa 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 a pagar.
🔑 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.
- O que acontece quando a expressão booleana dentro de um
se (condicao)resulta emfalso, segundo o capítulo? - Na tabela de operadores relacionais, qual operador representa “diferente de” no Portugol Studio?
- Segundo o quadro de atenção (CAUTION) do capítulo, qual é o erro comum entre
=e==ao construir uma condição? - Qual é o limite legal de peso, em kg, usado no Cenário Prático e no Exemplo Guiado da balança rodoviária?
- No Exemplo Guiado, o que o programa calcula e exibe quando o
pesoBrutoexcede olimiteLegal? - Na Prática Obrigatória 1 (Alerta de Ponto de Reposição de Estoque), qual condição (com qual operador relacional) dispara o alerta de estoque crítico?
- Qual é o valor do estoque ideal usado para calcular quantas unidades faltam encomendar, na Prática Obrigatória 1?
- Na Prática Obrigatória 2 (Bonificação de Motoristas por Pontualidade), qual percentual mínimo de pontualidade garante o bônus de R$ 500,00?
- Segundo o Checkpoint de Lógica, em que tipo de sistema (setor citado no texto) travas condicionais simples são usadas para validar saldo antes de autorizar uma transação?
- Se
a=10eb=20, qual é o resultado dea >= 10, de acordo com a tabela de operadores relacionais do capítulo?