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:

  1. 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)

  1. Salve o arquivo como: Atividade_07_1_SeuNome
  2. 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:

  1. 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)

  1. Salve o arquivo como: Atividade_07_2_SeuNome
  2. 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:

  1. 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)

  1. Salve o arquivo como: Atividade_07_3_SeuNome
  2. 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:

  1. 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)

  1. Salve o arquivo como: Atividade_07_4_SeuNome
  2. 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;
}