Autor Beitrag
Fabian
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 42



BeitragVerfasst: Sa 02.11.02 11:24 
Hallo

Hat irgendwer von euch eine Idee wie Ich einen beliebigen Dezimalbruch (unter Umständen auch periodisch) in einen normalen Bruch umwandeln kann. z.B. 0,3333... ---> 1/3

Danke
Cashels
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 167



BeitragVerfasst: Sa 02.11.02 13:03 
Also für nicht periodische Brüche kannst du wie folgt vorgehn... Ich zeigs dir am besten an einem Bsp.:

x=0,75

Diese Zahl kannst du problemlos als 75/100 darstellen, was ja schon eine Bruchdarstellung ist. Jetzt heist es nur noch den grössten gemeinsamen Teiler aus 25 und 100 zu finden. Dazu dürfte es genügend Algorythmen geben. Google mal nach pgcd. In meinem Beispiel ist das also 25. Jetzt brauchst du nur noch durch diesen gemeinsamen Nenner zu teilen:

x=0,75=75/100=3/4

Bei periodischen Brüchen wird das dann allerdings schon etwas komplizierter.

Gruss,
tom
Cashels
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 167



BeitragVerfasst: Sa 02.11.02 13:19 
Nochmals,

hab hier schnell einen Alg. zusammengeschrieben, der dir den grössten gemeinsamen Teiler aus zwei Zahlen liefert:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
function pgcd (n1, n2 : integer) : integer ;
var
 r : integer ;
begin
     n1 := abs(n1) ;
     n2 := abs(n2) ;

     r := n1 mod n2 ;

     while r <> 0 do begin
        n1 := n2 ;
        n2 := r ;
        r := n1 mod n2 ;
     end ;
     Result := n2 ;
end ;


Gruss,
Tom
Fabian Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 42



BeitragVerfasst: So 03.11.02 19:16 
Auch wenns vielleicht ziemlich kompliziert ist, hat irgendwer eine Idee wie ich das mit einem Periodischen Bruch machen könnte ?
Ex0rzist
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 550

Win XP Prof.
Mandrake 10.0

D6
BeitragVerfasst: So 03.11.02 22:40 
Hallo Fabian,

bei periodischen Dezimalzahlen setzt sich der Bruch wie folgt zusammen:
Der Zähler besteht aus der Periode und der Nenner aus so vielen Neunen, wie die Periode Stellen hat.

Beispiel: 0,33333333333333333333333333333333.......... usw.
:wink: _
=0,3 --> Periode: "3" --> Anzahl der Stellen der Periode: 1

Bruch = 1/3

Jetzt ist der Code nur noch ein Kinderspiel, hoffe ich. :wave:

_________________
If accidentally read, induce vomitting.
Cashels
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 167



BeitragVerfasst: Mo 04.11.02 00:22 
Hey,
in deinem Beispiel vielleicht. Wie siehts denn mit x=0,12121212... aus.

Diesen Bruch kannst du leider nicht einfach als 12/100 kürzen, sondern musst dir noch ein bischen mehr überlegen.

x=12/100 + 12/10000 + 12/1000000 + ...
= Summe[i] (12*100^i) -> i läuft von 1 bis unendlich

Viel Spass beim Summenausrechnen. Das ganze nennt sich in der Mathematik geometrische Reihen. Wenn du dein i nicht bis unendlich laufen lassen willst, da die Computergenauigkeit da eh nicht mehr mithält, kannst du diese Summe als
s_n = 12*((100^(n+1)-1)/(100-1) - 12 errechnen. Aber das bringt dir im Beispiel wahrscheinlich auch nicht unbedingt weiter.

Das ganze mit periodischen Brüchen ist also nicht unbedingt so einfach.

Gruss,
Tom
Ex0rzist
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 550

Win XP Prof.
Mandrake 10.0

D6
BeitragVerfasst: Mo 04.11.02 11:24 
Cashels hat folgendes geschrieben:
Wie siehts denn mit x=0,12121212... aus.

Diesen Bruch kannst du leider nicht einfach als 12/100 kürzen, sondern musst dir noch ein bischen mehr überlegen.


Ich dachte ich hätte es verständlich erklärt.
Also nochmal:

Dass man durch hundert dividieren muss, habe ich nie gesagt.
Vielmehr habe ich geschrieben, dass man durch soviele "9" teilen muss, wie die Periode Stellen hat. Also bei dir sind das zwei, nämlich "1" und "2". Daraus ergibt sich der Bruch: 12/99. Nach kürzen kommt man zu dem Ergebnis: x=4/33.

_________________
If accidentally read, induce vomitting.
Cashels
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 167



BeitragVerfasst: Mo 04.11.02 22:49 
Ups sorry, dann hat ich das falsch verstanden. Dein Lösungsweg klappt!

Gruss,
tom