AGB  ·  Datenschutz  ·  Impressum  







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

Kompilierender Matheparser

Ein Thema von Dax · begonnen am 26. Mai 2005 · letzter Beitrag vom 24. Aug 2006
Antwort Antwort
Seite 6 von 14   « Erste     456 78     Letzte »    
Dax
Huhu DP!

Ich hab (mal wieder ) einen Matheparser geschrieben, aber diesmal einen besonderen. Mit diesem kann man Ausdrücke nicht nur Parsen, sondern auch noch kompilieren (Habs mal duchgetestet, ist schneller als Delphieigene Kompilate)

Ich stells einfach mal so hier rein, zum Doks-schreiben ist es einfach zu.. heiß.. und das Interface erklärt sich eh fast von selbst, und mit den Comments in den Units und den Units selbst kommt man auch gut über die Runden. Hoffe ich

read you,
Dax

[edit] da waren ein paar Fehler, verzeiht [/edit]
nocheinedit: Wieder ein paar Fehler ausgebügelt
Angehängte Dateien
Dateityp: zip excqparser_207.zip (16,1 KB, 524x aufgerufen)
Dateityp: zip realdemo_442.zip (11,1 KB, 399x aufgerufen)
Dateityp: zip ecqpdemo-exe_649.zip (244,6 KB, 484x aufgerufen)
 
Dax
 
#51
  Alt 28. Mai 2005, 15:51
Neue Version - neues Glück.

Jetzt sind die Arcusfunktionen sind Real und Komplex auch eingebaut, danke Dusty

Presolver sollte perfekt () funktionieren, CaseSensitivity ist weg, in der Demo (jetzt im ersten Post) kann zwischen Komplex- und Real-Zahlenraum gewählt werden.. Und Operatoren entfernen funktioniert Da war so ein dummer kleiner Copy&Waste-Fehler drin.

read you,
Dax (auf Feedback hoffend )
  Mit Zitat antworten Zitat
Dust Signs
 
#52
  Alt 28. Mai 2005, 16:03
Gut

1.) Bug in der Liste der Variablen: je öfter ich sie aufrufe, desto länger wird sie. Ich glaube, da hast du wo vergessen zu löschen

2.) So, hier mal gleich ein paar Unterpunkte im Komplexen

a) sin(pi/2) funktioniert nicht, arctan(1) auch nicht - und etliche andere ebenfalls

b) Wie gibt man die imaginäre Einheit an? Weder 1+i, noch 1+j funktioniert

c) Ohne imaginäre Einheit kann ich leider nicht weiterrechnen ^^

3.) arctan(1) funktioniert auch im reellen Zahlenraum nicht - auch nicht mit einem anderen Argument (z.B. 0,5)

4.) (e^2 - e^(-2))/2 ergibt nicht das selbe wie sinh(2) - da stimmt was nicht

Bring mal diese Bugs raus, dann test ich weiter

Dust Signs
  Mit Zitat antworten Zitat
Dax
 
#53
  Alt 28. Mai 2005, 16:38
Zitat von Dust Signs:
1.) Bug in der Liste der Variablen: je öfter ich sie aufrufe, desto länger wird sie. Ich glaube, da hast du wo vergessen zu löschen
Danke, wird verbessert

Zitat von Dust Signs:
2.) So, hier mal gleich ein paar Unterpunkte im Komplexen

a) sin(pi/2) funktioniert nicht, arctan(1) auch nicht - und etliche andere ebenfalls
Ich hatte kein ArcTan fürs Komplexe hab einfach mal angenommen, das komplexe ArcTan = ArcSin/ArcCos, okay?

Zitat von Dust Signs:
b) Wie gibt man die imaginäre Einheit an? Weder 1+i, noch 1+j funktioniert
Imaginär 1: 1i. Imaginär 5: 5i. Imaginär x: (x)i

Zitat von Dust Signs:
3.) arctan(1) funktioniert auch im reellen Zahlenraum nicht - auch nicht mit einem anderen Argument (z.B. 0,5)
Verbessert

Zitat von Dust Signs:
4.) (e^2 - e^(-2))/2 ergibt nicht das selbe wie sinh(2) - da stimmt was nicht
Mistpresolver

Wenn ich das mit dem e raus hab, gibts ne neue Version..falls niemand schon vorher eine wollen sollte ^^
  Mit Zitat antworten Zitat
Dust Signs
 
#54
  Alt 28. Mai 2005, 16:50
@2a: nein. Außerdem sollte sin(pi/2) auch im Komplexen etwas anderes liefern als "Invalid expression"

@2b: funktioniert nicht

Dust Signs
  Mit Zitat antworten Zitat
Dax
 
#55
  Alt 28. Mai 2005, 16:57
Zitat von Dust Signs:
@2a: nein. Außerdem sollte sin(pi/2) auch im Komplexen etwas anderes liefern als "Invalid expression"
Liefert bei mir 1, aber zeig mal bitte die ArcTan-Komplex-Formel, die hab ich glaube ich nicht

Zitat von Dust Signs:
@2b: funktioniert nicht
"Funktioiert nicht" ist keine Fehlerbeschreibung

read you,
Dax
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

 
Delphi 2006 Professional
 
#56
  Alt 28. Mai 2005, 18:56
wie wärs mit :

@2b: die von dir vorgeschlagene syntax wird nicht angenommen.

scheint mir relativ klar zu sein, dax.
Lukas Erlacher
  Mit Zitat antworten Zitat
Dax
 
#57
  Alt 28. Mai 2005, 18:58
Das ist ja das Problem Wenn ich in meinen Parser.. was weiß ich, zum Beispiel "sin(pi/2)i" eingebe, klappt das, genauso bei "1i+2i", "1+2i", "(pi)i" usw...
  Mit Zitat antworten Zitat
Dust Signs
 
#58
  Alt 28. Mai 2005, 19:13
Ich war eigentlich der Meinung, das folgendes auch funktionieren sollte (wäre logischer):

i
2*i
pi*i

sin(pi/2) nimmt dein Parser nicht ("Invalid expression").

Dust Signs
  Mit Zitat antworten Zitat
Dax
 
#59
  Alt 28. Mai 2005, 19:16
Zitat von Dust Signs:
Ich war eigentlich der Meinung, das folgendes auch funktionieren sollte (wäre logischer):

i
2*i
pi*i
Ja, das is etwas verzwickt, weil i ja als Operator eingetragen wird.. einen anderen gescheiten Weg hab ich leider nicht gefunden

Zitat von Dust Signs:
sin(pi/2) nimmt dein Parser nicht ("Invalid expression").
Das wäre mir ganz neu. Bei mir kommt dabei immer "1 + 0i" heraus, egal ob Komplexer Modus oder Reller...

btw: Hast du die komplexe Arctan-Formel? Das wäre genial

read you,
Dax
  Mit Zitat antworten Zitat
Dust Signs
 
#60
  Alt 28. Mai 2005, 19:22
Zitat von Dax:
Zitat von Dust Signs:
Ich war eigentlich der Meinung, das folgendes auch funktionieren sollte (wäre logischer):

i
2*i
pi*i
Ja, das is etwas verzwickt, weil i ja als Operator eingetragen wird.. einen anderen gescheiten Weg hab ich leider nicht gefunden
Solltest du aber, das ist ansonsten viel zu umständlich; nimm's doch einfach als multiplikative konstante... (sqrt(-1))

Zitat:
Zitat von Dust Signs:
sin(pi/2) nimmt dein Parser nicht ("Invalid expression").
Das wäre mir ganz neu. Bei mir kommt dabei immer "1 + 0i" heraus, egal ob Komplexer Modus oder Reller...

btw: Hast du die komplexe Arctan-Formel? Das wäre genial
Nein, leider noch nicht; könnt aber versuchen, sie herzuleiten.

Dust Signs
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 6 von 14   « Erste     456 78     Letzte »    


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 01:00 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