Informatiker Board (http://www.informatikerboard.de/board/index.php)
- Themengebiete (http://www.informatikerboard.de/board/board.php?boardid=1)
-- Praktische Informatik (http://www.informatikerboard.de/board/board.php?boardid=6)
--- Aufgabe richtig verstehen (http://www.informatikerboard.de/board/thread.php?threadid=2063)


Geschrieben von Java_Beginner am 07.12.2015 um 05:00:

 

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?



Geschrieben von eulerscheZahl am 07.12.2015 um 06:27:

 

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) {...}



Geschrieben von Java_Beginner am 07.12.2015 um 06:37:

 

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?



Geschrieben von eulerscheZahl am 07.12.2015 um 13:39:

 

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
}


Forensoftware: Burning Board, entwickelt von WoltLab GmbH