AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Bruchrechnen mit Delphi
Thema durchsuchen
Ansicht
Themen-Optionen

Bruchrechnen mit Delphi

Ein Thema von TOC · begonnen am 21. Feb 2005 · letzter Beitrag vom 4. Mär 2012
Antwort Antwort
Seite 3 von 4     123 4      
Benutzerbild von TOC
TOC
Registriert seit: 5. Jan 2005
Hi!

Interessiert ihr Euch für Bruchrechnen? Ein leidiges Thema...
Als ich noch in der Hauptschule war hatte ich damit echt große Probleme! Vor allem das elende Suchen von GGT´s und KGV´s ist mir echt schwer gefallen!

Aber wir leben ja jetzt im Computerzeitalter, zum Glück! Schon seit vielen Jahren gibt es Taschenrechner mit denen man Bruchrechnen kann. Aber leider sieht man bei diesen Rechnern immer nur das Ergebnis, und nicht die einzelnen Zwischenschritte der Berechnung. Der Rechenweg bleibt einem leider verschloßen...

Vor einigen Jahren habe ich deshalb ein Bruchrechnen-Programm für Windows in Delphi geschrieben. Dieses Programm rechnet tatsächlich so wie ich es damals in der Hauptschule gelernt habe. Alle Zwischenberechnungen und der Rechenweg werden grafisch ausgegeben.
Brüche werden automatisch erweitert oder gekürzt, man kann sie addieren, subtrahieren, multiplizieren und dividieren. Außerdem kann man mit diesem Program einen Dezimalbruch (eine Zahl mit Komma) in einen echten Bruch umrechnen. Natürlich kann man die Berechnung auch abspeichern oder ausdrucken.

Hier ein Beispiel :

http://img179.exs.cx/img179/5553/beispiel0tx.jpg

Das Programm läuft ab Windows 95. Leider gibt es diverse Unterschiede zwischen Delphi 3.0 und 7.0. Deshalb findet Ihr im Anhang zwei verschiedene Programm-Versionen.
Delphi 7.0 erzeugt zwar einige Warnungen, aber es funktioniert trotzdem. Mit anderen Delphi-Versionen kann ich es nicht überprüfen.

Die Originalversion, die es nur auf meinem eigenen Rechner gibt, verwendet Handy-Sounds von meinem alten Handy das ich früher mal hatte. Aus Gründen des Kopierschutzes mußte ich diese Handy-Sounds aber leider löschen, den Klingeltöne sind sehr begehrt...

Das Programm ist OpenSource. Ihr könnt es Euch ja mal ansehen.

Grüße von TOC!

---------------------------------------------------------------------------------------------------

Version 0.6

Änderungen:

1.) Umwandlung von periodischen Dezimalbrüche in echte Brüche ist nun, dank Cheggas Hilfe, möglich.
2.) Aus allen Units wurde der veraltete Typ 'LongInt' entfernt und durch 'Integer' ersetzt.
3.) Fehler in der Speicher/Lade-Prozedur behoben. Nun können auch negative Brüche ohne Ganzzahl gespeichert/geladen werden.
4.) Erweitertes Internet-Menü
5.) Überlauffehler werden nun durch Exceptions abgefangen
6.) OldStyle-Objekt von InfoForm in Delphi-Objekt geändert
7.) Typ 'TFract' verwendet nun Cardinal-Variablen anstelle von Integer (Bringt 1 Bit mehr, und bei insgesamt 32 Bit ist das ´ne ganze Menge!)

---------------------------------------------------------------------------------------------------

Hi!

Hier kommt Version 0.7 von Bruchrechnen!

Änderungen:

1.) Das Programm schreibt seinen Daten nun unter dem Schlüssel 'HKEY_CURRENT_USER\SoftWare\TocWare\Bruch Rechnen' in die System-Registrierung.

2.) Mit dem Menüpunkt 'Optionen/Registrierung aufheben' kannst Du diese Daten aus Deiner Registrierung wieder löschen.

3.) Alle Farbdialoge speichern nun die Anwenderfarben die Du selbst erzeugen kannst.

4.) Höhe der Statuszeilen etwas vergrößert damit der Text nicht so gequetcht aussieht

Derzeit kann ich Euch nur bitten den fehlerhaften Schlüssel 'HKEY_CURRENT_USER\Bruch Rechnen' von Hand zu löschen (mit RegEdit.exe), Sorry!

Hinweis: Dieses Programm verwendet einige meiner selbst gebastelten Komponenten, die Du benötigst um das Projekt zu öffnen und neu zu kompilieren. Eine aktuelle Version meiner Komponenten im Packet findest Du hier : Tocs Komponenten als Paket

Grüße von TOC!
Angehängte Dateien
Dateityp: zip bruchrechnen_fuer_delphi_7_138.zip (1,39 MB, 125x aufgerufen)
Dateityp: zip bruchrechnen_fuer_delphi_3_203.zip (1,31 MB, 45x aufgerufen)
"Wäre die Erde eine Bank, ihr hättet sie längst gerettet!"
(Zitat GreenPeace)
 
Benutzerbild von Ultimator
Ultimator

 
FreePascal / Lazarus
 
#21
  Alt 1. Mär 2005, 14:31
