![]() |
Re: Bruchrechnen mit Delphi
Zitat:
Wenn du magst, kann ich dir mal die Begründung (zumindest von der Sache mit Wurzel 2) raussuchen, wenn ich sie noch finde :-) |
Re: Bruchrechnen mit Delphi
Zitat:
Zitat:
Zitat:
Zitat:
Nimm einfach alle Nenner bis zu einer Höchstgrenze, dazu dann passende Zähler, wenn es sich nicht mehr als ein eingegebener Wert unterscheidet, wird es ausgegeben. [edit]@Ultimator (bzw. TOC): ![]() |
Re: Bruchrechnen mit Delphi
Zitat:
0,9999... ist eine unendliche konvergierende Reihe, die auch als Folge 0,9 + 0,09 + 0,009 + 0,0009 + ... dargestellt werden kann. Es dürfte jedem klar sein, dass 0,9 auch geschrieben werden kann als 9*10^(-1), 0,09 ist 9*10^(-2), 0,009 ist 9*10^(-3), etc. Also entspricht die Folge der Summe ![]() Daraus kann man dann den Grenzwert bestimmen: ![]() |
Re: Bruchrechnen mit Delphi
Auch nicht schlecht :wink: .
|
Re: Bruchrechnen mit Delphi
Ich weis, ich werde OT, da das jetzt weniger mit reellen Zahlen als mit Brüchen zu tun hat, aber:
Der Beweis, dass √2 keine rationale Zahl ist: (Nach Euklid glaub' ich :mrgreen: ) Wenn √2 eine rationale Zahl ist, kann sie als unkürzbarer Bruch zweier natürlicher Zahlen dargestelt werden. Bruch: a/b Dann gilt: a²/b² = 2 Da dann a² = 2 * b² , folgt, dass a² durch 2 teilbar ist und somit a gerade sein muss. (Nur das Quadrat einer geraden Zahl ist gerade) Da a gerade ist ist das Quadrat von a durch 4 teilbar. Es gilt a = 2 * c und a² = 4 * c² Da a² = 2 * b² gilt auch 2 * b² = 4 * c² Daraus folgt b² = 2 * c², also ist b² und somit auch b duch zwei teilbar. Daraus folgt, dass der Bruch a/b mit zwei kürzbar ist, ein Widerspruch zu unserer Ausgangshypothese. √2 kann also nicht duch einen Bruch beschrieben werden, und ist somit keine rationale Zahl, sondern eine irrationale. |
Re: Bruchrechnen mit Delphi
Hi!
Zitat:
Also, ich hab mir alles runtergeladen und werds mir zuhause in Ruhe reinziehen. Aber wenigstens bin ich froh das 0,|9| = 1 kein Fehler ist. Ich hab´s nit gerne wenn eins meiner Programme so´n Fehler machen würde! Grüße von TOC! |
Re: Bruchrechnen mit Delphi
Das mit den Kettenbrüchen aber nicht ernstnehmen :wink: .
So sollte es ja etwa aussehen:
Delphi-Quellcode:
Also, entweder es ist richtig oder total falsch :gruebel: .
Approximation(Value, delta: Single; MaxDenominator: Integer): TBruchArray; //delta ist der maximale Unterschied, deine Implementierung der Brüche habe ich mir nicht angeschaut
var i: Integer; begin for i:=1 to MaxDenominator do if Abs(Round(i*Value)/i)<delta then //Round(i*Value) müsste der Zähler sein //Bruch hinzufügen end; |
Re: Bruchrechnen mit Delphi
Zu Kettenbrüchen: Da hab' ich mal was zu geschrieben, siehe Code-Library:
![]() |
Re: Bruchrechnen mit Delphi
Zu der Frage oben mit PI.
Ich bin zwar "nur" 9. Klasse, aber ich weiss, dass sich PI aus 4 * arctan(1) zusammensetzt...ja..was man so alles lernt wenn man neugierig ist :) Das 0,|9| = 1 hatten wir auch vor ein paar Wochen, und ehrlich gesagt finde ich zumindest die Erklärung unseres Mathelehrers unschlüssig (obwohl er sonst wirklich alles top erklärt und sehr gut ist). Ich weiss es nicht genau, aber er meinte, es gibt keine Zahl die man zu 0,|9| addieren kann um auf 1 zu kommen, denn was man auch addiert, man könnte die geschriebene Zahl einfach um eine 9 der Periode erweitern. Meine "Lösung" war ja 0,|0|1 was aber unmöglich ist da die 1 ja praktisch nie erscheint (aber trotzdem da ist). Ich finde nur, angenommen wir nehmen 0,9999 Dann bräuchten wir 0,0001 um auf 1 zu kommen. Nach Aussage des Lehrers könnten wir aber 0,99999 nehmen und schon bräuchten wir 0,00001 um auf 1 zu kommen. Aber - und das ist mein Kritikpunkt: Wenn er "einfach so" eine 9 der Periode anhängen darf, wieso sollte ich es dann nicht auch dürfen? Der Knackpunkt wäre halt nur diese nie erscheinende 1 bei 0,|0|1 , aber das ist doch sicher Interpretationssache. Praktisch wird sie nie erscheinen, theoretisch ist sie jedoch da, liegt nur im unendlichen. Wenn man dann 0,|9| = 1 setzt (obwohl es rein vom Menschenverstand her ja Unsinn ist, das wäre wie a=b für a!=b zu sagen) sollte man doch auch 0,|0|1 zulassen als praktisch nicht existierende Zahl. "x,|y|z" müsste doch die selben Rechengesetze haben, wieso sollte es also ungültig sein? Man kann zwar sagen man kann bei 0,|0|1 + 0,|0|2 Die 0 immer um eins erweitern und hat einen neuen Wert, aber was wenn man einfach einen Term hat der sich nicht angeben lässt, sprich: 0,|0|3 Das ist bei irrationalen Zahlen doch nicht anders. Zwar lassen sich alle auf dem Zahlenstrahl eindeutig festlegen, trotzdem kann man sie nicht als Wert angeben, da sie ja weder periodisch noch abbrechend sind, sprich unendlich und damit nicht ausschreibbar. Man kann nur einen Rundungswert angeben, was sich bei 0,|0|1 aber auch lässt. Gut, ich verstehe nicht viel davon, aber ohne eine ordentliche Begründung kann ich mich nicht damit abfinden, muss es zwar akzeptieren, habe aber immer Probleme damit :D air |
Re: Bruchrechnen mit Delphi
Hi,
![]() Damit müsste jetzt endgültig alles rund um die Periode geklärt sein. :zwinker: MfG Marc (P.S.: Besser hätte ich es selber nicht erklären können. :angel2: :mrgreen: ) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:43 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz