Hilfe bei Java-Aufgabe benötigt..

11/16/2016 11:00 ¤Freakieh¤#1
Servus Freunde,

habe hier eine Aufgabe, die ich allerdings nicht wirklich gelöst bekomme. Ich weiß nicht, wie ich richtig multiplizieren kann. Könnt ihr mir vielleicht helfen? Den gewissen Ansatz - denke ich ( vorausgesetzt, dass es richtig ist ) - habe ich bereits schon.

Aufgabe:

Mein Ansatz:

Wäre echt dankbar, wenn mir jemand helfen könnte :):handsdown:
Möchte - wenn möglich - aber auch erklärt haben, WIESO es SO ist und nicht anders.. ich krieg bei Java so langsam aber sicher die Krise... :(:mad:
11/16/2016 11:38 .Scy#2
Wie funktioniert denn die bruch-rechnung überhaupt?

wenn du 3/5 als bruch hast und ihn mit 2 multiplizierst was erhältst du dann?

(3/5)*2 = (3/5)*(2/1) = (6/5)

nenner mal nenner, zähler mal zähler. eine ganze zahl kann man immer als (zahl/1) schreiben.

dies wäre also der ansatz für deine multiplikation:

Code:
public void multipliziere (int n)
{
   this.zaehler *= n;
}
Nun führ dir vor augen wie man brüche mit brüchen multipliziert(steht auch schon in diesem post) und dann ist es ganz einfach wie du die andere methode dafür schreibst.

die toString methode ist auch einfach.

Code:
@Override
public String toString(){
return "" + this.zaehler + "/" + this.nenner;
}
sollte selbst erklärend sein.
11/23/2016 22:28 ¤Freakieh¤#3
Danke dir nochmal!

Wie erweitere ich dieses Programm um eine private Klasse (?) Ich möchte beispielsweise bestimmt haben, welches der größte gemeinsame Teiler von zwei Brüchen ist und wie kann ich mithilfe des GGT die Brüche kürzen? Habe echt keinen Schimmer davon, welche Funktionen / Wege ich dafür benötige...
11/24/2016 13:26 .Scy#4
also den GGT berechnen sollte ja nicht das problem sein.

3/5 kann man z.b. nicht kürzen, da 3 und 5 keine gemeinsamen teiler haben.

nimmst du nun aber 4/8, so kannst du mit hilfe des GGT auf 1/2 kürzen, sprich du suchst den GGT, in diesem fall 4, und teilst beide terme durch diesen GGT.

ich gehe mal davon aus, dass du mit privater klasse keine eigene klasse meinst, sondern eine private variable(in diesem fall ein int) in der klasse Bruch.

code dazu könnte z.b. so aussehen:
Code:
class Bruch{

private int ggT;

//andere funktionen


private void ggT(int a, int b){
    //hier kommt die berechnung rein

   ggT = /* Berechneter wert*/;
}

public shorten(){
   ggT(nenner, zaehler);
   nenner = nenner / ggT;
   zaehler = zaehler / ggT;
}
11/25/2016 15:26 warfley#5
Zum berechnen vom ggt verwendet man am besten den euklidischen Algorithmus
11/25/2016 23:31 ¤Freakieh¤#6
Danke dir vielmals Scy :)

Bosnia, der Thread ist nicht in der Trading Sektion drin. Außerdem brauche ich keine direkten Lösungen, sondern Erklärungen, damit ich das selber gebacken bekomme und bin sehr dankbar dafür, dass ich es auch von netten Usern - in dem Fall Scy - erklärt bekomme. :)