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 4 von 14   « Erste     234 56     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
 
#31
  Alt 27. Mai 2005, 16:54
Jens, das kann ich leider nicht nachvollziehen Zeig doch mal deinen falschen und deinen richtigen Ausdruck...
  Mit Zitat antworten Zitat
Dust Signs
 
#32
  Alt 27. Mai 2005, 16:54
Danke

Zur Belohnung gibt's haufenweise Anregungen

1.)
Code:
sin(0,00000000001)
liefert "Invalid expression". Wenn ich statt dem , einen . mache, meint er "Invalid float value". Oder was ist bei dir das Kommazeichen

2.) Das Wort "deregistrieren" gibt es nicht ^^

3.) Es ist sehr interessant, dass
Code:
tan(10000000000000000pi/2)
-0,19 ist. Da stimmt was nicht

4.) Du bist case-sensitiv. Das stört irgendwie. PI ist ja das selbe wie pi, nur eben groß geschrieben . Das selbe gilt für die Funktionsnamen

5.) Die Unterstütung von komplexen Zahlen generell, vor allem aber in Funktionen wäre nicht schlecht

6.) 0^0 ist nicht eins, sondern undefiniert

7.) "Invalid expression" ist bei längeren Ausdrücken nicht mehr sehr aussagekräftig. Die Art des Fehlers und uU die Postition wären nett zu wissen

8.) Wo sind die inversen Kreisfunktionen und wo die Areafunktionen?

9.) Die Fenster der Demo in der Mitte des Bildschirms zu platzieren, wäre optisch besser

10.) Ich vermisse die frac-, int- und die round-Funktion

11.) Ich versteh nicht ganz, wie man dieses ganze unäre Zeugs bei dir verwendet

12.)
Code:
pi^-pi
liefert eine "Invalid floating point operation". Müsste nicht eigentlich "Invalid expression" gemeldet werden?

13.) Ich mag Menüpunkte, die keine Untermenüs haben, nicht toplevel

Dust Signs
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

 
Delphi 2009 Professional
 
#33
  Alt 27. Mai 2005, 16:55
Zitat von Dax:
Jens, das kann ich leider nicht nachvollziehen Zeig doch mal deinen falschen und deinen richtigen Ausdruck...
(1+2)/ erzeugt eine Exception.
  Mit Zitat antworten Zitat
Benutzerbild von jim_raynor
jim_raynor

 
Delphi 5 Standard
 
#34
  Alt 27. Mai 2005, 17:02
Hab auch noch ein Problem

Die Formel A*100/B*((C*C)/1)*(D*D) löst eine Access Violation aus. Alle Variablen sind mit ganzzahlen registriert.
Christian Reich
  Mit Zitat antworten Zitat
Dax
 
#35
  Alt 27. Mai 2005, 17:09
Zitat von Dust Signs:
Danke

Zur Belohnung gibt's haufenweise Anregungen

1.)
Code:
sin(0,00000000001)
liefert "Invalid expression". Wenn ich statt dem , einen . mache, meint er "Invalid float value". Oder was ist bei dir das Kommazeichen
Danke, wurde verbessert

Zitat von Dust Signs:
2.) Das Wort "deregistrieren" gibt es nicht ^^
Entschuldige

Zitat von Dust Signs:
3.) Es ist sehr interessant, dass
Code:
tan(10000000000000000pi/2)
-0,19 ist. Da stimmt was nicht
Hmm Weiß nicht, was da schief gelaufen ist.

Zitat von Dust Signs:
4.) Du bist case-sensitiv. Das stört irgendwie. PI ist ja das selbe wie pi, nur eben groß geschrieben . Das selbe gilt für die Funktionsnamen
Wird mit der nächsten Version entfernt

Zitat von Dust Signs:
5.) Die Unterstütung von komplexen Zahlen generell, vor allem aber in Funktionen wäre nicht schlecht
Gibts, aber nicht in der Demo. Baue ich wohl besser noch ein ^^

Zitat von Dust Signs:
6.) 0^0 ist nicht eins, sondern undefiniert
Das ist aber eher Delphis Fehler, der Parser macht daraus "Power(0, 0)"

Zitat von Dust Signs:
7.) "Invalid expression" ist bei längeren Ausdrücken nicht mehr sehr aussagekräftig. Die Art des Fehlers und uU die Postition wären nett zu wissen
Danke, werds entsprechend verbessern

Zitat von Dust Signs:
8.) Wo sind die inversen Kreisfunktionen und wo die Areafunktionen?
Kommen auch noch Aber nicht für komplexe Zahlen, für die weiß ich keine Implementationen mehr ^^

Zitat von Dust Signs:
9.) Die Fenster der Demo in der Mitte des Bildschirms zu platzieren, wäre optisch besser

10.) Ich vermisse die frac-, int- und die round-Funktion
Kommen.. =

Zitat von Dust Signs:
11.) Ich versteh nicht ganz, wie man dieses ganze unäre Zeugs bei dir verwendet
Erkläre das bitte mal genauer

Zitat von Dust Signs:
12.)
Code:
pi^-pi
liefert eine "Invalid floating point operation". Müsste nicht eigentlich "Invalid expression" gemeldet werden?
Nein. Das - gibt es auch als Negationsoperator, da muss irgendwas schiefgelaufen sein..

@Jens: Danke, habs verbessert

@jim: Muss ich mir mal genauer ansehen, Danke.

Ich verbesser dann gleich noch mal was.
  Mit Zitat antworten Zitat
Dust Signs
 
#36
  Alt 27. Mai 2005, 17:17
Zitat:
Kommen auch noch Aber nicht für komplexe Zahlen, für die weiß ich keine Implementationen mehr ^^
Kann ich dir geben, wenn du willst . Haben wir in Mathe den Großteil der Zeit gemacht

Dust Signs
  Mit Zitat antworten Zitat
Dax
 
#37
  Alt 27. Mai 2005, 17:18
@DS: Ab her damit Dann wird der Komplex-Support vielleicht am Ende wirklich vollständig
  Mit Zitat antworten Zitat
Benutzerbild von DGL-luke
DGL-luke

 
Delphi 2006 Professional
 
#38
  Alt 27. Mai 2005, 17:19
hab mir auch die exe gesaugt

also, ich würd mal sagen, is n ganz passabler kleiner taschenrechner

das ding verhält sich im endeffekt doch so wie eval() in js, oder?

also ich muss schon sagen, kompliment!
Lukas Erlacher
  Mit Zitat antworten Zitat
Dax
 
#39
  Alt 27. Mai 2005, 17:21
Im Endeffekt ja, nur ein bisschen schneller (und vielleicht auch mächtiger)
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

 
Delphi 7 Enterprise
 
#40
  Alt 27. Mai 2005, 17:22
@Dust Signs: Sind diese dann auch via Zerlegung in komplexe auf Quaternionen anwendbar? Dann bin ich da auch dran interessiert. (Ich möchte an dieser Stelle dann doch ganz gerne anmerken, dass die Funktionsbibliothek für komplexe und Quaternionen-Mathematik ursprünglich von mir stammt - wenn's genehm ist Dax . Und da ich keine Implementation für die inversen gefunden hatte, sind sie auch (noch) nicht drin ).

Zum Thema 0^0: Es ist definiert: x^0 = 1 für alle x element R. Ich wüsste nicht, dass die 0 da einen Sonderfall darstellt.
Fabian K.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 14   « Erste     234 56     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 18:12 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