Questão : Crie uma Classe Complex para realizar aritmética com números complexos. Escreva um programa para testar sua classe.
Os números complexos tem a forma : realPart + imaginayPart * i (i = raiz quadrada de -1)
Utilize variáveis de ponto flutuante para representar os dados private da classe. Forneça um construtor que permita que um objeto dessa classe seja inicializado quando ele for declarado. Forneça um construtor sem argumentos com valores padrão caso nenhum inicializador seja fornecido. Forneça métodos public para cada um dos itens seguintes:
A- Adição de dois números Complex : as partes reais somadas de um lado e as partes imaginarias são somadas de outro.
B- Subtração de dois números Complex: a parte real do operando direito é subtraída da parte real do operando esquerdo e a parte imaginaria do operando direito é subtraida da parte imaginaria do operando esquerdo
C- Imprimir os números Complex na forma(a,b), onde a é a parte real e b é a parte imaginária
// Exercise 8.2 Solution
// Complex.java
// Definition of class Complex
public class Complex {
private double real;
private double imaginary;
// Initialize both parts to 0
public Complex() { this( 0.0, 0.0 ); }
// Initialize real part to r and imaginary part to 0
public Complex( double r ) { this( r, 0.0 ); }
// Initialize real part to r and imaginary part to i
public Complex( double r, double i )
{
real = r;
imaginary = i;
}
// Add two Complex numbers
public Complex add( Complex right )
{
return new Complex( real + right.real,
imaginary + right.imaginary );
}
// Subtract two Complex numbers
public Complex subtract( Complex right )
{
return new Complex( real - right.real,
imaginary - right.imaginary );
}
// Return String representation of a Complex number
public String toString()
{ return "(" + real + ", " + imaginary + ")"; }
}
// Exercise 8.2: ComplexTest.java
// Test the Complex number class
import javax.swing.*;
public class ComplexTest {
public static void main( String args[] )
{
Complex a, b;
a = new Complex( 9.9, 7.7 );
b = new Complex( 1.2, 3.1 );
String result = "a = " + a;
result += "\nb = " + b;
result += "\na + b = " + a.add( b );
result += "\na - b = " + a.subtract( b );
JOptionPane.showMessageDialog(
null, result, "Complex Test",
JOptionPane.INFORMATION_MESSAGE );
System.exit( 0 );
}
}
Dúvidas:
1- Esse código :public Complex() { this( 0.0, 0.0 ); }
public Complex( double r, double i )
{
real = 0;
imaginary = 0;
}
public Complex add( Complex right )
{
return new Complex( real + right.real,
imaginary + right.imaginary );
}
a.add(b) ;
Muito grato pela ajuda , pois preciso continuar meus estudos e tô meio parado nessa questão !!! Obrigado pessoal !!!