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


🧭 Navegação Pedagógica


🎯 Nível 1: Fundamentos

Problema 03.1 — Laço for Tradicional e Cálculo de Somatórios

Contexto: Laço for Tradicional e Cálculo de Somatórios no contexto de Estruturas Repetitivas (while, for, do-while) e Controles de Fluxo.

Requisitos de Execução:

  1. Somar valores em progressão geométrica utilizando laço for acumulador.

Resultado Esperado

Somatório calculado com laço for.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_03_1_SeuNome
  2. Envie na tarefa: Atividade Cap 03 - Estruturas Repetitivas (while, for, do-while) e Controles de Fluxo
🔑 Gabarito de Código & Solução Comentada
package com.empresa.sistemas;

public class ForDemo {
    public static void main(String[] args) {
        long total = 0;
        for (int i = 1; i <= 10; i++) {
            total += (long) Math.pow(2, i);
        }
        System.out.println("Somatorio PG: " + total);
    }
}

🔍 Nível 2: Prática

Problema 03.2 — Validação com do-while e Controles de Fluxo (break/continue)

Contexto: Validação com do-while e Controles de Fluxo (break/continue) no contexto de Estruturas Repetitivas (while, for, do-while) e Controles de Fluxo.

Requisitos de Execução:

  1. Repetir validação até receber entrada válida, saltando iterações pares com continue.

Resultado Esperado

Fluxo de iteração filtrado com continue.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_03_2_SeuNome
  2. Envie na tarefa: Atividade Cap 03 - Estruturas Repetitivas (while, for, do-while) e Controles de Fluxo
🔑 Gabarito de Código & Solução Comentada
package com.empresa.sistemas;

public class DoWhileDemo {
    public static void main(String[] args) {
        int i = 0;
        do {
            i++;
            if (i % 2 == 0) continue;
            System.out.print(i + " ");
        } while (i < 9);
        System.out.println();
    }
}

⚡ Nível 3: Integração

Problema 03.3 — Rótulos de Laço (Labeled Loops) para Quebra de Laços Aninhados

Contexto: Rótulos de Laço (Labeled Loops) para Quebra de Laços Aninhados no contexto de Estruturas Repetitivas (while, for, do-while) e Controles de Fluxo.

Requisitos de Execução:

  1. Rotular laço externo com externo: for (...) e quebrar diretamente do laço interno com break externo;.

Resultado Esperado

Laço externo interrompido com precisão a partir da estrutura aninhada.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_03_3_SeuNome
  2. Envie na tarefa: Atividade Cap 03 - Estruturas Repetitivas (while, for, do-while) e Controles de Fluxo
🔑 Gabarito de Código & Solução Comentada
package com.empresa.sistemas;

public class LabeledLoopDemo {
    public static void main(String[] args) {
        externo:
        for (int i = 1; i <= 3; i++) {
            for (int j = 1; j <= 3; j++) {
                if (i * j == 4) {
                    System.out.println("Parada em i=" + i + ", j=" + j);
                    break externo;
                }
            }
        }
    }
}

🏆 Nível 4: Desafio Corporativo

Problema 03.4 — Enhanced for-each e Implementação da Interface Iterable

Contexto: Enhanced for-each e Implementação da Interface Iterable no contexto de Estruturas Repetitivas (while, for, do-while) e Controles de Fluxo.

Requisitos de Execução:

  1. Criar coleção customizada FilaAtendimento implementando Iterable<String> para consumo com for-each.

Resultado Esperado

Classe customizada iterável diretamente via for-each nativo do Java.

📤 Instruções de Entrega (Microsoft Teams)

  1. Salve o arquivo como: Atividade_03_4_SeuNome
  2. Envie na tarefa: Atividade Cap 03 - Estruturas Repetitivas (while, for, do-while) e Controles de Fluxo
🔑 Gabarito de Código & Solução Comentada
package com.empresa.sistemas;

import java.util.Iterator;
import java.util.List;

public class FilaCustomizada implements Iterable<String> {
    private final List<String> itens = List.of("Ticket A", "Ticket B");

    @Override
    public Iterator<String> iterator() { return itens.iterator(); }

    public static void main(String[] args) {
        FilaCustomizada fila = new FilaCustomizada();
        for (String item : fila) System.out.println(item);
    }
}

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