Boolische Algebra
Übersicht

Daniel KnobeBetreff: Boolische Algebra |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hi,
folgende Funktion: a AND (NOT(b AND c)) Sie wird über eine Eingabe, in B3D als String gespeichert. Nun kann ihc damit aber mathematisch nicht weiter verfahren -_- wie kann ich wenn ich z.b. a=1 b=0 c=1 ist, das er mir das ausrechnet? mfg |
||
![]() |
Jan_Ehemaliger Admin |
![]() Antworten mit Zitat ![]() |
---|---|---|
in der Hoffnung es richtig verstanden zu haben,
Code: [AUSKLAPPEN] a$=Input$("a=")
b$=Input$("b=") c$=Input$("c=") RuntimeError Int(a) And (Not(Int(b) And Int(c))) int formt einen String seine Zeichen in die Wiederzugebende Integer Zahl um.[/code] |
||
between angels and insects |
Daniel Knobe |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Nee^^,
Also, folgender String: "a AND (NOT(b AND c)) " ist gespeichert in Funktion$: Funktion$="a AND (NOT(b AND c))" Nun möchte ich aber das ich damit rechnen kann. Ich habe folgende Variablen: a=1 b=0 c=0 Die Funktion ist deshalb in einem String, da sie von einem User per Input eingetippt wird. Ich will ein Programm für Warheitstabellen schreiben, weiß aber nicht wie ich es umsetzen soll. |
||
AvaGast |
![]() Antworten mit Zitat |
|
---|---|---|
Du musst den String halt aufwendig auseinander basteln und die entsprechenden Anweisung dann auswerten und berechnen. | ||
![]() |
SpionAtom |
![]() Antworten mit Zitat ![]() |
---|---|---|
Rein zufälligerweise hatten wir etwas ähnliches in unserer Modellierunghausaufgabe:
Mit dieser Grammatik kann man einen Ausdruck überprüfen, ob er ein korrekt geschriebener boolscher Ausdruck ist: G = (T, N, P, S) T = {A, B, (, ), NOT, AND, OR, 1, 0} N = {X} S = X P = { X ::= (X) X ::= A | B | 0 | 1 X ::= NOT X X ::= X OR A | X OR B | X OR 1 | X OR 0 X ::= X AND A | X AND B | X AND 1 | X AND 0 } Jetzt muss man sich nur noch mit Grammatiken auskennen. ![]() |
||
![]() |
Jan_Ehemaliger Admin |
![]() Antworten mit Zitat ![]() |
---|---|---|
Aha, das ergibt sinn!
Du musst eine Scriptengine schreiben! suche würde auch helfen. falls du über Bmax verfügst, nimmt die arbeit die die Lua engine ab. |
||
between angels and insects |
![]() |
Xaron |
![]() Antworten mit Zitat ![]() |
---|---|---|
SpionAtom hat Folgendes geschrieben: Mit dieser Grammatik kann man einen Ausdruck überprüfen, ob er ein korrekt geschriebener boolscher Ausdruck ist:...
Das mag ja sein, geht aber völlig an der Fragestellung vorbei. ![]() Gruß - Xaron |
||
Cerberus X - Monkey X Reloaded! |
![]() |
SpionAtom |
![]() Antworten mit Zitat ![]() |
---|---|---|
Xaron hat Folgendes geschrieben: SpionAtom hat Folgendes geschrieben:
Mit dieser Grammatik kann man einen Ausdruck überprüfen, ob er ein korrekt geschriebener boolscher Ausdruck ist:...
Das mag ja sein, geht aber völlig an der Fragestellung vorbei. ![]() Gruß - Xaron Und gerade eine Grammatik ist so eine Art Parser. Eine Grammatik prüft, ob ein Satz (hier der boolsche Ausdruck) zu einer bestimmten Sprache gehört (hier die Sprache der korrekten boolschen Terme). |
||
![]() |
D2006Administrator |
![]() Antworten mit Zitat ![]() |
---|---|---|
Grammatiken sind Theorien und Konzepte. Helfen vielleicht ein wenig beim erstellen des entsprechenden Algorithmus, aber beantworten die Frage nur unzureichend.
Wenn man einmal Grammatiken verstanden hat, ist dass ja sowieso nicht so schwer zu entwickeln für dieses Thema. Die Umsetzung ist ein wenig komplizierter und jetzt hier gefragt. MfG D2006 |
||
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2 |
![]() |
SpionAtom |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hier mal ein einfacher Parser:
Code: [AUSKLAPPEN] ;$ - AND ;| - OR ;- - NOT ausdruck$ = "((A&B)|0)&(-1" Type produktionen Field von$ Field nach$ End Type S$ = "X" P.Produktionen = New Produktionen: P\von$ = "X": P\nach$ = "(X)" P.Produktionen = New Produktionen: P\von$ = "X": P\nach$ = "A" P.Produktionen = New Produktionen: P\von$ = "X": P\nach$ = "B" P.Produktionen = New Produktionen: P\von$ = "X": P\nach$ = "0" P.Produktionen = New Produktionen: P\von$ = "X": P\nach$ = "1" P.Produktionen = New Produktionen: P\von$ = "X": P\nach$ = "-X" P.Produktionen = New Produktionen: P\von$ = "X": P\nach$ = "X|X" P.Produktionen = New Produktionen: P\von$ = "X": P\nach$ = "X&X" tmp$ = ausdruck$ Repeat such = 0 For P.Produktionen = Each Produktionen If Instr(tmp$, P\nach) > 0 Then tmp$ = Replace$(tmp$, P\nach, p\von) such = 1 End If Next Until tmp$ = S$ Or such = 0 Print ausdruck$ If tmp$ = S$ Then Print "Dieser Ausdruck ist korrekt!" Else Print "Dieser Ausdruck ist falsch!" End If WaitKey End |
||
![]() |
Xaron |
![]() Antworten mit Zitat ![]() |
---|---|---|
SpionAtom hat Folgendes geschrieben: Und gerade eine Grammatik ist so eine Art Parser.
Nein. ![]() Gruß - Xaron |
||
Cerberus X - Monkey X Reloaded! |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group