0%
Pular para o conteúdo principal
0%

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

Reporte um bug →

❓ 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

Inicie uma discussão →

💡 Tem uma sugestão de melhoria?

Se você quer sugerir:

  • Melhoria na explicação
  • Exemplo adicional
  • Recurso visual (diagrama, ilustração)
  • Qualquer outra ideia

Sugira uma melhoria →

🌍 Quer discutir a tradução?

Se você quer debater:

  • Escolha de tradução de algum termo
  • Consistência de terminologia
  • Nuances do português

Discussão de tradução →

Obrigado por ajudar a melhorar o SICP.js PT-BR! ✨