⚡ Cap 07: Laço for, break/continue & Big-O
Especialização em Engenharia de Sistemas com Linguagem C (C17/C23)
🗺️ Slide 1: Anatomia Compacta do for
graph LR
A["1. init\n(int i = 0)"] --> B["2. cond\n(i < N)"]
B --> C["Corpo do Laço\n{ ... }"]
C --> D["3. step\n(i++)"]
D --> B
style A fill:#0284c7,stroke:#38bdf8,color:#ffffff
style B fill:#d97706,stroke:#f59e0b,color:#ffffff
style C fill:#059669,stroke:#34d399,color:#ffffff
style D fill:#818cf8,stroke:#c7d2fe,color:#ffffff
- Padrão ISO C99+:
for (int i = 0; ...)restringe a variável ao escopo interno do laço. - Laço Infinito Idiomático:
for (;;)em sistemas operacionais e microcontroladores.
⚡ Slide 2: Comandos de Salto (break vs continue)
| Instrução | Ação no Laço |
|---|---|
break; |
Finaliza o laço imediatamente, saindo do bloco de repetição. |
continue; |
Salta direto para a atualização (step), iniciando a próxima volta. |
🔲 Slide 3: Laços Aninhados Multidimensionais
for (int i = 0; i < LINHAS; i++) {
for (int j = 0; j < COLUNAS; j++) {
matriz[i][j] = 0;
}
}
- Essencial para processamento de matrizes 2D, imagens em escala de cinza e grids.
📈 Slide 4: Análise de Complexidade Assintótica Big-O
graph TD
A["Análise de Eficiência Big-O"] --> B["Laço Único: O(N)\nTempo Linear"]
A --> C["Dois Laços Aninhados: O(N²)\nTempo Quadrático"]
style A fill:#1e293b,stroke:#818cf8,color:#ffffff
style B fill:#064e3b,stroke:#00e676,color:#ffffff
style C fill:#831843,stroke:#f472b6,color:#ffffff
- Custo Quadrático $O(N^2)$: Para $N = 100.000$, um algoritmo $O(N^2)$ executa $10^{10}$ operações, travando a CPU por segundos.
📋 Resumo da Aula & Próximos Passos
- Revise os códigos de exemplo deste capítulo.
- Teste seus conhecimentos no Quiz Formativo.
- Pratique os exercícios em 4 níveis de complexidade.
Slide 1 de 1
Atalhos: ← → Navegar • Espaço Avançar • F Tela Cheia • Home Início • End Fim