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


🧭 Navegação Pedagógica


🎯 Nível 1: Fundamentos

Problema 05.1 — Menu de Opções com switch-case e Cláusula default

Contexto: Menu de Opções com switch-case e Cláusula default no contexto de Estruturas de Seleção switch-case.

Requisitos de Execução:

  1. Criar menu interativo com opções (1: Cadastrar, 2: Consultar, 3: Sair).

Resultado Esperado

Opção selecionada executada com tratamento de opção inválida no default.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_05_1_SeuNome
  2. Envie na tarefa: Atividade Cap 05 - Estruturas de Seleção switch-case
🔑 Gabarito de Código & Solução Comentada
#include <stdio.h>

int main(void) {
    int opcao = 2;
    switch (opcao) {
        case 1: puts("Executando: Cadastrar"); break;
        case 2: puts("Executando: Consultar"); break;
        case 3: puts("Executando: Sair"); break;
        default: puts("Opcao Invalida"); break;
    }
    return 0;
}

🔍 Nível 2: Prática

Problema 05.2 — Fallthrough Intencional no switch-case

Contexto: Fallthrough Intencional no switch-case no contexto de Estruturas de Seleção switch-case.

Requisitos de Execução:

  1. Implementar verificação de dias úteis vs final de semana agrupando múltiplos cases sem break intencionalmente.

Resultado Esperado

Agrupamento de casos no switch validando dias úteis.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_05_2_SeuNome
  2. Envie na tarefa: Atividade Cap 05 - Estruturas de Seleção switch-case
🔑 Gabarito de Código & Solução Comentada
#include <stdio.h>

int main(void) {
    int dia = 6; // 1=Dom, 7=Sab
    switch (dia) {
        case 1:
        case 7:
            puts("Tipo: Final de Semana");
            break;
        case 2: case 3: case 4: case 5: case 6:
            puts("Tipo: Dia Util");
            break;
        default:
            puts("Dia invalido.");
            break;
    }
    return 0;
}

⚡ Nível 3: Integração

Problema 05.3 — Calculadora com Operadores Caracteres (+, -, *, /)

Contexto: Calculadora com Operadores Caracteres (+, -, *, /) no contexto de Estruturas de Seleção switch-case.

Requisitos de Execução:

  1. Executar operações aritméticas básicas baseando-se no caractere operador digitado.

Resultado Esperado

Operação aritmética avaliada e calculada pelo switch.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_05_3_SeuNome
  2. Envie na tarefa: Atividade Cap 05 - Estruturas de Seleção switch-case
🔑 Gabarito de Código & Solução Comentada
#include <stdio.h>

double calcular(double a, double b, char op) {
    switch (op) {
        case '+': return a + b;
        case '-': return a - b;
        case '*': return a * b;
        case '/': return (b != 0) ? (a / b) : 0.0;
        default: return 0.0;
    }
}

int main(void) {
    printf("Resultado: %.2f\n", calcular(10.0, 2.5, '*'));
    return 0;
}

🏆 Nível 4: Desafio Corporativo

Problema 05.4 — Máquina de Estados Finita (FSM) de Protocolo de Rede com switch-case

Contexto: Máquina de Estados Finita (FSM) de Protocolo de Rede com switch-case no contexto de Estruturas de Seleção switch-case.

Requisitos de Execução:

  1. Modelar transições de estados de conexão TCP (CLOSED, SYN_SENT, ESTABLISHED, FIN_WAIT).

Resultado Esperado

Máquina de estados de conexão processada com sucesso.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_05_4_SeuNome
  2. Envie na tarefa: Atividade Cap 05 - Estruturas de Seleção switch-case
🔑 Gabarito de Código & Solução Comentada
#include <stdio.h>

typedef enum { ESTADO_INIT, ESTADO_PROCESSANDO, ESTADO_CONCLUIDO, ESTADO_FALHA } Estado;

Estado transicionar(Estado atual, int evento) {
    switch (atual) {
        case ESTADO_INIT: return (evento == 1) ? ESTADO_PROCESSANDO : ESTADO_FALHA;
        case ESTADO_PROCESSANDO: return (evento == 2) ? ESTADO_CONCLUIDO : ESTADO_FALHA;
        default: return atual;
    }
}

int main(void) {
    Estado e = transicionar(ESTADO_INIT, 1);
    printf("Novo Estado: %d\n", e);
    return 0;
}

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