Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » Aufgabe richtig verstehen » Antwort erstellen » Hallo Gast [Anmelden|Registrieren]

Antwort erstellen
Benutzername: (du bist nicht eingeloggt!)
Thema:
Nachricht:

HTML ist nicht erlaubt
BBCode ist erlaubt
Smilies sind erlaubt
Bilder sind erlaubt

Smilies: 21 von 33
smileWinkDaumen hoch
verwirrtAugenzwinkerngeschockt
Mit ZungeGottunglücklich
Forum Kloppebösegroßes Grinsen
TanzentraurigProst
TeufelSpamWillkommen
LehrerLOL HammerZunge raus
Hilfe 
aktuellen Tag schließen
alle Tags schließen
fettgedruckter Textkursiver Textunterstrichener Text zentrierter Text Hyperlink einfügenE-Mail-Adresse einfügenBild einfügen Zitat einfügenListe erstellen CODE einfügenPHP CODE farbig hervorheben
Spamschutz:
Text aus Bild eingeben
Spamschutz

Die letzten 10 Beiträge
eulerscheZahl

Gehen wir mal davon aus, dass die Funktionen nicht static sind.
Die Variablen zaehler und nenner dürfen auf keinen Fall static sein (auch wenn du add als static deklarierst): das heißt nämlich, dass alle Brüche den selben Zähler und Nenner haben. Da du aber verschiedene Brüche haben willst, ist das kontraproduktiv.
Die Multiplikation würde dann so funktionieren:
code:
1:
2:
3:
4:
5:
void multiply(Bruch b2) {
    this.zaehler *= b2.zaehler;
    this.nenner *= b2.nenner;
    //evtl. noch kürzen
}
Java_Beginner

Sorry für das Penner großes Grinsen Diese bescheuerte Autokorrektur muss ich mal ausschalten böse


Zitat:
willst du einen neuen Bruch erzeugen oder den bestehenden verändern?


Das geht mir aus der Aufgabenstellung eben nicht wirklich hervor. Um Brüche zu addieren oder auch subtrahieren, benötige ich ja zwei Stück. Daher meine Vermutung, dass der Bruch aus dem Konstruktor genommen werden muss und die Methode add() den zweiten Bruch beinhaltet?
eulerscheZahl

int penner? geschockt

Du hast bei add zwei Möglichkeiten: willst du einen neuen Bruch erzeugen oder den bestehenden verändern?
Für den neuen Bruch brauchst du ein
code:
1:
static Bruch add(Bruch b1, Bruch b2) {...}

Um den bestehenden zu verändern:
code:
1:
void add(Bruch b2) {...}
Java_Beginner

Hi :-)

Ich habe die gleiche Aufgabe bekommen und stelle mir jetzt vorab die Frage, wie diese genau zu verstehen ist. Ich habe den Konstruktor welcher den ersten Bruch enthält

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
private static int zaehler;
private static int penner;

public Bruch (int zaehler, int nenner) 
{
   this.zaehler = zaehler;
   this.nenner = nenner; 
}


und dann die statischen Methoden add() ,subtrakt(), multiply() und division() die jeweils zwei weitere Integer - Parameter haben?
SarahK.

Kein Problem :-)
Karlito

OK, dann will ich nix gesagt haben. Habe es halt nicht geprüft.

Gruß,

Karlito
SarahK.

Hab heute Mittag zig Versuche damit gestartet und die waren alle erfolgreich.
Karlito

Check mal bitte noch den ggT. Du hast meiner Meinung nach den euklidischen Algorithmus falsch implementiert.
SarahK.

Danke für die Antwort, dann werde ich das mal abändern.
eulerscheZahl

Zunächst einmal finde ich die Architektur nicht gelungen: du legst hier zwei Brüche in einer Klasse an und teilst dann die Rechenmethode mit. Was, wenn man mit dem Ergebnis weiterrechnen will, oder auch nur einen Bruch anlegen und kürzen? Außerdem darf die Multiplikation nicht static sein, wenn du sie mit h.multiplikation() aufrufen willst.

Die Klasse Bruch hat einen Zähler und einen Nenner. Du kannst einen anderen Bruch dazuaddieren, subtrahieren, ….
Beim ggT gibst du am besten das Ergebnis zurück, also private static int ggT (int a, int b)
Und beim kürzen teilst du Zähler und Nenner beide durch den vom ggT berechneten Wert.
Es sind weitere Beiträge zu diesem Thema vorhanden. Klicken Sie hier, um sich alle Beiträge anzusehen.