Spec Sistemas Com C • Trilha Progressiva em 4 Níveis


🧭 Navegação Pedagógica


🎯 Nível 1: Fundamentos

Problema 06.1 — Contagem Progressiva e Regressiva com Laço while

Contexto: Contagem Progressiva e Regressiva com Laço while no contexto de Estruturas de Repetição: while e do-while.

Requisitos de Execução:

  1. Imprimir contagem de 1 a 10 e depois de 10 até 0.

Resultado Esperado

Contagem impressa no console com terminação no valor zero.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_06_1_SeuNome
  2. Envie na tarefa: Atividade Cap 06 - Estruturas de Repetição: while e do-while
🔑 Gabarito de Código & Solução Comentada
#include <stdio.h>

int main(void) {
    int i = 1;
    while (i <= 5) {
        printf("Tick %d\n", i);
        i++;
    }
    return 0;
}

🔍 Nível 2: Prática

Problema 06.2 — Validação de Entrada do Usuário com Laço do-while

Contexto: Validação de Entrada do Usuário com Laço do-while no contexto de Estruturas de Repetição: while e do-while.

Requisitos de Execução:

  1. Repetir solicitação de nota até que o valor digitado esteja no intervalo válido de [0.0, 10.0].

Resultado Esperado

Nota válida aceita após repetição controlada por do-while.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_06_2_SeuNome
  2. Envie na tarefa: Atividade Cap 06 - Estruturas de Repetição: while e do-while
🔑 Gabarito de Código & Solução Comentada
#include <stdio.h>

int main(void) {
    float nota = -1.0f;
    int tentativas = 0;
    do {
        tentativas++;
        if (tentativas == 3) nota = 8.5f; // Simula entrada válida
    } while (nota < 0.0f || nota > 10.0f);
    printf("Nota validada: %.1f\n", nota);
    return 0;
}

⚡ Nível 3: Integração

Problema 06.3 — Algoritmo de Euclides para Máximo Divisor Comum (MDC)

Contexto: Algoritmo de Euclides para Máximo Divisor Comum (MDC) no contexto de Estruturas de Repetição: while e do-while.

Requisitos de Execução:

  1. Calcular o MDC entre dois números inteiros positivos utilizando subtrações/restos sucessivos em laço while.

Resultado Esperado

MDC(48, 18) = 6 calculado com sucesso.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_06_3_SeuNome
  2. Envie na tarefa: Atividade Cap 06 - Estruturas de Repetição: while e do-while
🔑 Gabarito de Código & Solução Comentada
#include <stdio.h>

int mdc(int a, int b) {
    while (b != 0) {
        int temp = b;
        b = a % b;
        a = temp;
    }
    return a;
}

int main(void) {
    printf("MDC(48, 18) = %d\n", mdc(48, 18));
    return 0;
}

🏆 Nível 4: Desafio Corporativo

Problema 06.4 — Conversão de Base Numérica (Decimal para Binário) com Laço while

Contexto: Conversão de Base Numérica (Decimal para Binário) com Laço while no contexto de Estruturas de Repetição: while e do-while.

Requisitos de Execução:

  1. Converter número inteiro decimal para sua representação em binário de 32 bits.

Resultado Esperado

Valor decimal 25 convertido para '11001' em binário.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_06_4_SeuNome
  2. Envie na tarefa: Atividade Cap 06 - Estruturas de Repetição: while e do-while
🔑 Gabarito de Código & Solução Comentada
#include <stdio.h>

void decimal_para_binario(unsigned int n) {
    char bits[33];
    int idx = 31;
    bits[32] = '\0';
    if (n == 0) { puts("0"); return; }
    while (n > 0 && idx >= 0) {
        bits[idx--] = (n % 2) ? '1' : '0';
        n /= 2;
    }
    printf("Binario: %s\n", &bits[idx + 1]);
}

int main(void) {
    decimal_para_binario(25);
    return 0;
}

⬅️ Voltar ao Índice de Exercícios 📚 Sumário de Tópicos