Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Formula:
- class _True():
- def oblicz(self, zmienne):
- return True
- class _False():
- def oblicz(self, zmienne):
- return False
- class Zmienna():
- x = None
- def __init__(self, z):
- self.x = z
- def oblicz(self, zmienne):
- return zmienne[self.x]
- class Neg():
- form = None
- def __init__(self, f):
- self.form = f
- def oblicz(self, zmienne):
- return not self.form.oblicz(zmienne)
- class And():
- left = None
- right = None
- def __init__(self, fst, snd):
- self.left = fst
- self.right = snd
- def oblicz(self, zmienne):
- return self.left.oblicz(zmienne) and self.right.oblicz(zmienne)
- class Alt():
- left = None
- right = None
- def __init__(self, fst, snd):
- self.left = fst
- self.right = snd
- def oblicz(self, zmienne):
- return self.left.oblicz(zmienne) and self.right.oblicz(zmienne)
- class Impl():
- left = None
- right = None
- def __init__(self, fst, snd):
- self.left = fst
- self.right = snd
- def oblicz(self, zmienne):
- return (not self.left.oblicz(zmienne)) or self.right.oblicz(zmienne)
- class Iff():
- left = None
- right = None
- def __init__(self, fst, snd):
- self.left = fst
- self.right = snd
- def oblicz(self, zmienne):
- return ((not self.left.oblicz(zmienne)) or self.right.oblicz(zmienne)) and \
- ((not self.right.oblicz(zmienne) or self.left.oblicz(zmienne)))
- test_formula = Formula().Impl(_True(), _True())
- u = {"x" : True, "y" : False}
- print(test_formula.oblicz(u))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement