Spec Sistemas Csharp • Trilha Progressiva em 4 Níveis


🧭 Navegação Pedagógica


🎯 Nível 1: Fundamentos

Problema 03.1 — Switch Expression Moderna com Descarte (_)

Contexto: Switch Expression Moderna com Descarte (_) no contexto de Estruturas Condicionais, Switch Expressions e Pattern Matching.

Requisitos de Execução:

  1. Converter código de status HTTP em mensagem amigável utilizando switch expression concisa.

Resultado Esperado

Status mapeado em expressão funcional limpa.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_03_1_SeuNome
  2. Envie na tarefa: Atividade Cap 03 - Estruturas Condicionais, Switch Expressions e Pattern Matching
🔑 Gabarito de Código & Solução Comentada
// SwitchExpr.cs
int statusCode = 200;
string mensagem = statusCode switch {
    200 => "OK: Sucesso",
    404 => "Nao Encontrado",
    500 => "Erro Interno",
    _ => "Codigo Desconhecido"
};
Console.WriteLine(mensagem);

🔍 Nível 2: Prática

Problema 03.2 — Property Pattern Matching com Validação de Múltiplos Atributos

Contexto: Property Pattern Matching com Validação de Múltiplos Atributos no contexto de Estruturas Condicionais, Switch Expressions e Pattern Matching.

Requisitos de Execução:

  1. Validar elegibilidade de desconto com { Tipo: 'VIP', Pontos: >= 1000 } => 0.20.

Resultado Esperado

Desconto calculado através de matching em propriedades de objetos.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_03_2_SeuNome
  2. Envie na tarefa: Atividade Cap 03 - Estruturas Condicionais, Switch Expressions e Pattern Matching
🔑 Gabarito de Código & Solução Comentada
// PropertyPattern.cs
Cliente cliente = new("VIP", 1500);
decimal desconto = cliente switch {
    { Tipo: "VIP", Pontos: >= 1000 } => 0.20m,
    { Tipo: "VIP" } => 0.10m,
    _ => 0.0m
};
Console.WriteLine($"Desconto aplicado: {desconto:P0}");

record Cliente(string Tipo, int Pontos);

⚡ Nível 3: Integração

Problema 03.3 — Relational Patterns e Logical Patterns (and, or, not)

Contexto: Relational Patterns e Logical Patterns (and, or, not) no contexto de Estruturas Condicionais, Switch Expressions e Pattern Matching.

Requisitos de Execução:

  1. Classificar faixas de temperatura utilizando padrões lógicos > 0 and <= 25.

Resultado Esperado

Condições compostas avaliadas com operadores de pattern matching.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_03_3_SeuNome
  2. Envie na tarefa: Atividade Cap 03 - Estruturas Condicionais, Switch Expressions e Pattern Matching
🔑 Gabarito de Código & Solução Comentada
// RelationalPattern.cs
int temp = 22;
string clima = temp switch {
    < 0 => "Congelante",
    >= 0 and <= 15 => "Frio",
    > 15 and <= 28 => "Agradavel",
    _ => "Quente"
};
Console.WriteLine($"Clima: {clima}");

🏆 Nível 4: Desafio Corporativo

Problema 03.4 — Positional Pattern Matching com Desestruturação (Deconstruct)

Contexto: Positional Pattern Matching com Desestruturação (Deconstruct) no contexto de Estruturas Condicionais, Switch Expressions e Pattern Matching.

Requisitos de Execução:

  1. Implementar método Deconstruct em classe de coordenadas e realizar pattern matching posicional.

Resultado Esperado

Desestruturação posicional avaliada em tuplas.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_03_4_SeuNome
  2. Envie na tarefa: Atividade Cap 03 - Estruturas Condicionais, Switch Expressions e Pattern Matching
🔑 Gabarito de Código & Solução Comentada
// PositionalPattern.cs
(int x, int y) ponto = (0, 5);
string posicao = ponto switch {
    (0, 0) => "Origem",
    (0, _) => "Eixo Y",
    (_, 0) => "Eixo X",
    _ => "Quadrante"
};
Console.WriteLine($"Posicao cartesiana: {posicao}");

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