Delphi-PRAXiS
Seite 8 von 14   « Erste     678 910     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Kompilierender Matheparser (https://www.delphipraxis.net/46536-kompilierender-matheparser.html)

Dust Signs 29. Mai 2005 20:10

Re: Kompilierender Matheparser
 
Zitat:

Zitat von Nicodius
sry schnell ne frage(ich hab jetzt nicht alels durchgelesen)

was sind imaginäre Werte? ... also nur vorgestellte werte - was hat dass für nen sinn(weil auch immer kommt ()i

Die Imaginäre Einheit ist definiert als
Code:
i^2 = -1
; also unter uns gesagt ist i die Wurzel aus minus 1; ist nicht korrekt so, aber so lässt sich's leicht verstehen. Wenn du mehr dazu wissen willst, such einfach mal bei Google:

[google]Gauss'sche Zahlenebene[/google]
[google]Imaginäre Einheit[/google]
[google]Resonanz+Schwingkreis+Formel[/google]

Dust Signs

jim_raynor 29. Mai 2005 20:24

Re: Kompilierender Matheparser
 
Zitat:

Zitat von Dax
Edit2: Fehler beseitigt, neue Version :mrgreen:

So langsam wirds ;) Merkwürdigerweise gibts massive Probleme, wenn PreSolve false ist. Da knallt selbst

Delphi-Quellcode:
  Parser:=TExCQParser.Create;
  Parser.SolveMode:=smVM;
  Parser.PreSolve:=false;

  Parser.RegisterVariable('Range');

  Parser.SetVariable('Range',[10]);

  Parser.Parse('1*2');

  ShowMessage(FloatToStr(Parser.Solve.X));
  Parser.Free;
Schreibt man es statt dessen in Klammern: (1*2) dann klappt es.

Hier scheint es also ein generelles Problem zu geben, wenn PreSolve false ist. Da ich den Variablen erst später einen Wert zuweise, aber die Formeln schon bei Programmstart kompiliere, bin ich auf PreSolve false angewiesen :(

dizzy 29. Mai 2005 21:19

Re: Kompilierender Matheparser
 
Zitat:

Zitat von jim_raynor
Da ich den Variablen erst später einen Wert zuweise, aber die Formeln schon bei Programmstart kompiliere, bin ich auf PreSolve false angewiesen :(

Der Sinn eines Presolver ist es, konstante Teile eines Ausdrucks vorauszuberechnen und als einen einzigen konstanten Wert zu verbraten. Variablen bleiben variabel - daher kann man imho auch bei der Registrierung angeben ob eine Variable als Konstante (der Presolver verwurstets mit), oder als echte Variable angesehen werden soll, die der Presolver bestehen lässt.
Ich denke mal Dax hat das so eingebaut :)

\\edit: Er macht also im Grunde aus "(x*2)+(sin(pi/2)*2)" --> "x*2+2"

Robert_G 29. Mai 2005 21:52

Re: Kompilierender Matheparser
 
Ich kam zwar noch nicht zum Testen. Aber der Code gefällt mir, wirklich hübsch geschrieben. :)
Das wollte ich nur mal loswerden...

btw: Nach all dem
Zitat:

Hi jim...
Zitat:

danke jim
... irgendwie lag mir da ein "He's dead, Jim" auf der Zunge. :mrgreen:

Dax 30. Mai 2005 06:23

Re: Kompilierender Matheparser
 
Zitat:

Zitat von jim_raynor
Zitat:

Zitat von Dax
Edit2: Fehler beseitigt, neue Version :mrgreen:

So langsam wirds ;) Merkwürdigerweise gibts massive Probleme, wenn PreSolve false ist. Da knallt selbst

=schnipp=

Schreibt man es statt dessen in Klammern: (1*2) dann klappt es.

Hier scheint es also ein generelles Problem zu geben, wenn PreSolve false ist. Da ich den Variablen erst später einen Wert zuweise, aber die Formeln schon bei Programmstart kompiliere, bin ich auf PreSolve false angewiesen :(

Das deutet alles auf ein Problem mit dem Serialisierer hin :? Sobald ich Zeit habe beziehungse wieder zuhause bin, sehe ich mir das mal an :)

PS:
Zitat:

Zitat von Robert_G
... irgendwie lag mir da ein "He's dead, Jim" auf der Zunge. :mrgreen:

Nein, noch lebt der Parser :mrgreen:

read you,
Dax

Dust Signs 30. Mai 2005 08:24

Re: Kompilierender Matheparser
 
Zitat:

Zitat von Dax
PS:
Zitat:

Zitat von Robert_G
... irgendwie lag mir da ein "He's dead, Jim" auf der Zunge. :mrgreen:

Nein, noch lebt der Parser :mrgreen:

Und Jim? :mrgreen:

Dust Signs

Dax 30. Mai 2005 13:12

Re: Kompilierender Matheparser
 
Huhu :)

Also, hab den Fehler gefunden und korrigiert, danke ;)

:arrow:
Delphi-Quellcode:
procedure ThisThread.NewVersion;
begin
  WriteLn('Korrigierte Version ist oben ;-)');
end;
ThisThread.NewVersion; :mrgreen:

Zitat:

Zitat von Dust Signs
Und Jim? :mrgreen:

Dust Signs

Wenn er weiter Fehler findet, wird es ihn so schnell nicht treffen ;)

read you,
Dax

DGL-luke 30. Mai 2005 15:25

Re: Kompilierender Matheparser
 
weisst du, was genial wäre? wenn der parser gleichungen (bzw. eine seite einer gleichung) lösen (bzw. vereinfachen) könnte.

nur als kleine anregung :)

Dax 30. Mai 2005 15:30

Re: Kompilierender Matheparser
 
Sag mal ein konkretes Beispiel, dann überleg ichs mir :)

read you,
Dax

DGL-luke 30. Mai 2005 15:59

Re: Kompilierender Matheparser
 
(aus der heutigen mathe-hausafgabe, was aber REIN GAR NICHTS zur sache tut :mrgreen: )

(lg(x))² - lg(4x-4) = 0

jetzt eben entweder komplett nach x auflösen, so dass zum schluss L={x;y} dasteht oder die linke seite so weit wie möglich vereinfachen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:35 Uhr.
Seite 8 von 14   « Erste     678 910     Letzte »    

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-2025 by Thomas Breitkreuz