AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte [Beta] tump - the unknown math-parser
Thema durchsuchen
Ansicht
Themen-Optionen

[Beta] tump - the unknown math-parser

Ein Thema von glkgereon · begonnen am 3. Mär 2006 · letzter Beitrag vom 5. Mär 2006
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von glkgereon
glkgereon
Registriert seit: 16. Mär 2004
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 )
- 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
Angehängte Dateien
Dateityp: exe project1_164.exe (399,0 KB, 31x aufgerufen)
»Unlösbare Probleme sind in der Regel schwierig...«
 
Benutzerbild von xZise
xZise

 
Delphi 2009 Professional
 
#2
  Alt 5. Mär 2006, 19:45
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 ) 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 )
Fabian
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon
 
#3
  Alt 5. Mär 2006, 19:48
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 ) 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 )
ach zise, du hier?
(@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
  Mit Zitat antworten Zitat
Benutzerbild von xZise
xZise

 
Delphi 2009 Professional
 
#4
  Alt 5. Mär 2006, 19:52
Okay das mit dem Interface Naja, ist noch nicht so wichtig

Aber vielleicht ein Bug: []-Klammern funktionieren nicht
Fabian
  Mit Zitat antworten Zitat
Ferber

 
Delphi 2006 Architect
 
#5
  Alt 5. Mär 2006, 20:04
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.
Otto
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon
 
#6
  Alt 5. Mär 2006, 20:10
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.
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...
  Mit Zitat antworten Zitat
Ferber

 
Delphi 2006 Architect
 
#7
  Alt 5. Mär 2006, 20:25
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.
Otto
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon
 
#8
  Alt 5. Mär 2006, 20:33
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?
  Mit Zitat antworten Zitat
Ferber

 
Delphi 2006 Architect
 
#9
  Alt 5. Mär 2006, 20:53
Einfach alles, nebenbei auch rechenn.
Das geniale an diesem Konzept ist die Einfachheit:
Die Read-Eval loop: Lesen, auswerten
Klammer, Funktion, Parameter

(while (not (setq p1 (getpoint "Punkt 1:"))))
Otto
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon
 
#10
  Alt 5. Mär 2006, 20:55
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

(while (not (setq p1 (getpoint "Punkt 1:"))))
Ich werde und will aber keine Scriptsprache schreiben.
mein Teil soll mathematische ausdrücke ausrechnen...mehr nicht
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 03:09 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