Mailinglisten-Archive |
> mein php script bekommt in einem einfachen Fall z. B. sowas: > > f(x) = m * x + b > > Hat da einer ne Idee wie ich das angehen könnte, bevor ich mich in > tausend if() stürze... Ifs werden in dem Fall schwierig werden. :) Einen mathematischen Parser programmiert in der Regel so, daß der Ausdruck aufgesplittet und in Postfixes umgewandelt wird. Dann eignet sich ein Baum für die Repräsentation gut; ein Ausdruck wie x = a + b * c kann dann so aussehen: ^3 /=\ / \ x ^2 /+\ / \ a ^1 /*\ / \ b c Diesen Tree kann man dann bottom-up durchlaufen: 1: b*c 2: (Resultat von 1) + a 3: Resultat von 2 Das ist ein beliebter Spiel in jeder Programmiersprache; Du könntest Dir einen entsprechenden C oder Pascal Source ansehen, und versuchen zu portieren. Es ist wohl auch in jedem Standardbuch erklärt (Principles of Systems Programming von Robert M. Graham, z.B.). In PHP habe ich sowas bislang noch nicht gesehen; aber wenn Du die Gifs tatsächlich mit PHP gezeichnet hast, sollte das auch nicht unlösbar sein. :) Mit freundlichen Grüßen, Tobias Ratschiller
php::bar PHP Wiki - Listenarchive