Addieren und subtrahieren komplexer zahlen mit OOP-Struktur
Ich habe hier einen code, der gedruckt werden soll aus der Summe und der Differenz zweier komplexer zahlen. Die Anweisungen, die gegeben sind:
stellen Sie die Methoden add
, subtract
, und print
zu void
und
testen Sie mit Hilfe des Konstruktors ein Objekt.
public class Complex {
/**
* @param args
*/
public double real;
public double imag;
public String output = "";
public Complex(double real, double imag){
this.real += real;
this.imag += imag;
}
public Complex(){
real = 0;
imag = 0;
}
public double getReal(){
return real;
}
public void setReal(double real){
this.real = real;
}
public double getImag(){
return imag;
}
public void setImag(double imag){
this.imag = imag;
}
public void add(Complex num){
this.real = real + num.real;
this.imag = imag + num.imag;
}
public void subtract(Complex num){
this.real = real - num.real;
this.imag = imag - num.imag;
}
public void print(){
//
}
public static void main(String[] args) {
//TODO Auto-generated method stub
Complex c1 = new Complex(4.0, 8.5);
Complex c2 = new Complex(8.0, 4.5);
c1.add(c2);
c1.subtract(c2);
c1.print(); //expected answer 12.0 + 13.0i
//-4.0 - 4.0i
}
}
Die erwarteten Antworten sind 12.0 + 13.0 i und -4.0 - 4.0, ich. Bitte helfen Sie mir mit der Methode print
. Danke.
- Was ist das problem? Verwenden
System.out.println()
eventuell mitString.format()
- off-topic. warum Sie das hinzufügen von Werten im Konstruktor. warum nicht einfach abtreten?
- System.aus.println(real + "" + imag +"i");
- Ich habe versucht, das schon, aber die Ausgabe nur 4.0 + 8.5 ich.
- Es ist die richtige Ausgabe: c1.add(c2) => 12+13i. dann c1.subtrahieren(c2)=> 12+13i-(8+4.5 i)=4+8.5 i... In der Tat, fügen Sie dann die Subtraktion der gleiche Wert in c1, so dass am Ende c1 ist Links unverändert
- Ist das problem wirklich mit Ihrer print () - Methode? Wenn Sie immer die falsche Ausgabe, es klingt wie Sie benötigen, um das addieren und subtrahieren und anderen Methoden statt.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vielleicht ist dies nicht das, was du suchst, aber um die Anzahl gedruckt werden
nicht genug, um so etwas wie dies in Ihrer print-Methode?
System.aus.print("Die Zahl ist:" +real +"+i" +imag);
Sie falsch verwenden drucken merhod. wenn Sie möchten, um zu sehen, korrektes Ergebnis müssen Sie die rewrite-Methode hinzufügen, wie dies:
umschreiben subtrahieren Methode.
Nun die main-Methode wie folgt Aussehen:
print-Methode, wie gesagt, bisher so Aussehen:
Erklärung:
In Ihrem code haben Sie Fehler. Sie fügen c2 zu c1 und dann subtrahieren c2 von c1 und drucken Sie dann das Ergebnis. Mathematisch sieht dies wie : c1= c1+c2-c2;