🚀 Capítulo 10: Conjuntos (Sets) (Tema: X-Men)

NOTE

Este capítulo utiliza a temática de X-Men para explicar os Conjuntos. No Cérebro do Professor Xavier, as equipes e habilidades são organizadas sem repetições!


1. 🎯 Objetivo da Aula

Compreender o conceito de Conjunto (Set) na computação, a regra de não permitir elementos duplicados e as operações matemáticas de União, Intersecção e Diferença.

2. 🏢 O Cenário Prático (Seu Desafio)

O Professor Xavier usa o supercomputador Cérebro para catalogar os mutantes. Ele quer criar grupos baseados em habilidades:

  • Grupo 1 (Telepatas): Xavier, Jean Grey, Emma Frost.
  • Grupo 2 (Voadores): Tempestade, Jean Grey, Arcanjo.

O Professor precisa saber:

  1. Quem são os mutantes que estão em pelo menos um dos grupos? (União).
  2. Quem são os mutantes que são Telepatas E também Voadores? (Intersecção).

Seu desafio é usar a lógica de Conjuntos para responder ao Professor!

3. 🧠 Fundamentos: A Teoria Traduzida

Um Conjunto (Set) é uma coleção de elementos onde não são permitidos valores duplicados. Se você tentar adicionar o “Wolverine” duas vezes, o conjunto continuará tendo apenas um Wolverine.

➕ Operações com Conjuntos:

  1. União (): Junta todos os elementos dos dois conjuntos, sem repetir ninguém.
    • Resultado: Xavier, Jean Grey, Emma Frost, Tempestade, Arcanjo.
  2. Intersecção (): Pega apenas os elementos que estão presentes nos dois conjuntos ao mesmo tempo.
    • Resultado: Jean Grey (ela é a única que voa e é telepata).
  3. Diferença (): Pega os elementos que estão no Conjunto A, mas não estão no Conjunto B.
    • Telepatas - Voadores: Xavier, Emma Frost.

4. 📖 Exemplo Guiado: Eliminando Duplicatas

Imagine que você está lendo uma lista de poderes de um mutante: ['Fogo', 'Vôo', 'Fogo', 'Gelo']. Se você converter essa lista para um Conjunto (Set), o resultado será: {'Fogo', 'Vôo', 'Gelo'}. A repetição sumiu!


5. 🛠️ Prática Obrigatória 1: Operações Mutantes

Dados os conjuntos:

Calcule:

  1. A União de A e B ().
  2. A Intersecção de A e B ().
  3. A Diferença entre A e B ().

6. 🛠️ Prática Obrigatória 2: Busca Rápida

Por que a operação de verificar se um item existe dentro de um Conjunto (Set) é muito mais rápida do que procurar dentro de um Array comum? (Dica: Pense em como as Tabelas Hash funcionam; os Sets geralmente são implementados usando tabelas hash por baixo dos panos).


7. 📤 Instruções de Entrega (GitHub Desktop + Microsoft Teams)

  1. Faça o Commit: No GitHub Desktop, digite a mensagem (ex: Finaliza Capítulo 10 Estruturas de Dados) e clique em Commit to main.
  2. Envie para a Nuvem (Push): Clique em Push origin.

8. 📂 Estrutura de Pastas

mod_09_estruturas_de_dados/
├── capitulos/
│   ├── capitulo_10_sets.md
│   └── codigos/
│       └── cap10/
│           └── conjuntos_mutantes.js

9. 💡 Checkpoint de Lógica

Se criarmos um conjunto com os nomes dos alunos da sua turma, ele aceitaria dois alunos chamados “João Silva”? E se fossem apenas “João”?

10. 🔥 Desafio de Fixação

Pesquise como usar a estrutura Set nativa do JavaScript para remover duplicatas de um Array.

🔑 Gabarito de Código/Fórmulas

Gabarito da Prática 1:

  1. União: {'Ciclope', 'Wolverine', 'Fera', 'Tempestade', 'Vampira'}.
  2. Intersecção: {'Wolverine'}.
  3. Diferença (A - B): {'Ciclope', 'Fera'}.

Capitulo Anterior | Proximo Capitulo