🚀 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:
- Quem são os mutantes que estão em pelo menos um dos grupos? (União).
- 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:
- União (): Junta todos os elementos dos dois conjuntos, sem repetir ninguém.
- Resultado: Xavier, Jean Grey, Emma Frost, Tempestade, Arcanjo.
- 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).
- 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:
- A União de A e B ().
- A Intersecção de A e B ().
- 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)
- Faça o Commit: No GitHub Desktop, digite a mensagem (ex:
Finaliza Capítulo 10 Estruturas de Dados) e clique em Commit to main. - 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.js9. 💡 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:
- União:
{'Ciclope', 'Wolverine', 'Fera', 'Tempestade', 'Vampira'}. - Intersecção:
{'Wolverine'}. - Diferença (A - B):
{'Ciclope', 'Fera'}.