Delphi-PRAXiS
Seite 9 von 14   « Erste     789 1011     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Kompilierender Matheparser (https://www.delphipraxis.net/46536-kompilierender-matheparser.html)

Dax 30. Mai 2005 16:07

Re: Kompilierender Matheparser
 
Ich glaube, das sprengt schon sehr den Rahmen des Parser ;)

Aber: Weil das Ding wirklich verdammt schnell ist, könnte ich versuchen eine Approximationsmethode (:mrgreen:) einzubauen, die die Formel so lange durchrechnet, bis x bis zu einer gewissen Grenze mit der wirklichen Lösung übereinstimmt (manche wissenschaftliche Taschenrechner bieten solche Lösungsmethoden auch an). Wäre das was? ;)

read you,
Dax

DGL-luke 30. Mai 2005 16:54

Re: Kompilierender Matheparser
 
es gibt doch variablen in dem parser, oder? kann er also nicht

(lg(x))² - lg(4x-4)

so auflösen, dass zum schluss der term halt etwas einfacher da steht?

Dax 30. Mai 2005 16:59

Re: Kompilierender Matheparser
 
Ich fürchte nicht :?

Der Parser wandelt die Formel intern in einen Stream aus Funktionsaufrufen um, ohne wirklich zu "wissen", was er da tut. Das eigentliche lösen der Formel wird auch nicht vom Parser übernommen, sondern von den registrierten Funktionen und Operatoren. In der Hinsicht sehe ich im Moment keine wirkliche Möglichkeit, aber wenn du denkst, du könntest es einbauen, nur zu :)

read you,
Dax

DGL-luke 30. Mai 2005 17:28

Re: Kompilierender Matheparser
 
was, ich denke? um himmels willen nein.....

wenn ich so gut in mathe wär, dass ich das könnte, würd ich nicht danach fragen, ob der parser meine hausuafgaben machen kann.... :stupid:

aber das mit dem approximationsverfahren wär natürlcih ne idee - ich kann da aber wirklcih nix machen. kenn mich da weder in theorie noch in praxis damit aus.

Dax 30. Mai 2005 17:31

Re: Kompilierender Matheparser
 
Danke Anakin (;)), ich seh mal zu, das es irgendwann kommt :)

jim_raynor 30. Mai 2005 18:53

Re: Kompilierender Matheparser
 
Ich lebe noch ;) und komme gleich mit dem nächsten Problem. Diesmal wieder die Formel vom Anfang. Am besten du machst dir mal ein Testprogramm, in dem alle Formeln drin sind, berechnet werden und das Ergebnis geprüft wird. Testet sich vermutlich leichter ;)

Delphi-Quellcode:
  Parser:=TExCQParser.Create;
  Parser.SolveMode:=smVM;
  Parser.PreSolve:=true;

  Parser.RegisterVariable('BaseRange');
  Parser.RegisterVariable('Range');
  Parser.RegisterVariable('UnitTreff');

  Parser.SetVariable('BaseRange',[10]);
  Parser.SetVariable('UnitTreff',[8]);
  Parser.SetVariable('Range',[10]);

  Parser.Parse('UnitTreff*(1/(Range*Range))*(BaseRange*BaseRange)');

  ShowMessage(FloatToStr(Parser.Solve.X));
  Parser.Free;

Dax 31. Mai 2005 12:56

Re: Kompilierender Matheparser
 
Huhu :)

Ich hab den Serializer für den numeralen Stack einmal komplett neu geschrieben und den Parser mit allen mir zur Verfügung stehenden Parsermörderformel (;)) getestet - erfolgreich :)

ThisThread.NewVersion; ;)

read you,
Dax

jim_raynor 31. Mai 2005 13:31

Re: Kompilierender Matheparser
 
Zitat:

Zitat von Dax
Ich hab den Serializer für den numeralen Stack einmal komplett neu geschrieben und den Parser mit allen mir zur Verfügung stehenden Parsermörderformel (;)) getestet - erfolgreich :)

Hehe. Willst jetzt damit sagen, dass du meine Formeln fest einprogrammiert hast? :lol:
Hehe. Nein natürlich nicht. Schaue es mir mal heute Abend mal an und such nach den Formeln, die du noch nicht kennst ;)

jim_raynor 31. Mai 2005 17:21

Re: Kompilierender Matheparser
 
Der neue Serializer scheint wirklich gut zu funktionieren ;) Falls ich ne Formel finde, die den deine Komponente ins schleudern bringt, melde ich mich ;)

Ach ja, was hälst du denn davon Funktionen wie min und max mit einzubauen?

Dax 31. Mai 2005 17:24

Re: Kompilierender Matheparser
 
Zitat:

Zitat von jim_raynor
Der neue Serializer scheint wirklich gut zu funktionieren ;) Falls ich ne Formel finde, die den deine Komponente ins schleudern bringt, melde ich mich ;)

Macnhmal sieht man eben den Wald vor lauter Bäumen nicht ;)

Zitat:

Zitat von jim_raynor
Ach ja, was hälst du denn davon Funktionen wie min und max mit einzubauen?

Werde ich im nächsten Release machen ;)

Bis dahin kannst du es ja selbst machen :mrgreen: Kuck dir einfach mal die ExCQP_PreDef.pas an, dort wird unter anderem (auch wenns nicht ganz Absicht war ^^) gezeigt, wie man Funktionen und Operatoren registriert :)

read you,
Dax


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:56 Uhr.
Seite 9 von 14   « Erste     789 1011     Letzte »    

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