![]() |
String in Formel umwandeln
Liebe Delphi PRAXIS'ler,
kann man irgendwie einen String in eine Berechnungsformel umformen? Ich brauche es für ein Parabelprogramm. Hier ein Beispiel: 'y:=x²+2'! Geht das? Tipps wären sehr hilfreich :thumb:!!! Liebe Grüße loirad |
AW: String in Formel umwandeln
Such mal nach MatheParser
|
AW: String in Formel umwandeln
je nachdem, wie tief du einsteigen willst, lohnt auch ein Blick in diesen Thread:
![]() |
AW: String in Formel umwandeln
Hallihallo!
Wenn du genau die Form kennst, in der die Formel angegeben ist, kannst du es machen. Wenn also zum Beispiel weißt, dass der Benutzer die Formel IMMER in der Form: 'y:=x^N+B'angibt, funktioniert es:
Code:
Der Nachteil: sobald der Benutzer auch nur ein Leerzeichen zu viel setzt, funktioniert das alles schon nicht mehr.
var S : String; N,i: Integer; B: Real;
begin S := Edit1.text; N := StrToInt(S[6]); //der 6. Buchstabe im String B := ''; for i := 7 to Count(S) do // damit B < 9 möglich ist: der 7. bis letze Buchstabe B := B + StrToReal(S[i]); end; Alternative: Mach verschiedene Edit-Felder, in denen du die einzelnen Werte reinschreiben lassen kannst. Liebe Grüße! |
AW: String in Formel umwandeln
Zitat:
|
AW: String in Formel umwandeln
Oder man sucht im string nach den zeichen. Bei einer festen formel ist ja alles in beton gemeißelt was die operatoren angeht.
|
AW: String in Formel umwandeln
Naja es sollen auch z.B. Wurzelfunktionen angezeigt weden. Mit Edits habe ich es jetzt, aber ich will ja auch Wurzelfunktionen anzeigen.
@all: Danke für eure Hilfe :thumb: |
AW: String in Formel umwandeln
Zitat:
PS: FormelParser gibt es mehrere in der DP zu finden. |
AW: String in Formel umwandeln
Wenn du eine Wurzelfunktion berechnen lassen willst, dann musst du in das Edit-Feld für die Potenz 1/n schreiben, denn: sqrt(x) = x^(1/2) bzw. die n-te Wurzel von x = x^(1/n).
Wenn du das nicht möchtest, kannst du auch mithilfe von RadioButtons oder einer Combobox auswählen lassen, ob das eine Wurzelfunktion ist oder eine Potenzfunktion. Du musst aber sowieso abfragen, die wievielte Potenz berechnet werden soll, da die Anzahl der Parameter ja davon abhängt. Lass doch einfach in ein Editfeld oder mithilfe einer Combobox die Potenz bzw. Wurzel anzeigen. Daraufhin lässt du dann die entsprechende Anzahl Editfelder (1 Editfeld pro Parameter) sichtbar machen und hinterher auswerten. Das mit den Editfeldern habe ich mir so vorgestellt: (Label, Editfeld) Zurerst: n Daraufhin stellst du Visible: f(x)= a * x^n + b * x^(n-1) + ... + z *x^(n-n) Zum Beispiel: 3 f(x)= a * x^3 + b * x^2 + c * x + d |
AW: String in Formel umwandeln
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:46 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-2025 by Thomas Breitkreuz