Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Die Aufgabe besteht darin ein Programm zu schreiben, welches zwei komplexe Zahlen addiert .
hier ein erster Versuch, erst wurde eine Klasse angelegt:
Java:
public class Complex
{
private double x; //Realteil
private double y; //Imaginaerteil
public Complex(double x, double y)
{
this.x = x;
this.y = y;
}
public Complex add(Complex z) //Methode zum Addieren
{
Complex k = this; //Erzeugung einer neuen complexen Zahl
double real = k.x + z.x;
double imag = k.y + z.y;
return new Complex(real, imag);
}
public Complex mult(Complex z) //Methode zum Multiplizieren, falls ein Complex vorhanden ist
{
Complex k = this;
double real = k.x * z.x - k.y * z.y;
double imag = k.x * z.y + k.y * z.x;
return new Complex(real, imag);
}
public Complex mult(double a) //Methode zum Multiplizieren, falls ein double vorhanden ist
{
Complex k =this;
double real = a * k.x;
double imag = a *k.y;
return new Complex(real,imag);
}
//Zurueckgabe vom Real-und Imaginaerteil der complexen Zahl
public double Re()
{return x;}
public double Im()
{return y;}
}
und dann das Testprogramm:
Java:
public class TestComplex
{ public static void main (String[]args)
{
Complex a = new Complex(2.1, 3.0);
Complex b = new Complex(1.0, 4.0);
//fuer die Zahl a
System.out.println("Methode add: " + a.add(b));
System.out.println("Methode mult(complex): " + a.mult(b));
System.out.println("Methode mult(double): " + a.mult(2.0));
System.out.println("Rueckgabe Realteil: " + a.Re());
System.out.println("Rueckgabe Imaginaerteil: " + a.Im());
System.out.println();
//fuer die Zahl b
System.out.println("Methode add: " + b.add(a));
System.out.println("Methode mult(complex): " + b.mult(a));
System.out.println("Methode mult(double): " + b.mult(3.0));
System.out.println("Rueckgabe Realteil: " + b.Re());
System.out.println("Rueckgabe Imaginaerteil: " + b.Im());
}
}
Leider läuft es noch nicht so, wie ich es mir vorstelle.
In der Ausgabe erscheint zwar ein Real - und ein Imaginaerteil , aber eben auch noch etwas, von dem ich mir nicht erklären kann, wo es herkommt.
Was muss ich verändern?
[JAVA=14]Complex k = this; //Erzeugung einer neuen complexen Zahl[/code]
Hier wird übrigens keine neue Instanz erzeugt, sondern nur [c]this[/c] über eine lokale Variable referenziert.
Nun z.B. "Mult(..)" gibt ein Complex zurück. Wenn du dann system.out.println(complex) machst, dann ruft er complex.toString() auf und du erhälst einen Identifier für das Objekt. Entweder überschreibst du toString() oder du machst dir ne Methode die dir deine komplexe Zahl sinnvoll als String ausgibt.