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


🎯 Nível 1: Fundamentos

Problema 04.1 — Estrutura if-else Aninhada para Classificação de Faixa Etária

Contexto: Estrutura if-else Aninhada para Classificação de Faixa Etária no contexto de Estruturas Condicionais e Operador Ternário.

Requisitos de Execução:

  1. Classificar usuário em Menor de Idade, Adulto ou Idoso conforme idade informada.

Resultado Esperado

Classificação correta emitida no console.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_04_1_SeuNome
  2. Envie na tarefa: Atividade Cap 04 - Estruturas Condicionais e Operador Ternário
🔑 Gabarito de Código & Solução Comentada
#include <stdio.h>

int main(void) {
    int idade = 28;
    if (idade < 18) {
        puts("Categoria: Menor de Idade");
    } else if (idade < 65) {
        puts("Categoria: Adulto");
    } else {
        puts("Categoria: Idoso");
    }
    return 0;
}

🔍 Nível 2: Prática

Problema 04.2 — Operador Ternário Aninhado para Determinação de Status

Contexto: Operador Ternário Aninhado para Determinação de Status no contexto de Estruturas Condicionais e Operador Ternário.

Requisitos de Execução:

  1. Atribuir string de status utilizando operador ternário condicao ? valor1 : valor2.

Resultado Esperado

Status atribuído com expressão ternária compacta.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_04_2_SeuNome
  2. Envie na tarefa: Atividade Cap 04 - Estruturas Condicionais e Operador Ternário
🔑 Gabarito de Código & Solução Comentada
#include <stdio.h>

int main(void) {
    int score = 85;
    const char *status = (score >= 70) ? "APROVADO" : (score >= 50 ? "RECUPERACAO" : "REPROVADO");
    printf("Resultado da avaliacao: %s (Score: %d)\n", status, score);
    return 0;
}

⚡ Nível 3: Integração

Problema 04.3 — Validação de Coordenadas em Quadrantes Cartesianos 2D

Contexto: Validação de Coordenadas em Quadrantes Cartesianos 2D no contexto de Estruturas Condicionais e Operador Ternário.

Requisitos de Execução:

  1. Determinar em qual quadrante (Q1, Q2, Q3, Q4) ou eixo cartesiano um ponto (x, y) se encontra.

Resultado Esperado

Ponto classificado corretamente no quadrante cartesiano.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_04_3_SeuNome
  2. Envie na tarefa: Atividade Cap 04 - Estruturas Condicionais e Operador Ternário
🔑 Gabarito de Código & Solução Comentada
#include <stdio.h>

int main(void) {
    double x = -3.5, y = 4.2;
    if (x > 0 && y > 0) puts("Quadrante: Q1");
    else if (x < 0 && y > 0) puts("Quadrante: Q2");
    else if (x < 0 && y < 0) puts("Quadrante: Q3");
    else if (x > 0 && y < 0) puts("Quadrante: Q4");
    else puts("Sobre o Eixo");
    return 0;
}

🏆 Nível 4: Desafio Corporativo

Problema 04.4 — Cálculo de Imposto de Renda Progressivo com Faixas Salariais

Contexto: Cálculo de Imposto de Renda Progressivo com Faixas Salariais no contexto de Estruturas Condicionais e Operador Ternário.

Requisitos de Execução:

  1. Calcular alíquotas de imposto de renda progressivas com deduções por faixa salarial.

Resultado Esperado

Cálculo de imposto retido na fonte executado com precisão monetária.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_04_4_SeuNome
  2. Envie na tarefa: Atividade Cap 04 - Estruturas Condicionais e Operador Ternário
🔑 Gabarito de Código & Solução Comentada
#include <stdio.h>

double calcular_irrf(double salario) {
    if (salario <= 2259.20) return 0.0;
    if (salario <= 2826.65) return (salario * 0.075) - 169.44;
    if (salario <= 3751.05) return (salario * 0.15) - 381.44;
    return (salario * 0.275) - 896.00;
}

int main(void) {
    double sal = 5000.00;
    printf("Salario: R$ %.2f | IRRF: R$ %.2f\n", sal, calcular_irrf(sal));
    return 0;
}