Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   [Beta] tump - the unknown math-parser (https://www.delphipraxis.net/64447-%5Bbeta%5D-tump-unknown-math-parser.html)

glkgereon 3. Mär 2006 19:58


[Beta] tump - the unknown math-parser
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hi,

Ich habe neulich wieder mal einen Mathematik-Parser in die Hände bekommen, und mal wieder gedacht "Mensch, sowas müsstest du eigentlich auch können".
Schließlich war es dann soweit, dass ich angefangen hab.
Ich weiss, eigentlich gibt es Parser fast wie Sand am Meer, aber mich trieb der Ehrgeiz, der auch jeden Programmierer eines Texteditors treibt..."Das kann ich auch!".

Nun, was er kann:
- Auswertung von (nahezu :) ) beliebigen Mathematischen ausdrücken, d.h.
- Klammern (beliebige Verschachtelung, solange der Stack reicht :twisted: )
- Konstanten
- einwertige Operatoren
- zweiwertige Operatoren
- einfach erweiterbar


Was noch fehlt/Was noch nicht schön ist:
- *von selbst erledigt* Operationen dürfen nur in 2er-Häppchen erfolgen. d.h. 2+3+4 muss in 2+(3+4) geklammert werden.
- Hilfe / Dokumentation
- Kommentierter Quellcode :)
- *eingebaut* Weiter Funktionen (Sqr, Sqrt, ^x, ², log, ...)
- Punkt-vor-Strich

Integrierte Mathematische Funktionen:
- Pi
- E
- +
- -
- *
- /
- Sinus (sin)
- Cosinus (cos)
- Tangens (tan)
- ArcusSinus (arcsin)
- ArcusCosinus (arccos)
- ArcusTangens (arctan)
- Sqrt
- Sqr
- ²
- log
- ^

Aufgrund von Punkt 3. der fehlend-Liste müsst ihr bis zur veröffentlichung des Quellcodes noch etwas warten ;)
Ich kann aber schon verraten das der eigentliche Parser nicht mal 150 Zeilen benötigt (Inclusive Deklaration, ...)
Und das ohne irgendwie Zeilen zu sparen...der Qt ist einfach kurz :)
Zusätzlich gehen dann nochmal 150 für die Mathematischen Funktionen und die zugehörigen Deklarationen drauf.

Wer weitere Funktionen haben möchte, der soll das bitte per PN oder hier im Thread schreiben.
ebenso natürlich gefundene Bugs sowie verbesserungsvorschläge.
Auch an einer Lösung des Klammerungs-problems bin ich natürlich sehr interessiert!!!

Die Bedienung des Interfaces sollte selbsterklärend sein...immerhin gibt es nur ein eingabefeld und einen Button ;)

dann mal viel Spaß beim testen.

PS:
Wem ein schöner(er) Name einfällt, der soll ihn mir doch auch bitte mitteilen :)

xZise 5. Mär 2006 20:45

Re: [Beta] tump - the unknown math-parser
 
Es wäre vielleicht auch net anstelle des "/" oder "*" ein ":" oder "x" zu setzen?

Und vielleicht solle es Buttons für die Komplizierten Funktionen geben (sin, cos, tan (Arcusse dazu :P) etc)! Und es wird doch wahrscheinlich besondere Zeichen doch im Unicode zu finden sein oder?
(hoffentlich erzähl ich hier kein scheiß ;) Und delphi kann mit den Unicodes arbeiten :P)

glkgereon 5. Mär 2006 20:48

Re: [Beta] tump - the unknown math-parser
 
Zitat:

Zitat von xZise
Es wäre vielleicht auch net anstelle des "/" oder "*" ein ":" oder "x" zu setzen?

Und vielleicht solle es Buttons für die Komplizierten Funktionen geben (sin, cos, tan (Arcusse dazu :P) etc)! Und es wird doch wahrscheinlich besondere Zeichen doch im Unicode zu finden sein oder?
(hoffentlich erzähl ich hier kein scheiß ;) Und delphi kann mit den Unicodes arbeiten :P)

ach zise, du hier? :-D
(@rest: wir kennen uns auch von ausserhalb der dp...)

nun ja, also : und x sind kein problem...
und die buttons sind problem des interfaces, nicht des parsers :twisted:

xZise 5. Mär 2006 20:52

Re: [Beta] tump - the unknown math-parser
 
Okay das mit dem Interface ;) Naja, ist noch nicht so wichtig :P

Aber vielleicht ein Bug: []-Klammern funktionieren nicht :D

Ferber 5. Mär 2006 21:04

Re: [Beta] tump - the unknown math-parser
 
Vorschlag: wenn Du schon einen 'Parser den die Welt nicht braucht' schreiben willst,
versuche Dich mal an Lisp zu orientieren, mit dem kann man was anfangen.
LISP ist IMHO die perfekteste Programmsprache die es gibt. :coder:

glkgereon 5. Mär 2006 21:10

Re: [Beta] tump - the unknown math-parser
 
Zitat:

Zitat von Ferber
Vorschlag: wenn Du schon einen 'Parser den die Welt nicht braucht' schreiben willst,
versuche Dich mal an Lisp zu orientieren, mit dem kann man was anfangen.
LISP ist IMHO die perfekteste Programmsprache die es gibt. :coder:

