# Bruchrechnen



## fR4GGy (10. Sep 2003)

Hi ich habe eine Frage könnte mir jemand
 den code für ein java progie geben das bruch rechnet ... 
 und auch dabei kürzt ... bitte bitte 

 es reicht auhc nur der teil zum kürzen ... da der rest schon funktioniert .... 


 danke im voraus


----------



## bummerland (10. Sep 2003)

berechne den grössten gemeinsamen teiler und dividiere deine zähler und nenner durch diesen.
das sollte funktionieren oder?


----------



## fR4GGyauthor (10. Sep 2003)

ja gena .. aber wie soll ich das in eine code schrieben pls hilft mir


----------



## Nobody (10. Sep 2003)

du nimmst eine zählschleife und fängst an durchzuzählen. jedesmal, nimmst du den modulo und überprüfst ob dieser wert == 0 ist


----------



## Amberstar (27. Okt 2003)

Hier habe ich kurz mal verfasst, hoffe es hilft


```
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**********************************************/											
}
```

*EDIT:* code tags eingefügt


----------

