Capítulo 11: Laço Determinístico e Contadores (PARA / For Loop)
🎯 Objetivo da Aula
Quando você já sabe de antemão quantas vezes uma repetição deve acontecer (como calcular o frete para 10 faixas de distância ou emitir 12 parcelas mensais), o laço para (For Loop) é a estrutura mais concisa, elegante e segura da programação.
Nesta aula, você aprenderá a:
- Compreender o funcionamento do Laço Determinístico (
para). - Dominar a sintaxe C/Java:
para (inicializacao; condicao; incremento) { ... }. - Utilizar contagens progressivas (
i++,i += 50) e regressivas (i--). - Gerar Tabelas Progressivas de Custos e relatórios tabulares no console.
📥 Material de Apoio e Código-Fonte da Aula:
- 📄 Arquivo Pronto (.por): Baixar Capitulo_11.por (abra diretamente no Portugol Studio)
- 📦 Exercícios Separados (.zip): Baixar Capitulo_11.zip
🏢 O Cenário Prático (Seu Desafio)
Situação: O setor comercial da FastLog precisa gerar a Tabela de Frete Fracionado 2026. A tabela deve listar os custos de frete para rotas de 100 km até 1.000 km, de 100 em 100 km, aplicando uma tarifa de R$ 3,80/km mais uma taxa de despacho de R$ 85,00.
Missão: Você deve construir um programa que utilize o laço para com incremento de 100 em 100 (km += 100) para tabular todas as faixas automaticamente.
🧠 Fundamentos: A Mecânica do Laço para
1. Os Três Pilares do Cabeçalho para
graph LR
P1["1. Inicialização<br/>inteiro km = 100"] --> P2["2. Condição de Teste<br/>km <= 1000"]
P2 -->|Verdadeiro| P3["3. Executa Bloco { }<br/>Calcula e imprime frete"]
P3 --> P4["4. Incremento<br/>km += 100"]
P4 --> P2
P2 -->|Falso| P5[5. Sai do Laço]
style P1 fill:#8e44ad,stroke:#fff,color:#fff
style P2 fill:#f39c12,stroke:#fff,color:#fff
style P3 fill:#2980b9,stroke:#fff,color:#fff
style P4 fill:#27ae60,stroke:#fff,color:#fff
style P5 fill:#c0392b,stroke:#fff,color:#fff2. Quadro Comparativo do Laço For
| Linguagem | Sintaxe do Laço For |
|---|---|
| Portugol Studio | para (inteiro i = 0; i < 10; i++) { ... } |
| C / C++ | for (int i = 0; i < 10; i++) { ... } |
| Java / C# | for (int i = 0; i < 10; i++) { ... } |
| JavaScript | for (let i = 0; i < 10; i++) { ... } |
| Python | for i in range(0, 10): |
📖 Exemplo Guiado: Gerador da Tabela de Fretes 2026
Código do Programa:
✅ Exemplo de Execução no Console (Shift + F6):
🛠️ Prática Obrigatória 1: Contagem Regressiva de Despacho (i--)
Passo 1: O Desafio
O semáforo da cancela precisa emitir uma contagem regressiva de 10 até 1 segundo, finalizando com: "[LIBERADO] Cancela aberta! Caminhão em trânsito.".
Crie um programa contagem_regressiva.por utilizando i--.
✅ Resultado Esperado (Prática 1):
🛠️ Prática Obrigatória 2: Somatório de Faturamento de 5 Filiais
Crie um programa faturamento_filiais.por que utilize um laço para de 1 até 5 para ler o faturamento de cada uma das 5 filiais da FastLog.
Ao final, exiba:
- O faturamento total acumulado da rede.
- A média de faturamento por filial.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_11_SeuNome_SeuSobrenome.por. - Verifique a sintaxe com ponto e vírgula nos 3 blocos do
para. - No Microsoft Teams, envie na tarefa “Portugol Cap 11 - Laço Para”.
- Clique em Entregar (Turn In).
💡 Checkpoint de Lógica & Engenharia de Software
Você acabou de aplicar a base dos Iteradores Modernos. Em linguagens como TypeScript e Python, o laço determinístico é o motor por trás de métodos de transformação de dados como .map(), .filter() e .reduce().
🔥 Desafio de Fixação: Simulador de Juros Compostos
Crie um programa que receba um investimento inicial (R$ 10.000,00) e uma taxa de juros de 1% ao mês (taxa = 0.01). Use um laço para de 1 até 12 para calcular e exibir a evolução do patrimônio mês a mês durante 1 ano.
🔑 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.
- Quais são os três componentes (pilares) do cabeçalho do laço
paraem Portugol, e qual a função de cada um? - Escreva a sintaxe genérica do laço
paraem Portugol, no padrão C/Java. - No laço
para (inteiro km = 100; km <= 1000; km += 100), qual é o valor inicial dekm, qual a condição de parada e de quanto em quantokmé incrementado? - No Exemplo Guiado da Tabela de Fretes da FastLog, qual é o valor da tarifa por km e da taxa de despacho fixa utilizados no cálculo?
- Como se escreve, em Portugol, um laço
paraque realiza uma contagem regressiva (decrescente), e qual operador substitui oi++nesse caso? - Na Prática Obrigatória 2 (Somatório de Faturamento de 5 Filiais), quantas vezes o laço se repete e quais dois valores devem ser exibidos ao final do programa?
- Segundo o quadro comparativo do capítulo, como o laço for é escrito em Python, e em que ele difere da sintaxe usada em Portugol/C/Java?
- De acordo com o Checkpoint de Lógica & Engenharia de Software, o laço determinístico é descrito como o motor por trás de quais métodos de transformação de dados em linguagens como TypeScript e Python?
- Segundo o diagrama da mecânica do laço
para, o que acontece quando a Condição de Teste é avaliada como Falsa? - Dê um exemplo do dia a dia (fora da programação) em que você sabe de antemão quantas vezes uma tarefa deve se repetir, de forma parecida com o cenário de gerar a tabela de fretes da FastLog.