# Kettenbruch in Java



## Ete (7. Dez 2006)

Hallo kann mir jemand helfen?
Habe noch nie programmiert und soll ein Programm in Java schreiben,
welches einen Zähler und einen Nenner, vom Typ positive rationale Zahl, einleist
und die Kettenbruchentwicklung sowie die Näherungswerte ausgeben soll.
Kann mir jemand bei der Codierung der Kettenbrüche (for-Schleife??) helfen den Rest schaffe ich!
Danke!!


----------



## DaKo (7. Dez 2006)

http://www.java-forum.org/de/viewtopic.php?t=40569


----------



## Ete (7. Dez 2006)

Naja hilft net wirklich


----------



## DaKo (7. Dez 2006)

Damit wollte ich dich nur darauf hinweisen, dass sich noch andere Leute damit befassen und du diese ja mal fragen kannst anstattzu warten bis dir alles in den Schoß fällt.


----------



## Ete (7. Dez 2006)

hasst recht mache ich mal danke


----------



## SlaterB (7. Dez 2006)

poste dein bisheriges Programm,
poste was mathematisch gesehen ein Kettenbruch überhaupt ist, mit Beispiel,
poste wo genau du bei der Umsetzung mit der for-Schleife Probleme hast


----------



## SnooP (7. Dez 2006)

Such mal nach euklidischer Algorithmus... - also der, mit dem man auch den ggT einer Zahl bestimmen kann. Imho ist der jeweilige 1. Faktor in jedem Schritt des Algorithmus die ganze Zahl auf die es beim Kettenbruch ankommt, die musst du also in jedem Schritt lediglich speichern...  - welche Näherungswerte meinst du denn? Und was ist mit unendlichen oder periodischen Kettenbrüchen? sollen die erkannt werden?


----------



## EOB (7. Dez 2006)

ich finds immer komisch, wenn leute, die noch nie programmiert haben auf einmal irgendwelche tools/progs schreiben sollen. wer macht denn sowas?  :shock:  ???:L 

ich seh da auch keinen sinn drinne...

gruesse


----------



## Ete (7. Dez 2006)

Also ich hab jetzte nen bisschen was probiert und er rechnet auch, gibt allerdings nur Nullen als Kettenbruchentwicklung raus!!
hier mal der Code:

import Prog1Tools.IOTools;
public class Kettenbruch2 {
	public static void main(String[] args)	{

	int zaehler;

	int nenner;

	System.out.println ("Geben Sie eine positive rationale Zahl ein.");
	zaehler = IOTools.readInteger ("Bitte geben Sie den Zähler ein:");
	nenner = IOTools.readInteger ("Bitte geben Sie den Nenner ein:");

	int i = zaehler;
	int a[];
		int z = 0;
		for(i = 0; nenner != 0; i++) {
			z++;
		        int modRest = zaehler % nenner;
			zaehler = nenner;
			nenner = modRest;
	}

	       a = new int[z];



		System.out.print("Die Kettenbruchentwicklung lautet:["); 			 	
	for(int x = 0; x < a.length; x++) { 		//Elemente des Arrays werden ausgegeben
         	System.out.print(a[x]+","); 
	} 	
	System.out.println("]");
	}
}


----------



## DaKo (7. Dez 2006)

Du speicherst in a nichts!


----------



## Ete (7. Dez 2006)

Also gibt er mir nur die Länge aus und nicht die Werte, ja?
Kann ich Werte auch noch in das Array bekommen?


----------



## DaKo (7. Dez 2006)

Er gibt nicht die Länge aus sondern die Werte!

Der default-Wert für int ist '0'.

Da deine Variablenname *sehr* benennend sind, habe ich keine Ahnung, was du in a speichern möchtest.


----------



## Ete (7. Dez 2006)

Den ganzzahligen Teil bei der Division entsteht! Kettenbruchbeispiel:
266/115= 2+36/115 = 2+1/115/36 
= 2+ 1/3+(7/36) u.s.w

also wenn a/b der Bruch ist
a = Q0 * b + R2
b = Q1 * R2 + R3
Rn = Qn * Rn+1 + Rn+2
und ich will Q ausgeben


----------



## Azrahel (7. Dez 2006)

Esrt das mit der Matrizzenmanipulation und jetzt das... ich mach Feierabend für heut... :bahnhof:


----------

