Skip to content

Instantly share code, notes, and snippets.

@nitschmann
Created March 27, 2012 07:39
Show Gist options
  • Save nitschmann/2213746 to your computer and use it in GitHub Desktop.
Save nitschmann/2213746 to your computer and use it in GitHub Desktop.
A class for easy fractions in Java
/**
*
* @author Florian Nitschmann
* @version 1.0
*/
public class fractionArithmetic {
/*
* Variablen für den Bruch (Zähler und Nenner)
*
* @access public
*/
public int zaehler;
public int nenner;
/*
* Initialisierungsmethode für einen neuen Bruch
*
* @access public
* @param int zaehler - Der Zähler des Bruchs
* @param int nenner - Der Nenner des Bruchs
*/
public fractionArithmetic(int zaehler, int nenner) {
this.zaehler = zaehler;
this.nenner = nenner;
}
//-----Rechenoperationen
/*
* Addition - Zwei Brüche sollen addiert werden
*
* @access public
* @param fractionArithmetic a - Der Bruch welcher addiert werden soll
* @return fractionArithmetic
*/
public fractionArithmetic addition(fractionArithmetic a){
int newNenner = this.kgv(this.nenner, a.nenner);
int newZaehler1 = (newNenner/this.nenner)*this.zaehler;
int newZaehler2 = (newNenner/a.nenner)*a.zaehler;
int gZaehler = newZaehler1+newZaehler2;
return new fractionArithmetic(gZaehler, newNenner);
}
/*
* Subtraktion - Von einem Bruch soll ein andere abgezogen werden
*
* @access public
* @param fractionArithmetic a - Der abzuziehende Bruch
* @return fractionArithmetic
*/
public fractionArithmetic subtraktion(fractionArithmetic a){
int newNenner = this.kgv(this.nenner, a.nenner);
int newZaehler1 = (newNenner/this.nenner)*this.zaehler;
int newZaehler2 = (newNenner/a.nenner)*a.zaehler;
int gZaehler = newZaehler1-newZaehler2;
return new fractionArithmetic(gZaehler, newNenner);
}
/*
* Multiplikation - Zwei Brüche sollen miteinander multipliziert werden
*
* @access public
* @param fractionArithmetic a
* @return fractionArithmetic
*/
public fractionArithmetic multiplikation(fractionArithmetic a){
//Bruch variablen
int zaehler1 = this.zaehler;
int nenner1 = this.nenner;
int zaehler2 = a.zaehler;
int nenner2 = a.nenner;
//Neuen Bruch ausgeben
return new fractionArithmetic((zaehler1*zaehler2), (nenner1*nenner2));
}
/*
* Division - Bruch soll durch anderen dividiert werden
*
* @access public
* @param fractionArithmetic a - Der abzuziehende Bruch
* @return fractionArithmetic
*/
public fractionArithmetic division(fractionArithmetic a){
//Bruch Variablen:
int zaehler1 = this.zaehler;
int nenner1 = this.nenner;
int zaehler2 = a.zaehler;
int nenner2 = a.nenner;
//Neuen Bruch berechnen:
return new fractionArithmetic((zaehler1*nenner2), (nenner1*zaehler2));
}
//-----Bruchoperationen
/*
* toString - Wandelt einen fractionArithmetic in einen String um
*
* @access public
* @return String
*/
public String toString(){
String result = String.valueOf(this.zaehler) + "/" + String.valueOf(this.nenner);
return result;
}
/*
* kgv - Berechnet den kleinsten gemeinsamen Vielfachen zweier Zahlen
*
* @access private
* @param int zahl1 - Die erste Zahl
* @parma int zahl2 - Die zweite Zahl
* @return int
*/
private int kgv(int zahl1, int zahl2){
int h1 = zahl1;
int h2 = zahl2;
while (zahl1%zahl2 != 0){
if (zahl1 < zahl2) zahl1 = zahl1 + h1;
else zahl2 = zahl2 + h2;
}
return zahl1;
}
//---End
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment