Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - mit wirklichen Variablen Rechnen


Cybo - Do 25.09.03 19:27
Titel: mit wirklichen Variablen Rechnen
HI Leute,

ein kleines weiteres Problem..

wie schaffe ich es, dass der Compi mir 2*6a ausrechnet? Ohne das ich die Fehlermeldung a ist kein wert bekomme?

Danke


MSCH - Do 25.09.03 20:06

überhaupt nicht.

grez
msch


Cybo - Do 25.09.03 20:13

Sehr konstruktiv ist die Antwort aber nicht, aber es gibt doch zahlreiche MAtheprogramme bei denen man mit Variablen rechnen kann...

ich teste gerade aus ob ich der Var einfach einen Wert zuweise und ihn dann nach der rechnung wieder raus ziehen kann...


JoelH - Do 25.09.03 20:43
Titel: hmm,
joo, siehe dazu dein anderer Thread. Das ist nicht so trivial wie es aussieht, für den Rechner sind alles erstmal nur Asciizeichen, du musst ihm explizit beibringen was er 'richtig' rechenn kann, also zB. 2*5a = 2*5*a = 10*a = 10a , der weiss nicht das a eine Variable sit.


Cybo - Do 25.09.03 20:47

und wie bringe ich ihm bei das a nur ein Platzhalter ist?

Gibt es nciht sowas wie var a:wirklich var; :P

Kannst du mir ein Source Bsp geben wie ich das festlege?


Raphael O. - Do 25.09.03 20:57

IMAO musst du das ganze dann parsen...
du hast also in deinem Programme einen Wert für a, und dann suchst du quasi in der Funktion oder was es auch immer ist nach dem a und ersetzt es durch den Wert...


Cybo - Do 25.09.03 21:05

ich habe aber noch keinen Wert für a...

ich will das er mir a isoliert.. a=17 oder sowas.. und der nächste step ist denn für a 17 einsetzen.. aber er muss erst mit a rechnen können..

Wie wäre es damit, wenn ich a:= 1,01 setzte und dann nachher .. ach das klappt nie, ich verändere ja die Zahlen *denk*

moment :idea: ie wäre es wenn ich meine echte Var einfach als Str mitziehe?? also ich lass ihn rechnen var aint*var bint + str 'a' ? Würde das gehen... das muss ich gleich mal testen..


Cybo(Ex-Cyberbob, wenn es jmd. wissen will)


JoelH - Do 25.09.03 21:13
Titel: hmm,
naja es erstmal musst du den String parsen und die bestandteile separieren, dann musst du die Teile mit den Regeln vergleichen die du hast, zb. Binomische Formeln etc. naja und dass bringt es dir dann.

Wenn du zb 2*5a hast dann separierst du erstmal alles in einzelteile und analysierst diese

2
*
5a

nun guckst du wie es passt oder was auf weiter aufzulösen ist
also
2
*
5
*
a
dann guckst du was man berechnen kann.
2*5 darfst du also fassen wir dies zusammen = 10
10
*
a

da lässt sich nixmehr kitten ausser das man das * streichen kann => 10a


Aber frag mich nicht nach Code . Der ist mir zu kompliziert um ihn einfach mal so hin zu knallen.


Cybo - Do 25.09.03 21:24

ja, das Prinzip ist gut, kann man sich das nciht evtl. als fertige untit besorgen? Oder gibt es hier jmd. der sooooo unendlich freundlich wäre? :roll:


Cybo


Anonymous - Do 25.09.03 21:37

http://www.torry.net/vcl/science/expressions/fatexpression.zip

Toll, wa?


Cybo - Do 25.09.03 21:41

naja toll :?: es ist schon mal ein Anfang, jetzt kann ich mich morgen durch einen eng. text hangeln und ich wollte ein simples mAthe prog :)

erstmal danke für den link ich zieh mir das morgen mal rein..


Cybo


JoelH - Do 25.09.03 21:44

Cybo hat folgendes geschrieben:
und ich wollte ein simples mAthe prog :)

Bist du blauäugig ?! ;)


Anonymous - Do 25.09.03 21:45

oder hast du eine rosa brille an? *g*

wenn du gleichungen lösen willst, dann vegiss es. Es sei denn du hast mal eben 1 1/2 Jahre Zeit. (Vermute ich jedenfalls)


Cybo - Do 25.09.03 21:49

sry guys, weder brille noch blauäugigkeit vorhanden :)

Ich denke eher, aus einer Signatur geklaut, Optimismus ist nur ein anderes Wort für Unwissenheit :)

Ich dachte das wäre mal ein kleines nützliches Tool...

da muss ich mir echt was einfallen lassen und wenn es 1 1/2 Jahre dauert... und das ist eine Drohung... 8)

Delphi ich komme.. :twisted:


Cybo :wink:


Anonymous - Do 25.09.03 21:51

du willst also gleichungen lösen?


Cybo - Do 25.09.03 21:55

im Prinzip in diesem Step ja, eigentlich will ich Vektoren und Abstände von Punkten zu Ebenen brechnen :)


Raphael O. - Do 25.09.03 22:53

wobei 1 1/2 Jahre für nur gebräuchliche Funktionen aber doch stark übertrieben erscheinen...


UC-Chewie - Do 25.09.03 23:11

Du kannst dir eine Menge Arbeit ersparen, wenn du, anstatt ins Programm die Formel als zusammenhängender String einzugeben, mehrere Edit-Felder für die Eingabe benutzt, in die nur einzelne Werte eingetragen werden.
Dann sparst du dir nämlich das Parsen des Strings und musst "nur" noch die mathematischen Berechnungen durchführen.
Der Nachteil ist aber natürlich, dass du dann eigentlich nur noch die selbe Formel mit anderen Werten verwenden kannst.


Anonymous - Fr 26.09.03 14:16

Cybo hat folgendes geschrieben:
im Prinzip in diesem Step ja, eigentlich will ich Vektoren und Abstände von Punkten zu Ebenen brechnen :)


dann ist die von UC-Chewie vorgeschlagene Methode sinnvoll.
Aber jede beliebige Gleichung lösen...mir fällt nichts ein wie das gehen sollte.


Cybo - Sa 27.09.03 21:10

Ich habe das Prolem nun völlig unspektakulär gelöst und die waren Delphi Freaks würden mich erschlagen, aber ich lasse nun z.B. bei
2(var1) *6 (var2)a einfach var1*var2 rechnen und hänge das 'a' als string an..

Das einzige Problem das dabei entstehen könnet wäre bei a*a aber das handel ich einfach über if then ab...