• Aktualisierte Forenregeln

    Eine kleine Änderung hat es im Bereich Forenregeln unter Abschnitt 2 gegeben, wo wir nun explizit darauf verweisen, dass Forenkommentare in unserer Heftrubrik Leserbriefe landen können.

    Forenregeln


    Vielen Dank

[Java Problem] Statische Methoden

AW: Statische Methoden

frogi am 07.11.2008 11:30 schrieb:
Die Umrechnungen sind:
1 Acker = 144 Quadratrute
1 Morgen = 4 Acker
1 Großhufe = 100 Morgen
Ich hab für diese Vereinfachung eine Methode simplify eingefügt. Diese wird nach jeder Operation (Initialisierung, Addieren, Umrechnen) automatisch ausgeführt. Wenn du per Hand Werte ändertst (zB: Fl1.Qua = 4500), musst du auch per Hand Fl1.simplify() ausführen.
Die Methode ausgabe habe ich zu der Funktion toString umfunktioniert, weil jede Klasse die Methode toString hat und diese bei einer Standardausgabe automatisch aufgerufen wird. Das vereinfacht nur den Umgang mit der Ausgabe.
public class RoemischeFlaeche {

public int Qua, Ack, Mor, Gro;

public RoemischeFlaeche(int qua, int ack, int mor, int gro) {
this.Qua = qua;
this.Ack = ack;
this.Mor = mor;
this.Gro = gro;
this.simplify();
}

public void umrechnen(int n) {
this.Qua = n % 1000;
n = (n - Qua) / 1000;
this.Ack = n % 10;
n = (n - Ack) / 10;
this.Mor = n % 100;
n = (n - Mor) / 100;
this.Gro = n;
this.simplify();
}

public void addiereFlaechen(RoemischeFlaeche Fl2) {
this.Qua += Fl2.Qua;
this.Ack += Fl2.Ack;
this.Mor += Fl2.Mor;
this.Gro += Fl2.Gro;
this.simplify();
}

public void simplify() {
this.Ack += (this.Qua / 144);
this.Qua %= 144;
this.Mor += (this.Ack / 4);
this.Ack %= 4;
this.Gro += (this.Mor / 100);
this.Mor %= 100;
}

public String toString() {
return "Großhufe: " + Gro + "\n" +
"Morgen: " + Mor + "\n" +
"Acker: " + Ack + "\n" +
"Quadratrute: " + Qua + "\n";
}
}

public class RoemischeRechnung {

public RoemischeRechnung() {
RoemischeFlaeche Fl1 = new RoemischeFlaeche(0, 0, 0, 0);
RoemischeFlaeche Fl2 = new RoemischeFlaeche(0, 0, 0, 0);
int flaeche1 = 25953125, flaeche2 = 74040019;
Fl1.umrechnen(flaeche1);
Fl2.umrechnen(flaeche2);
Fl1.addiereFlaechen(Fl2);
System.out.println(Fl1);
}

public static void main(String[] args) {
new RoemischeRechnung();
}

}
 
AW: Statische Methoden

puh... verstanden =)

kann nich in java bei der ausgabe ein positivs ergebnis erzwingen ?

also auch wenn die erste zahl kleiner ist als die zweite, z.b. -7 + 5 = -2

wie kann ich da eine +2 bekommen?
 
AW: Statische Methoden

positive Zahl = Math.abs( negative Zahl );
Ich weiß nicht, ob du die Mathe-Klasse noch einbinden musst. Eclipse dürfte das aber für dich automatisch erledigen.
 
AW: Statische Methoden

Onlinestate am 07.11.2008 15:03 schrieb:
positive Zahl = Math.abs( negative Zahl );
Ich weiß nicht, ob du die Mathe-Klasse noch einbinden musst. Eclipse dürfte das aber für dich automatisch erledigen.
Muss man nicht, da Math in java.lang liegt.
 
AW: Statische Methoden

habs jetzt so gemacht, sicherlich falsch. wie gehts richtig?

/* 9. Testfall */

differenz1 = 5759855;
differenz2 = 5760000;

differenz1 = Math.abs( 5759855 );

System.out.println(gibDifferenz(differenz1, differenz2));
 
AW: Statische Methoden

differenz1 = Math.abs( 5759855 );
Der Teil ist doch total sinnlos. Du schreibst in die Variable differenz1 den Absolutbetrag von einem positiven Wert. Der bleibt natürlich positiv und wenn du später wieder etwas abziehst, was größer ist, wird das Ergebnis trotzdem negativ. Der Absolutbetrag wird nur einmalig von der Funktion zurückgegeben.
Ich würde vorschlagen die Math.abs-Funktion in die Differenzfunktion zu integrieren.
 
AW: Statische Methoden

http://userpage.fu-berlin.de/~ram/pub/pub_jf47ht81Ht/java_abbildungsausdruck_de

hier habe ich noch etwas gefunden unter dem abschnitt "java.lang.math.abs" -> sollte es so aussehen?

/* 9. Testfall */

differenz1 = 5759855;
differenz2 = 5760000;

System.out.println(gibDifferenz(differenz1, differenz2));

-> wie muss es dann aussehen? so:
java.lang.System.out.println( java.lang.Math.abs( -2.0 ));
?

nur anstatt der -2 die differenz zwischen differenz1 und differenz2, also -145 ?
 
AW: Statische Methoden

Edit: Habs schon hinbekommen :top:
 
Zurück