![]() |
Schaltungen
Hallo, kann mir bitte wer helfen?!
Ich will ein Programm schreiben, das Mathematische Schaltungen (and, or, xor, not, etc.) lösen kann. Nur wie kann ich das machen, dass 1. Beliebig viele Variablen (zumindest max 10 oder so) verwendet werden können 2. Die Operatoren (eben and, or, xor, not, etc.) beliebig gesetzt werden können? Ich dachte eben, dass man in einer TListBox auswählt, ob man and oder or will und das dann in die Prozedur eingesetzt wird. Falls jetzt keiner versteht was ich meine: Ein Programm dass das z.B. Lösen kann:
Code:
Alles klar? :wink:
(a and b) and (c or a) or (not a)
|
Re: Schaltungen
Was meinst du mit lösen? Vereinfachen, soweit wie möglich oder Wahrheitstafeln erstellen?
|
Re: Schaltungen
Beides:
Also: Bsp:
Code:
a and b:
a b (a and b) 0 0 0 1 0 0 0 1 0 1 1 1 |
Re: Schaltungen
Für die einzelnen Belegungen der Atome nimmst du am besten Booleans, die Verknüpfungen (and, or, etc.) bieten dir alle deine Programmiersprache. Die Tabelle gestaltet sich aus allen möglochen Belegungen.
Für die (algorithmische) Vereinfachung bietet sich das ![]() |
Re: Schaltungen
Zitat:
Ja schon, nur wenn der User jetzt eingibt:
Code:
wie lasse ich das mithilfe der Delphi-Anweisungen and, or, usw. "berechnen"??
(a and b) or (c xor b)
|
Re: Schaltungen
Tja, wie schon im anderen Thread erwähnt: Du wirst um eine Art Parser nicht herum kommen, da es halt keine Möglichkeit gibt einen String in dirket ausführbaren Code zu wandeln.
Das ist bei langen "Befehlsketten" sicherlich nicht mehr trivial. Falls Du etwas C++ kannt, könnte Dir vielleicht ein Projekt auf ![]() Schönen Abend -c- |
Re: Schaltungen
Zitat:
Zum Auswerten der Formelausdrücke brauchst du einen Parser. Such mal hier im Forum nach ![]() |
Re: Schaltungen
schon mal nach Bool'sche Algebra gegoogelt ?
|
Re: Schaltungen
danke, werd ich mal machen...
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:52 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