Da ich keine Ahnung von Lisp habe und auch nicht wegen einer Bemerkung im Forum lust habe es zu lernen:
könntest du in 2-3 Sätzen beschreiben was Lisp da besonderes kann? oder ein Beispiel bringen...

Ferber 5. Mär 2006 21:25

Re: [Beta] tump - the unknown math-parser
 
LISP - Böse Zungen behaupten: das bedeutet 'Lost in stupid parentheses'- verloren in sinnlosen Klammern
bedeutet aber: List interpreting Language
Autodesk hat diese Programmsprache in das Programm AUTOCAD integriert.

glkgereon 5. Mär 2006 21:33

Re: [Beta] tump - the unknown math-parser
 
Zitat:

Zitat von Ferber
LISP - Böse Zungen behaupten: das bedeutet 'Lost in stupid parentheses'- verloren in sinnlosen Klammern
bedeutet aber: List interpreting Language
Autodesk hat diese Programmsprache in das Programm AUTOCAD integriert.

Was mir immer noch nicht hilft...
Was kann denn Lisp was mein Parser können sollte?

Ferber 5. Mär 2006 21:53

Re: [Beta] tump - the unknown math-parser
 
Einfach alles, nebenbei auch rechenn.
Das geniale an diesem Konzept ist die Einfachheit:
Die Read-Eval loop: Lesen, auswerten
Klammer, Funktion, Parameter

Delphi-Quellcode:
(while (not (setq p1 (getpoint "Punkt 1:"))))

glkgereon 5. Mär 2006 21:55

Re: [Beta] tump - the unknown math-parser
 
Zitat:

Zitat von Ferber
Einfach alles, nebenbei auch rechenn.
Das geniale an diesem Konzept ist die Einfachheit:
Die Read-Eval loop: Lesen, auswerten
Klammer, Funktion, Parameter

Delphi-Quellcode:
(while (not (setq p1 (getpoint "Punkt 1:"))))

Ich werde und will aber keine Scriptsprache schreiben.
mein Teil soll mathematische ausdrücke ausrechnen...mehr nicht ;-)

Ferber 5. Mär 2006 21:59

Re: [Beta] tump - the unknown math-parser
 
Zitat:

Zitat von glkgereon
Da ich keine Ahnung von Lisp habe und auch nicht wegen einer Bemerkung im Forum lust habe es zu lernen:
könntest du in 2-3 Sätzen beschreiben was Lisp da besonderes kann? oder ein Beispiel bringen...

Du solltest dich aber auch mit LISP beschäftigen, erweitert den Horizont.
Oder willst nix dazulerner ?! :?

Daniel G 5. Mär 2006 22:06

Re: [Beta] tump - the unknown math-parser
 
Zitat:

Zitat von Ferber
Du solltest dich aber auch mit LISP beschäftigen, erweitert den Horizont.
Oder willst nix dazulerner ?! :?

Hey, nicht gleich so harsch. Nicht jeder hat die Zeit, sich 'ne Woche (oder mehr) mit einer Skriptsprache auseinander zusetzten, nur um zu sehen, was daran so toll ist.

Und ganz nebenbei bemerkt geht es hier eher um seinen Parser als um LISP. Klärt das doch via PM.


Just my 2 cents... :duck:

xZise 5. Mär 2006 22:14

Re: [Beta] tump - the unknown math-parser
 
Zitat:

Zitat von Ferber
Delphi-Quellcode:
(while (not (setq p1 (getpoint "Punkt 1:"))))

uhaa Hilfe ^^ So viele Klammern :?

@ Parser: Da ich vermute das sich das
Zitat:

Zitat von glkgereon
Ich habe neulich wieder mal einen Mathematik-Parser in die Hände bekommen, und mal wieder gedacht "Mensch, sowas müsstest du eigentlich auch können".

auf mich bezog, würde ich mein Interface zur verfügung stellen ^^ :coder2:

Ferber 5. Mär 2006 22:25

Re: [Beta] tump - the unknown math-parser
 
Hey, bin ja garnicht harsch. :-D
Wenns so rübergekommen ist dann: Sorry.
Nur: der Junge ist 16 und hat keine Zeit sich eine Woche mit was zu beschäftigen ? :mrgreen:
Aber vergesst's bin blos ein Methusalix.

PS: während ich das schreibe ist 'uhaa Hilfe' dazugekommen.
Die Klammern sind wirklich kein Problem, wenn Du sie richtig verwendest.

Delphi-Quellcode:
(while
  (not
    (setq p1 
      (getpoint "Hugo")
    )
  )
)
Unter jeder öffnenden Klammer steht die schliessende Klammer.
Aber das ist schon OT, war ja alles nur eine Anregung von mir. :)

glkgereon 5. Mär 2006 22:33

Re: [Beta] tump - the unknown math-parser
 
Argh.

klar, wegen mir kann ich mir Lisp mal angucken.
aber das hat doch nun echt nichts mehr mit dem math-parser zu tun, oder?

Ferber 5. Mär 2006 22:43

Re: [Beta] tump - the unknown math-parser
 
Ja, hast recht, hat nur indirekt was mit Deinem Math-Parser was zu tun, Du könntest ihn aber so aufbauen.

@xZise: Dein Zitat ist absoluter Schmarrn


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:38 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 by Thomas Breitkreuz