Autor Beitrag
n-regen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 202
Erhaltene Danke: 2



BeitragVerfasst: Mo 22.06.09 19:53 
Hallo!

Wie kann ich eine Funktion schreiben, die einen booleschen Ausdruck mit einer oder mehreren Unbekannten auswertet?
Man soll also der Funktion z.B. folgenden String übergeben: ((NOT a) AND ((1 OR b) XOR (0 AND c))) und sie soll den String (NOT a) zurückgeben.
Ich bin gedanklich schon so weit zu wissen, dass sich das mit einer Rekursion machen lassen müsste, aber dazu müsste ich den Operator ganz in der Mitte (im Beispiel das kursive AND) herausfinden und den String an der Stelle zerlegen. Wie könnte ich das machen?

Ach ja: Das "faul" im Titel ist so gemeint, dass der Interpreter mit dem Interpretieren eines Unterausdrucks aufhören soll, sobald das Ergebnis klar ist (also z.B. 0 AND x => 0).
Hidden
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 2242
Erhaltene Danke: 55

Win10
VS Code, Delphi 2010 Prof.
BeitragVerfasst: Mo 22.06.09 21:12 
Hi :)

Viellecht hilft dir ja dieses Tutorial :) Insbesondere die Postfix-Notation auf der zweiten Seite.

E: Wenn du den Ausdruck vorher noch vereinfachen willst, wäre das hier eventuell 'was für dich :)

mfG,