package tpe.fruh_razzaq_jando.pue1;

import java.math.*;

/**
 * Diese Klasse implementiert einen Bruch
 * 
 * @author TPE_UIB_01
 */
public class Bruch {

	// ================================================================================
	// Properties
	// ================================================================================

	private long nenner, zaehler, ganze;

	// ================================================================================
	// Constructors
	// ================================================================================

	Bruch(long zaehler, long nenner) {
		this.zaehler = zaehler;
		this.nenner = nenner;
		kuerze();
	}

	Bruch(long zaehler, long nenner, long ganze) {
		this.zaehler = zaehler;
		this.nenner = nenner;
		this.ganze = ganze;
		kuerze();
	}

	// ================================================================================
	// Accessors
	// ================================================================================

	public long getNenner() {
		return nenner;
	}

	public void setNenner(long nenner) {
		this.nenner = nenner;
	}

	public long getZaehler() {
		return zaehler;
	}

	public void setZaehler(long zaehler) {
		this.zaehler = zaehler;
	}

	public long getGanze() {
		return ganze;
	}

	public void setGanze(long ganze) {
		this.ganze = ganze;
	}

	// ================================================================================
	// Methods
	// ================================================================================

    public void unechterBruch() {
        if (this.ganze != 0) {
            this.zaehler = (this.ganze * this.nenner) + this.zaehler;
            this.ganze = 0;
        }
    }

    public void echterBruch() {
        while (this.zaehler > this.nenner) {
            this.ganze++;
            this.zaehler -= this.nenner;
        }
    }

	private void kuerze() {
		long ggt = getGGT(Math.min(zaehler, nenner));

		this.zaehler = this.zaehler / ggt;
		this.nenner = this.nenner / ggt;
	}

	private long getGGT(long aktuelleZahl) {
		if (zaehler % aktuelleZahl == 0 && nenner % aktuelleZahl == 0)
			return aktuelleZahl;
		else
			return getGGT(aktuelleZahl - 1);
	}

	@Override
	public String toString() {
		if (ganze == 0)
			return zaehler + "/" + nenner;
		else if (zaehler == 0 && nenner == 0)
			return ganze + "";
		else
			return ganze + " " + zaehler + "/" + nenner;
	}

}

@@ -594,24 +594,144 @@
 g nenner) %7B%0A
+%09%09if (nenner == 0)%0A%09%09%09throw new RuntimeException(%0A%09%09%09%09%09%22Bruch(zaehler, nenner) - nenner darf nicht 0 sein!%22);%0A%09%09else %7B%0A%09
 %09%09this.zaehl
@@ -736,32 +736,33 @@
 hler = zaehler;%0A
+%09
 %09%09this.nenner = 
@@ -769,16 +769,17 @@
 nenner;%0A
+%09
 %09%09kuerze
@@ -778,24 +778,28 @@
 %09%09kuerze();%0A
+%09%09%7D%0A
 %09%7D%0A%0A%09Bruch(l
@@ -834,24 +834,151 @@
 ng ganze) %7B%0A
+%09%09if (nenner == 0)%0A%09%09%09throw new RuntimeException(%0A%09%09%09%09%09%22Bruch(zaehler, nenner, ganze) - nenner darf nicht 0 sein!%22);%0A%09%09else %7B%0A%09
 %09%09this.zaehl
@@ -987,24 +987,25 @@
  = zaehler;%0A
+%09
 %09%09this.nenne
@@ -1014,24 +1014,25 @@
 = nenner;%0A%09%09
+%09
 this.ganze =
@@ -1039,16 +1039,17 @@
  ganze;%0A
+%09
 %09%09kuerze
@@ -1052,16 +1052,20 @@
 erze();%0A
+%09%09%7D%0A
 %09%7D%0A%0A%09// 
@@ -2109,16 +2109,113 @@
  %7D%0A    %7D
+%0A    %0A%09public double getDezimalzahl() %7B%0A%09%09return ganze + ((double) zaehler / (double) nenner);%0A%09%7D
 %0A%0A%09priva

Update Bruch.java