Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Parser (https://www.delphipraxis.net/125551-parser.html)

Looper 8. Dez 2008 13:09


Parser
 
Hallo alle,

habe mir in letzter Zeit einige Parser angesehen, aber ich habe keinen gefunden, der auch Ableitungen erstellen kann. Ich möchte allerdings einen Plotter schreiben, der diese auch zeichnen können soll.
Kennt jemand von euch einen Funktionsparser, der auch Ableitungen erstellen kann?

Gruß Janek

Corpsman 8. Dez 2008 14:19

Re: Parser
 
Lol,

Das heist das du nicht nur nen Ausdruck auswerten willst.

Sondern das der dann auch die Ableitungsregeln anwenden soll.

Das Geht ( siehe MAple und Matlab ...)

aber wenn du das selbst machen willst must du dir ne Funktion Basteln die das selbst macht.

So was hatten wir hier in DP auch schon mal, die Suche funktion sollte dir weiterhelfen.

Khabarakh 8. Dez 2008 15:21

Re: Parser
 
Zitat:

Zitat von Looper
Ich möchte allerdings einen Plotter schreiben, der diese auch zeichnen können soll.

Wenn du die Ableitungen nur zeichnen willst, brauchst du kein symbolisches Rechnen. Da tun es auch Näherungsformeln, und die kannst du mit jedem beliebigen Parser benutzen.

Looper 8. Dez 2008 15:48

Re: Parser
 
Ja, das mit der Näherungsformel habe ich auch eben gelesen. Ich wollte bis zur dritten Ableitung zeichnen lassen, was ja auch funktionieren sollte. Ich muss dann nur noch überprüfen, ob auch die Genauigkeit bei diesem Verfahren ausreicht.
Vielen Dank für die Tipps!

igel457 8. Dez 2008 15:49

Re: Parser
 
Hier habe ich das mal implementiert:

http://www.delphipraxis.net/internal...ight=autograph

Looper 8. Dez 2008 15:53

Re: Parser
 
Danke für den Link zu deinem Programm igel457. Habe mir das Programm schon angesehen, allerdings hatte ich das auf der Schulseite runtergeladen und da war der Sourcecode nicht dabei :-D .
Den sehe ich mir dann mal an...

Looper 10. Dez 2008 14:41

Re: Parser
 
@igel457

Ist es möglich die Unit "Parser" in meinem Programm zu benutzen oder ist es mir überhaupt erlaubt das zu machen?

Gruß Janek

igel457 10. Dez 2008 17:21

Re: Parser
 
Ist möglich, steht unter der GPL.

mkinzler 10. Dez 2008 17:23

Re: Parser
 
GPL oder LGPL? Im ersteren Fall müsste er den Source seines Programmes auch unter der GPL offenlegen

igel457 10. Dez 2008 17:25

Re: Parser
 
In der Headerdatei steht GPL, aber ich erlaube hiermit jedem, die Unit unter der CPL verwenden zu dürfen.

Looper 13. Dez 2008 21:16

Re: Parser
 
Also erstmal vielen Dank, dass ich deinen Parser verwenden darf. Funktioniert super :thumb:
Aber ich habe noch eine Frage: Wie kann ich die Ableitungen von Funktionen anzeigen? Wenn ich das richtig verstanden habe greifen in deinem Projekt die Klassen TMathParser und TGraphFunction ineinander, aber da ich die Funktionen mit dem Canvas-Objekt zeichnen möchte, ist es mir nicht ohne weiteres möglich die Unit GraphObj.pas einzubinden.
Ich glaube ich muss den Baum einmal abwandern, um die Ableitung als Text anzeigen zu können, oder geht dies auch einfacher?

Gruß Janek

igel457 13. Dez 2008 22:20

Re: Parser
 
Wenn du die abgeleitete Funktion haben willst, so kannst du Parser.Tree.Reassemble aufrufen. Diese Funktion gibt dir einen String zurück.

Das Zeichnen musst du natürlich selbst machen. Einfach den Ausdruck einmal Parsen und die Variable X hinzufügen und entsprechend ändern, Parser.Evaluate aufrufen und eine Linie zu diesem Punkt zeichnen.

Looper 14. Dez 2008 11:13

Re: Parser
 
Zitat:

Zitat von igel457
[...] so kannst du Parser.Tree.Reassemble aufrufen.[...]

Super, genau sowas hatte ich gesucht :)
Dann kann ich ja super weitermachen.

Frohe Weihnachtszeit, Looper


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