AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte Der HAM-Parser
Thema durchsuchen
Ansicht
Themen-Optionen

Der HAM-Parser

Ein Thema von Dax · begonnen am 26. Dez 2005 · letzter Beitrag vom 17. Jan 2014
Antwort Antwort
Seite 5 von 8   « Erste     345 67     Letzte »    
Dax
Huhu

Ich hab wieder zugeschlagen ^^ und noch einen Matheparser gebaut

Das Ding heißt HAM (fragt nicht wofürs steht, ich muss mir noch was einfallen lassen ) und ist mal wieder meinem Perfektionismus entsprungen. Der ECQP war einfach nicht so ganz das wahre, also hab ich den gebaut. (Und weil ich quasi versprochen habe, es zu tun ^^)

Also dann.. Ein Archiv sagt mehr als tausend Worte, oder? Eins mit dem gesamten Sourcecode (jämmerlich kommentiert) und (bis jetzt) drei Demos (ganz schön schön kommentiert ) ist im Anhang. Weitere Demos, unter anderem zu den Plugins () werden noch Folgen.

*SCHINKEN zum zerfleddern bereit hinstell* (warum denkt ihr bei dem Namen auch immer ans essen? )
Angehängte Dateien
Dateityp: zip ham_124.zip (28,0 KB, 709x aufgerufen)
 
Benutzerbild von ---Bernhard---
---Bernhard---

 
Delphi 2006 Professional
 
#41
  Alt 8. Feb 2006, 13:28
Danke, funktioniert Problemlos
Bernhard Doll
  Mit Zitat antworten Zitat
bg 11
 
#42
  Alt 20. Feb 2006, 15:57
kann ich den Parser in mein Delphiprogramm einbauen, sodass ich einfach auf dem Formblatt die Funktion eingebe und diese in eine Funktion übertragen wird, die den passenden Y-Wert der Funktion berechnet?? Ich baue nämlich die numerische Integration (Sehnentrapezregel) in mein Programm als Anhang für ne Facharbeit.. Und das ist nicht so schön, wenn man die Funktion immer in der Unit verändern muss...

Bitte um Hilfe.. Hab mir den Parser angeguckt und hatte keine Ahnung ob, und wie er mir helfen kann.....

Danke

PS: im Anhang mein "Programm"....
Angehängte Dateien
Dateityp: zip mathepro_new_145.zip (207,6 KB, 19x aufgerufen)
  Mit Zitat antworten Zitat
bg 11
 
#43
  Alt 21. Feb 2006, 12:44
Kann mir bitte jemand helfen ?? (siehe letzter Beitrag....)
Ich habe mir den HAM-Parser geholt, komme mit ihm aber nicht klar..

Mit welcher procedure übergibt man die Funktion an den Parser und welche Ausgabe bekomme durch welche Funktionen des Parsers??

Ich bitte um Hilfe!!
  Mit Zitat antworten Zitat
Dax
 
#44
  Alt 21. Feb 2006, 13:01
Heya,

Zitat von bg 11:
Mit welcher procedure übergibt man die Funktion an den Parser und welche Ausgabe bekomme durch welche Funktionen des Parsers??
Hast du dir die Demos angesehen? Dem Parser sagst du mit .Expression := Formel, was er zu lösen hat, und mit .Eval löst du das Ding. Eval() gibt eine Referenz auf eine THAMVariable zurück, der Wert der dich interessieren wird ist garantiert .Value (der einzige übrigens).

Variablen und Funktionen, die du in der Formel verwendest, sollten unbedingt im Parser registriert sein, sonst gibt es Fehler.

bis dann
  Mit Zitat antworten Zitat
bg 11
 
#45
  Alt 21. Feb 2006, 13:14
Danke Dax...
Werde ich mal ausprobieren...

Ich habe mir alle Demos mal angeschaut, aber der Umfang und einige Datentypen, die ich nicht kenne, haben mich als "Anfänger" (habe Delphi in Informatik 12 GK in der Schule seit 2 Jahren...) sehr verwirrt...

Danke... mfg
  Mit Zitat antworten Zitat
Dax
 
#46
  Alt 21. Feb 2006, 13:17
Ja, es gibt in der Tat einfachere Parser, die aber genauso gut für deinen Zweck geeignet wären. Einen meine ich im Hier im Forum suchenCQParser von dem hier erkennen zu können ^^
  Mit Zitat antworten Zitat
bg 11
 
#47
  Alt 22. Feb 2006, 15:22
der rechnet mit komplexen Zahlen.. Ich habe aber keine Ahnung von komplexen Zahlen!!!
In der Beschreibung sagt der Autor, man könne den Parser aber auch für "normale" Funktionen nutzen... Wie das??? Wie kann ich eine Variabele festlegen (zum Beispiel x (ganz einfallsreich)), die ich dann in einer Funktion benutzen kann?? (z.b. 1/(1+x^2))

Kannst du mir helfen den sinnvoll einzubauen???
Hier die neuste Version meines Programms im Anhang....
Angehängte Dateien
Dateityp: zip mathepro_new_759.zip (269,7 KB, 18x aufgerufen)
  Mit Zitat antworten Zitat
Alexander

 
Turbo Delphi für .NET
 
#48
  Alt 23. Feb 2006, 15:03
Auch bei Dizzys Parser liegt ein Beispiel bei. War glaube ich ein Performance Test.
---
So habe es gerade noch mal geöffnet:
In der Demo steht:
Delphi-Quellcode:
  p := TCQParser.Create; //p: TCQParser;
  p.NumberFormat := nfReal;
  p.SetVariable(A, pi2);
  p.Parse(formula); // forumula ist ein String mit der Formel :)
Alexander
  Mit Zitat antworten Zitat
bg 11
 
#49
  Alt 23. Feb 2006, 15:13
Super!! Danke. werde ich ausprobieren..

Wofür steht A,pi2 ??
  Mit Zitat antworten Zitat
Benutzerbild von dizzy
dizzy

 
Delphi 7 Enterprise
 
#50
  Alt 24. Feb 2006, 03:08
Zitat von bg 11:
Wofür steht A,pi2 ??
Die 4 Zeilen sind ohne Zusammenhang evtl. etwas verwirrend

Schritt für Schritt:
Delphi-Quellcode:
procedure Foo;
var
  p: TCQParser;
  v: Double;
  e: Double;
begin
  v := 10;
  p := TCQParser.Create; // klar, Parser erstmal instantiieren
  p.NumberFormat := nfReal; // Dem Parser mitteilen, dass er bitte mit normalen Zahlen rechnen soll ;)
  p.RegisterVariable('x', v); // Dem Parser eine Variable 'x' bekannt machen, die den Wert von v enthalten wird.
  // p.SetVariable(...); Ist wie RegisterVariable, aber für bereits damit erzeugte Variablen.
  p.Parse('(20-x)^2'); // Parsed die Formel. D.h. bereitet sie intern aufs's Ausrechnen vor.
  p.Solve(e); // Rechnet die Formel aus, und schreibt das Ergebnis in e. (e=100 hier)
end;
Parse und Solve sind voneinander getrennt, damit es möglich ist die Werte von Variablen nach dem Parsen zu ändern. Das spart bei jeder Änderung eine Menge Rechenzeit, da das Parsen and sich recht viel CPU-Arbeit (Zeit) kostet, die man so nur einmal machen muss.
Der Parser ist somit dafür gerüstet, ein und die selbe Formel in der sich nur Werte ändern, immer und immer wieder zu lösen ohne zu viel Zeit zu verbraten.


Schönen Gruss,
dizzy
Fabian K.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 5 von 8   « Erste     345 67     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 00:48 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