Aufgabe richtig verstehen |
11.01.2015, 21:30 | Auf diesen Beitrag antworten » | ||||||||||
SarahK. | Aufgabe richtig verstehen Meine Frage: Hallo :-) Eine kurze Frage, und zwar: Wie versteht ihr die folgende Aufgabe: Brüche (z.B. 1/3) werden in Java meist mittels float-Variablen dargestellt. Das kann aber in mathematischen Anwendungen zu Rundungsfehlern führen, welche man vermeiden kann, wenn man eine eigene Klasse Bruch verwendet. Die Klasse Bruch hält intern den Zähler und den Nenner eines Bruchs als Integer-Zahlen. Ein Bruch wird unter Angabe seines Zählers und seines Nenners erzeugt. Für einen Bruch gilt, dass er Zähler und Nenner immer in gekürzter Form speichert und ein negatives Vorzeichen immer im Zähler hält. (Bei Eingabe von 5 und -10 wird also -1 und 2 gespeichert. Die Klasse Bruch bietet die vier Grundrechenarten als statische Methoden und eine Methode toString(), welche einen Bruch in der Form "<z>/<n>" zurückgibt. Meine Ideen: So wie ich es verstehe, soll ein Bruch eingegeben werden können und dieser dann in gekürzter Form ausgegeben werden. Sollte das Minus - Zeichen im Nenner stehen, muss dieses in den Zähler? Besten Dank |
||||||||||
|
|||||||||||
12.01.2015, 00:45 | Auf diesen Beitrag antworten » | ||||||||||
Karlito | Hallo SarahK., nicht ganz. Die Ausgabe spielt eigentlich keine Rolle, Du sollst nur die Methode toString() so überschreiben, dass es den Wert des gekürzten Bruches ausgibt. Außerdem soll das Minus nicht in den Zähler wenn es im Nenner steht, sondern immer wenn der Bruch insgesamt negativ ist. Und weiterhin sollst Du mit Brüchen rechnen können... Die Klasse muss also über die Methoden add(), substract(), multiply() und divide() verfügen. Gruß, Karlito |
||||||||||
12.01.2015, 22:37 | Auf diesen Beitrag antworten » | ||||||||||
SarahK. | Sorry, das ich mich jetzt erst melde. War ein harter Tag an der Hochschule :-) Vielen Dank für dein Verständnis. Bei den Methoden hätte ich voll daneben gelangt. Eine Frage noch: Hat das mit "statische" Methoden eine besondere Bedeutung? Was bedeutet in Java eigentlich genau static? Besten Dank :-) |
||||||||||
12.01.2015, 23:21 | Auf diesen Beitrag antworten » | ||||||||||
Karlito | Kein Problem. Ich habe auch nicht immer Zeit hier zu antworten. Das mit den statischen Methoden hat eine besondere Bedeutung. Statische Methoden sind solche, die man auch ohne eine Klasseninstanz ausführen kann. Ein Beispiel dafür ist die main-Methode. An der Stelle siehst du auch den Modifikator "static". Aber hier noch einmal ein Beispiel:
Hier noch ein Beispiel was näher an die Aufgabe herankommt:
Wird sicher eine Weile dauern, bis das alles wirklich verständlich ist, aber ich hoffe das macht es klar. Gruß, Karlito |
||||||||||
Anzeige | |||||||||||
|
|||||||||||
13.01.2015, 14:58 | Auf diesen Beitrag antworten » | ||||||||||
SarahK. | Danke für die Antwort. Das wird eine Weile dauern, bis das sitzt. |
||||||||||
14.01.2015, 00:01 | Auf diesen Beitrag antworten » | ||||||||||
SarahK. | Ich glaube es verstanden zu haben mit static (auf die Aufgabe Bruch bezogen). Wenn ich in den 4 statischen Methoden Summe, Differenz, Multiplikation und Division static verwende, dann wird der Wert, welcher in den Objekten definiert wird auf diese statischen Methoden übergeben? |
||||||||||
14.01.2015, 14:11 | Auf diesen Beitrag antworten » | ||||||||||
Karlito | Mh... Statisch heißt eigentlich im Prinzip nur, dass du keine Instanz der Klasse brauchst um die Methode benutzen zu können. Das hat zur Folge, dass Du, wenn du zwei Brüche addieren willst, die Objektreferenzen an die statische Methode übergeben musst. Gruß, Karlito |
||||||||||
14.01.2015, 15:07 | Auf diesen Beitrag antworten » | ||||||||||
SarahK. | Okey :-) Danke dir. |
||||||||||
22.01.2015, 16:53 | Auf diesen Beitrag antworten » | ||||||||||
SarahK. | Hey Leute, ich bräuchte noch einmal Eure Hilfe zu der Aufgabe. Habe jetzt den folgenden Code geschrieben:
Jetzt müsste ich es nur noch schaffen, dass in der Multiplizieren - Methode ergebnis und result durch den ggT geteilt werden, ich bekomme es einfach nicht hin. Wenn weitere Fehler im Code sind, wäre ich euch dankbar, wenn ihr mir sagt, wo diese sind. Könnt Ihr mir bitte weiterhelfen? |
||||||||||
22.01.2015, 17:18 | Auf diesen Beitrag antworten » | ||||||||||
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. |
||||||||||
22.01.2015, 18:05 | Auf diesen Beitrag antworten » | ||||||||||
SarahK. | Danke für die Antwort, dann werde ich das mal abändern. |
||||||||||
22.01.2015, 19:50 | Auf diesen Beitrag antworten » | ||||||||||
Karlito | Check mal bitte noch den ggT. Du hast meiner Meinung nach den euklidischen Algorithmus falsch implementiert. |
||||||||||
22.01.2015, 20:07 | Auf diesen Beitrag antworten » | ||||||||||
SarahK. | Hab heute Mittag zig Versuche damit gestartet und die waren alle erfolgreich. |
||||||||||
22.01.2015, 20:17 | Auf diesen Beitrag antworten » | ||||||||||
Karlito | OK, dann will ich nix gesagt haben. Habe es halt nicht geprüft. Gruß, Karlito |
||||||||||
22.01.2015, 20:21 | Auf diesen Beitrag antworten » | ||||||||||
SarahK. | Kein Problem :-) |
||||||||||
07.12.2015, 05:00 | Auf diesen Beitrag antworten » | ||||||||||
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
und dann die statischen Methoden add() ,subtrakt(), multiply() und division() die jeweils zwei weitere Integer - Parameter haben? |
||||||||||
07.12.2015, 06:27 | Auf diesen Beitrag antworten » | ||||||||||
eulerscheZahl | int penner? 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
Um den bestehenden zu verändern:
|
||||||||||
07.12.2015, 06:37 | Auf diesen Beitrag antworten » | ||||||||||
Java_Beginner | Sorry für das Penner Diese bescheuerte Autokorrektur muss ich mal ausschalten
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? |
||||||||||
07.12.2015, 13:39 | Auf diesen Beitrag antworten » | ||||||||||
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:
|
|
Verwandte Themen
Die Beliebtesten » |
|
Die Größten » |
|
Die Neuesten » |
|