Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Funktionsterm parsen (https://www.delphipraxis.net/127948-funktionsterm-parsen.html)

Nils_13 21. Jan 2009 20:42


Funktionsterm parsen
 
Hi,

der Benutzer gibt einen beliebigen Funktionsterm an. Dann soll zu einem ebenfalls angegebenen x ein y berechnet werden. Ich hätte das mit Taschenrechner schon längst fertig, aber ein Programm zu schreiben, welches Funktionsterme parsen kann halte ich für schwierig. Es ist ja üblich, bei Funktionen keine Malpunkte anzugeben. Den Benutzer zu Malpunkten zu zwingen kommt nicht in Frage. Genau da liegt das Problem. Wie dichte ich die Malpunkte dazu, ohne in irgendeiner Form ins Schlamassel zu geraten ?
Ein Beispiel für einen Funktionsterm wie ihn der Benutzer angibt: 6x^5-2x^4+1x^1
Habt ihr eine Idee, wie man das angehen könnte ? Außerdem: Wie könnte man so einen Parser strukturieren ? Denn die Hochzahlen usw. müssen ja auch möglichst problemlos und einfach berücksichtigt werden.

alzaimar 21. Jan 2009 20:44

Re: Funktionsterm parsen
 
Such mal nach 'Mathe-Parser', dort findest Du reichlich Beispiele mit Quellcode. Wichtig und nützlich sind auch die Stichworte 'Tokenizer', 'BNF', 'Syntaxbaum' und 'Parser'.

moelski 21. Jan 2009 20:47

Re: Funktionsterm parsen
 
Moin Nils,

für 19$ bekommt man auch den hier : http://www.bestcode.com/html/tbcparser.html

sirius 21. Jan 2009 22:36

Re: Funktionsterm parsen
 
In der Delphipraxis gibt es auch einige fertige Code-Schnippsel (u.a. auch von mir)

olee 21. Jan 2009 23:54

Re: Funktionsterm parsen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Also ich hätte da ein paar Sachen.

Am besten gebe ich dir mal das ganze.

Das war mal aus langeweile son kleines Tabellenkalkulationsprogramm.

(Wie gesagt das war nur aus langeweile also nicht über den Namen des Programms wundern :-D)

MFG


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:07 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