🧩 Exercícios: Estruturas de Repetição: for, break e continue
Spec Sistemas Com C • Trilha Progressiva em 4 Níveis
🎯 Nível 1: Fundamentos
Problema 07.1 — Laço for Clássico para Cálculo de Fatorial
Contexto: Laço for Clássico para Cálculo de Fatorial no contexto de Estruturas de Repetição: for, break e continue.
Requisitos de Execução:
- Calcular fatorial de um número N utilizando laço for acumulativo.
Resultado Esperado
Fatorial de 5! = 120 calculado com sucesso.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_07_1_SeuNome - Envie na tarefa:
Atividade Cap 07 - Estruturas de Repetição: for, break e continue
🔑 Gabarito de Código & Solução Comentada
#include <stdio.h>
unsigned long long fatorial(int n) {
unsigned long long fat = 1;
for (int i = 2; i <= n; i++) {
fat *= i;
}
return fat;
}
int main(void) {
printf("Fatorial 5! = %llu\n", fatorial(5));
return 0;
}
🔍 Nível 2: Prática
Problema 07.2 — Interrupção Precoce com break e Salto com continue
Contexto: Interrupção Precoce com break e Salto com continue no contexto de Estruturas de Repetição: for, break e continue.
Requisitos de Execução:
- Percorrer números de 1 a 20, saltando múltiplos de 3 com continue e interrompendo ao atingir 17 com break.
Resultado Esperado
Fluxo de iteração controlado pelos statements de break e continue.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_07_2_SeuNome - Envie na tarefa:
Atividade Cap 07 - Estruturas de Repetição: for, break e continue
🔑 Gabarito de Código & Solução Comentada
#include <stdio.h>
int main(void) {
for (int i = 1; i <= 20; i++) {
if (i % 3 == 0) continue;
if (i == 17) break;
printf("%d ", i);
}
printf("\n");
return 0;
}
⚡ Nível 3: Integração
Problema 07.3 — Geração de Matriz Identidade com Laços for Aninhados
Contexto: Geração de Matriz Identidade com Laços for Aninhados no contexto de Estruturas de Repetição: for, break e continue.
Requisitos de Execução:
- Imprimir matriz identidade N x N no console formatada em linhas e colunas.
Resultado Esperado
Matriz identidade 4x4 exibida com diagonais principais preenchidas com 1.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_07_3_SeuNome - Envie na tarefa:
Atividade Cap 07 - Estruturas de Repetição: for, break e continue
🔑 Gabarito de Código & Solução Comentada
#include <stdio.h>
int main(void) {
int n = 4;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
printf("%d ", (i == j) ? 1 : 0);
}
printf("\n");
}
return 0;
}
🏆 Nível 4: Desafio Corporativo
Problema 07.4 — Crivo de Eratóstenes para Geração de Números Primos em Alta Performance
Contexto: Crivo de Eratóstenes para Geração de Números Primos em Alta Performance no contexto de Estruturas de Repetição: for, break e continue.
Requisitos de Execução:
- Encontrar todos os números primos até N utilizando o algoritmo do Crivo com laços for otimizados.
Resultado Esperado
Primos até 100 calculados com complexidade O(N log log N).
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_07_4_SeuNome - Envie na tarefa:
Atividade Cap 07 - Estruturas de Repetição: for, break e continue
🔑 Gabarito de Código & Solução Comentada
#include <stdio.h>
#include <stdbool.h>
#include <string.h>
void crivo(int limite) {
bool primo[101];
memset(primo, true, sizeof(primo));
for (int p = 2; p * p <= limite; p++) {
if (primo[p]) {
for (int i = p * p; i <= limite; i += p) primo[i] = false;
}
}
for (int p = 2; p <= limite; p++) {
if (primo[p]) printf("%d ", p);
}
printf("\n");
}
int main(void) {
crivo(30);
return 0;
}