2.4.1 Representações para Números Complexos
Desenvolvemos a abstração de dados de números racionais como uma combinação de um numerador e um denominador. Um objeto de dados abstrato de números complexos pode ser pensado de duas maneiras quase equivalentes. A forma retangular especifica um número complexo em termos de suas partes real e imaginária, enquanto a forma polar especifica em termos de magnitude e ângulo.
As Duas Representações
Forma Retangular: números complexos como pares ordenados (parte real, parte imaginária)
- Adição e subtração são naturalmente expressas nesta forma
- z1 + z2 = (x1 + x2, y1 + y2)
Forma Polar: números complexos como magnitude e ângulo (r, A)
- Multiplicação e divisão são naturalmente expressas nesta forma
- z1 × z2 = (r1 × r2, A1 + A2)
Interface Abstrata
Independentemente de qual representação usamos, precisamos das seguintes operações:
Carregando playground de código...
Representação Retangular de Ben
Ben decide representar números complexos como pares de partes real e imaginária:
Carregando playground de código...
Representação Polar de Alyssa
Alyssa P. Hacker decide representar números complexos em forma polar como pares (magnitude, ângulo):
Carregando playground de código...
O Poder da Abstração de Dados
A disciplina da abstração de dados garante que a mesma implementação de add_complex, sub_complex, mul_complex e div_complex funcionará com a representação de Ben ou a representação de Alyssa. Essa é a essência da abstração de dados—separa o uso de dados de sua representação.
📝 Encontrou algo errado nesta página?
Sua ajuda é muito importante para melhorar a qualidade da tradução!
🐛 Encontrou um erro?
Se você encontrou:
- Erro de tradução (palavra incorreta, termo técnico errado)
- Erro de ortografia ou gramática
- Link quebrado
- Código de exemplo que não funciona
- Problema de formatação
❓ Tem uma dúvida?
Se você tem:
- Dúvida sobre o conteúdo desta seção
- Pergunta sobre um conceito do SICP
- Dificuldade em entender algum exemplo
- Questão sobre a tradução de algum termo
💡 Tem uma sugestão de melhoria?
Se você quer sugerir:
- Melhoria na explicação
- Exemplo adicional
- Recurso visual (diagrama, ilustração)
- Qualquer outra ideia
🌍 Quer discutir a tradução?
Se você quer debater:
- Escolha de tradução de algum termo
- Consistência de terminologia
- Nuances do português
Obrigado por ajudar a melhorar o SICP.js PT-BR! ✨