Zitat:
Ist Pi eine rationale Zahl? Oder Wurzel aus 2?
Nein, weder noch
Wenn du magst, kann ich dir mal die Begründung (zumindest von der Sache mit Wurzel 2) raussuchen, wenn ich sie noch finde
Julian J. Pracht
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh
 
#22
  Alt 1. Mär 2005, 14:50
Zitat von TOC:
Zitat von Khabarakh:
Zitat von Aenogym:
Zitat von chkdsk:
Allerdings nicht mit so einer Waldorf-Methode.
also ich finde die methode echt gut. wie hast du es denn gelernt? ist deine methode einfacher?

Aenogym
Ich denke mal, er meint, dass Chegga es zwar sehr ausführlich erklärt hat, aber weniger die mathematische Erklärung angesprochen hat (0,|9| = 1 usw.).

PS: Wir hatten es Anfang der 9. Klasse im Zusammenhang mit reellen Zahlen. Das ist ja eine wichtige Aussage, dass sich jede rationale Zahl als Bruch darstellen lässt.
Also, das mit 0,|9| bereitet mir großes Kopfzerbrechen! Ich bin nur Hauptschüler! Deshalb sind meine mathematischen Kentnisse recht dürftig. Nach Cheggas Algorhytmus ist 0,|9|=1 !?! Ist dies nun ein Fehler oder nicht? Diskutiert ruhig mal weiter über Bruchrechnen und helft mir etwas auf die Sprünge !
Ja, 0,|9| ist wirklich 1 . Die schwammige Erklärung: Es kann ja nichts mehr dazwischen liegen . Die richtige, mit der man dann auch auf die Umwandlung von oben kommt: 1/9 ist ja 0,|1|, 2/9=0,|2|, also ist 0,|9|=9/9=1.
Zitat von TOC:
Läßt sich wirklich jede rationale Zahl als Bruch darstellen? Ist Pi eine rationale Zahl? Oder Wurzel aus 2?
Ja, nein, nein .

Zitat von TOC:
Wenn ihr weitere interessante Bruch-Algorhytmen habt dann erklärt sie mir bitte.
Nett wäre noch eine Approximation von irrationalen Zahlen (z.B. durch Kettenbrüche
Zitat:
Näherungsbrüche aus Kettenbruchentwicklung
Aus den Folgegliedern der Kettenbruchentwicklung lassen sich sukkzessive Näherungsbrüche gewinnen. Wenn fi das i-te Folgeglied der Kettenbruchentwicklung ist, so ergibt sich der i-te Näherungsbruch zi/ni aus den Rekursionsformeln zi=fi·zi-1+zi-2 und ni=fi·ni-1+ni-2 mit z-2=0, z-1=1, n-2=1 und n-1=0.

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): http://www.arndt-bruenner.de/mathe/9...irrational.htm
Sebastian
  Mit Zitat antworten Zitat
Oxmyx
 
#23
  Alt 1. Mär 2005, 15:27
Zitat von Khabarakh:
Ja, 0,|9| ist wirklich 1 . Die schwammige Erklärung: Es kann ja nichts mehr dazwischen liegen . Die richtige, mit der man dann auch auf die Umwandlung von oben kommt: 1/9 ist ja 0,|1|, 2/9=0,|2|, also ist 0,|9|=9/9=1.
Und die nicht schwammige Erklärung:

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
http://home.arcor.de/oxmyx/summe1.jpg
Daraus kann man dann den Grenzwert bestimmen:
http://home.arcor.de/oxmyx/lim1.jpg
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh
 
#24
  Alt 1. Mär 2005, 15:54
Auch nicht schlecht .
Sebastian
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins
 
#25
  Alt 1. Mär 2005, 15:56
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 )

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.
  Mit Zitat antworten Zitat
Benutzerbild von TOC
TOC

 
Delphi 7 Personal
 
#26
  Alt 2. Mär 2005, 15:19
Hi!

Zitat:
Nett wäre noch eine Approximation von irrationalen Zahlen
Uff! Ob ich das hinkrieg? Is ja wirklich erstaunlich was ihr alles über Mathe wißt! Ich bin beeindruckt! Ich finde viele Erwachsene sollten mehr Respekt vor Euch Kids haben!

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!
Lars Uwe Hohmann
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh
 
#27
  Alt 2. Mär 2005, 21:01
Das mit den Kettenbrüchen aber nicht ernstnehmen .
So sollte es ja etwa aussehen:
Delphi-Quellcode:
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;
Also, entweder es ist richtig oder total falsch .
Sebastian
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins
 
#28
  Alt 2. Mär 2005, 21:05
Zu Kettenbrüchen: Da hab' ich mal was zu geschrieben, siehe Code-Library: KettenbruchKettenbruch
  Mit Zitat antworten Zitat
Benutzerbild von Airblader
Airblader
 
#29
  Alt 2. Mär 2005, 21:54
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

air
Ingo Bürk
  Mit Zitat antworten Zitat
Benutzerbild von Chegga
Chegga

 
Delphi 7 Architect
 
#30
  Alt 2. Mär 2005, 22:07
Hi,

*Klick*
Damit müsste jetzt endgültig alles rund um die Periode geklärt sein.

MfG Marc

(P.S.: Besser hätte ich es selber nicht erklären können. )
Marc P.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:56 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz