예제 #1
0
 // Copykonstruktor: erzeugt neue Instanz auf Basis einer
 // übergebenen Bruchinstanz
 // Hier mit obigem Customkonstruktor verkettet
 public Bruch(Bruch aBruch) : this(aBruch.numerator, aBruch.denominator)
 {
     // Ohne Verkettung müssten hier die Werte gesetzt werden:
     // this.numerator = aBruch.numerator;
     // this.denominator = aBruch.denominator;
 }
예제 #2
0
 // Division dieses durch einen anderen Bruch
 // Verfahren: Multiplikation mit dem Kehrwert, da andernfalls bei
 //            Ganzzahlen Problem der Ganzzahldivision auftritt!
 // Ändert den Wert dieses Bruchs
 public void divide(Bruch aBruch)
 {
     this.numerator   *= aBruch.denominator;
     this.denominator *= aBruch.numerator;
 }
예제 #3
0
 // Division einer Zahl durch einen Bruch
 // Liefert das Ergebnis als neuen Bruch zurück
 public static Bruch divide(int aZahl, Bruch aBruch)
 {
     // Aufruf obiger Klassenmethode unter
     // Verwendung von aZahl als Bruch:
     return(Bruch.divide(new Bruch(aZahl), aBruch));
 }
예제 #4
0
 // Multiplikation einer Zahl und eines Bruchs
 // Liefert das Ergebnis als neuen Bruch zurück
 public static Bruch multiply(int aZahl, Bruch aBruch)
 {
     // Verwendung obiger Klassenmethode möglich,
     // da aBruch * aZahl = aZahl * aBruch ist:
     return(Bruch.multiply(aBruch, aZahl));
 }
예제 #5
0
 // Subtraktion eines Bruchs von dieser Bruchinstanz
 // Der Wert dieser Bruchinstanz wird geändert
 public void subtract(Bruch aBruch)
 {
     this.numerator = this.numerator * aBruch.denominator
                      - this.denominator * aBruch.numerator;
     this.denominator = this.denominator * aBruch.denominator;
 }
예제 #6
0
 // Multiplikation dieses mit einem anderen Bruch
 // Ändert den Wert dieses Bruchs
 public void multiply(Bruch aBruch)
 {
     this.numerator   *= aBruch.numerator;
     this.denominator *= aBruch.denominator;
 }
예제 #7
0
 // Addition einer Zahl und eines Bruchs
 // Liefert das Ergebnis als neuen Bruch zurück
 public static Bruch add(int aZahl, Bruch aBruch)
 {
     // Verwendung obiger Klassenmethode, da aBruch + aZahl
     // dasselbe Ergebnis liefert wie aZahl + aBruch:
     return(Bruch.add(aBruch, aZahl));
 }
예제 #8
0
 // Addition eines Bruch zu dieser Bruchinstanz
 // Der Wert dieser Bruchinstanz wird geändert
 public void add(Bruch aBruch)
 {
     this.numerator = this.numerator * aBruch.denominator
                      + this.denominator * aBruch.numerator;
     this.denominator = this.denominator * aBruch.denominator;
 }
 // Überladen des Operators /
 // Ist unmittelbar zurückzuführen auf die Klassenmethode divide
 public static Bruch operator /(Bruch a, Bruch b)
 {
     return(Bruch.divide(a, b));
 }
예제 #10
0
 // Überladen des Operators *
 // Ist unmittelbar zurückzuführen auf die Klassenmethode multiply
 public static Bruch operator *(Bruch a, Bruch b)
 {
     return(Bruch.multiply(a, b));
 }