Delphi-PRAXiS
Seite 10 von 14   « Erste     8910 1112     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)

nailor 1. Jun 2005 18:17

Re: Kompilierender Matheparser
 
Zitat:

Zitat von DGL-luke
weisst du, was genial wäre? wenn der parser gleichungen (bzw. eine seite einer gleichung) lösen (bzw. vereinfachen) könnte.

nur als kleine anregung :)

Zitat:

Zitat von Dax
Sag mal ein konkretes Beispiel, dann überleg ichs mir :)

read you,
Dax


Hi Heute!

Ich hab die letzten Tage mal mit C# ein bisschen Parser gebastelt (nur zu meinem Vergnügen). Aber das ist echt nen Thema, für das ich mich begeistern könnte (glaub ich, von dem was ich bisher gemacht habe her). Plus Minus Mal Durch Hoch... (normale binäre Operatoren -> check). Operator Precedence (-> check). Klammern (-> check). Ein Protokoll führen. Das geht ja alles ganz schick.

Aber was mir dann recht schnell in den Sinn kam, war das Lösen von Gleichungen (erstmal aufgrund simpler Umformungen). Es müssten [irgendwann] natürlich auch so Sachen wie "Rechenweg anzeigen" und "benutzerdefinierte Formelsammlung" gehen. Die Formelsammlung sollte im Endeffekt ermöglichen, quasi alle Gleichungen (Ungleichungen) zu Lösen, die man sich so vorstellen kann. Natürlich mit allen Anmerkungen (Rechenweg, Annahmen...).

Also weniger (aber auch, die Basis muss stehen) Numberchrunchen, sondern auch nen schickes Drumrum auf höherem Level wie es z.b. Derive bietet. Bei Interesse wäre ich bereit, mal genauer _mit_-zuplanen.

Michael

Dax 1. Jun 2005 18:20

Re: Kompilierender Matheparser
 
Interesse besteht garantiert, alle potenziellen Mitarbeitenwoller sind herzlich eingeladen :)

Dax 3. Jun 2005 15:40

Re: Kompilierender Matheparser
 
Ahhh :wall: Ich hab grad einen tödlichen Fehler im Serializer ausgebügelt.. :roll: Aber die wieder mal neue Version sollte jetzt wirklich funktionieren.. Was ich zwar nicht glaube, weils bisher nie richtig geklappt, aber den Versuch ist es ja wert ;)

read you,
Dax

Dax 4. Jun 2005 19:04

Re: Kompilierender Matheparser
 
Hallo mal wieder ;)

Die jetzige Version hat nur eine Neuerung: die von Dust Signs indirekt geforderte Information über die Fehler ;)

read you,
Dax

tyberis 4. Jun 2005 22:18

Re: Kompilierender Matheparser
 
Na Hallo!
Ich bin gewissermassen dein Konkurrent und wollte jetzt auch mal meinen Senf dazu geben (da mein Parser bisher erfolgreich ignoriert wurde ;)).

Hier eine Liste von noch falsch interpretierten Ausdrücken:
-2^2 => 4 (statt -4)
-(1/2) => Access Violation
(1-2)+3 => Access Violation
a^b^c => Hoch wird standardmässig oft rechtsgeklammert (siehe z.B. Definition der Gausschen Glockenkurve (keine explizite Klammerung) vs. Potenzgesetz (explizite Klammerung))

Sonst cool :)

Dax 5. Jun 2005 12:37

Re: Kompilierender Matheparser
 
Zitat:

Zitat von tyberis
Na Hallo!
Ich bin gewissermassen dein Konkurrent und wollte jetzt auch mal meinen Senf dazu geben (da mein Parser bisher erfolgreich ignoriert wurde ;)).

Hier eine Liste von noch falsch interpretierten Ausdrücken:
-2^2 => 4 (statt -4)

Sorry, aber in meinem Kontext stimmt das ;) Der Parser wertet den Ausdruck als (-2)^2, also...
Zitat:

Zitat von tyberis
-(1/2) => Access Violation
(1-2)+3 => Access Violation

Korrigiert, neue Versionen oben :)
Zitat:

Zitat von tyberis
a^b^c => Hoch wird standardmässig oft rechtsgeklammert (siehe z.B. Definition der Gausschen Glockenkurve (keine explizite Klammerung) vs. Potenzgesetz (explizite Klammerung))

Hmm.. Der Parser rechnet von links nach rechts, vielleicht sollte ich mir das mal ansehen ^^

Zitat:

Zitat von tyberis
Sonst cool :)

Danke :)

read you,
Dax

DGL-luke 5. Jun 2005 12:55

Re: Kompilierender Matheparser
 
Zitat:

Zitat von Dax
Zitat:

Hier eine Liste von noch falsch interpretierten Ausdrücken:
-2^2 => 4 (statt -4)
Sorry, aber in meinem Kontext stimmt das ;) Der Parser wertet den Ausdruck als (-2)^2, also...

x^n = |x^n| für alle {n | n mod 2 = 0}

wenn dir diese notation geläufig ist.... :wink:

man könnte auch sagen alle geraden exponenten erzeugen ein positives ergebnis, aber auf das niveau müssen wir uns ja nicht herablassen :mrgreen:

EDIT: oha, ich habe wohl was verwechselt. er bemängelt ja nicht, dass das ergebnis -4 IST, sondern dass es seiner Meinung nach -4 SEIN SOLLTE.
womit dax natürlich absolut recht hat. also nix für ungut.

alcaeus 5. Jun 2005 12:57

Re: Kompilierender Matheparser
 
Zitat:

Zitat von DGL-luke
man könnte auch sagen alle geraden exponenten erzeugen ein positives ergebnis

Naja, es kommt drauf an wie man -2^2 interpretiert: (-2)^2 = 4, waehrend -(2^2) = -4. Dort liegt der Unterschied: wo gehoert das Minus hin ;)

Greetz
alcaeus

nailor 5. Jun 2005 13:03

Re: Kompilierender Matheparser
 
da es sich hier imho um den unären vorzeichen-wechsel-operator handelt (und nicht um nen dummes rechen-minus) hat es einen höheren "rang" als das potenzieren, und sollte zuerst ausgewertet werden, also

(-2)^2 = 4

Dax 5. Jun 2005 13:05

Re: Kompilierender Matheparser
 
Da hat nailor recht ;)

Das - als Präfix negiert die nachgestellte Zahl/Variable mit höchster Priorität. Die unär-Präfixe werden sowieso als allererstes ausgewertet, auch vor den Postfixes ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:01 Uhr.
Seite 10 von 14   « Erste     8910 1112     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