class Bruch
{
private int zaehler;
private int nenner;
/************************** Konstruktor******************************************************/
void bruch(int z, int n) { //Konstruktor
zaehler = z;
if (n <= 0)
{
System.out.println("Nenner mit 0 ist nicht erlaubt!");
System.out.println("Nenner wird auf 1 gesetzt.");
nenner = 1;
}
else
{
nenner = n;
} } //Ende Konstruktor
/************************** Addition von zwei Brüchen****************************************/
public Bruch addition(Bruch bruch2) {
Bruch ergebnis = new Bruch();
ergebnis.zaehler = zaehler * bruch2.nenner + bruch2.zaehler * nenner;
ergebnis.nenner = nenner * bruch2.nenner;
return ergebnis.kuerzen();
} //Ende addition von zwei Brüchen
/************************** Subtraktion von zwei Brüchen*************************************/
public Bruch subtraktion(Bruch bruch2) {
Bruch ergebnis = new Bruch();
ergebnis.zaehler = zaehler * bruch2.nenner - bruch2.zaehler * nenner;
ergebnis.nenner = nenner * bruch2.nenner;
return ergebnis.kuerzen();
} //Ende subtraktion von zwei Brüchen
/************************** Multiplikation von zwei Brüchen***********************************/
public Bruch multiplikation(Bruch bruch2) {
Bruch ergebnis = new Bruch();
ergebnis.zaehler = zaehler * bruch2.zaehler;
ergebnis.nenner = nenner * bruch2.nenner;
return ergebnis.kuerzen();
} //Ende multiplikation von zwei Brüchen
/************************** Division von zwei Brüchen***********************************/
public Bruch division(Bruch bruch2) {
Bruch ergebnis = new Bruch();
ergebnis.zaehler = zaehler * bruch2.nenner;
ergebnis.nenner = nenner * bruch2.zaehler;
return ergebnis.kuerzen();
}
/************************** Ausgabe des Ergebnisses***********************************/
public String toString() {
String Value = new String();
double dDezi = (zaehler / nenner);
Value = zaehler + "/" +nenner + " als Dezimalzahl " + dDezi ;
return Value;
}
/************************** Ausgabe des gekürzten Bruches***********************************/
private Bruch kuerzen()
{
int iGrößer,iKleiner,iErgebnis = 0;
boolean bStart = true;
Bruch ergebniss = new Bruch();
iGrößer = (nenner < zaehler ? zaehler : nenner);
if ( iGrößer == nenner)
{
iKleiner = zaehler;
}
else
{
iKleiner = nenner;
}
while (iErgebnis != iKleiner)
{
if (!bStart)
{
if (iKleiner < iErgebnis)
{
iGrößer = iErgebnis;
}
else
{
iGrößer = iKleiner;
iKleiner = iErgebnis;
}
}
else
{
bStart = false;
}
iErgebnis = iGrößer - iKleiner;
}
ergebniss.zaehler = zaehler / iErgebnis;
ergebniss.nenner = nenner / iErgebnis;
return ergebniss;
}
/************************** Anfang Main-Methode***********************************************/
public static void main(String[] args) {
Bruch bruch1 = new Bruch();
Bruch bruch2 = new Bruch();
bruch1.bruch(3,0);
bruch2.bruch(3,6);
System.out.println(bruch1.multiplikation(bruch2));
}
/************************** Ende Main-Methode**********************************************/
}