Advertisement
Guest User

Untitled

a guest
Oct 16th, 2019
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.91 KB | None | 0 0
  1.  
  2. class Formula:
  3.  
  4. class _True():
  5. def oblicz(self, zmienne):
  6. return True
  7.  
  8.  
  9. class _False():
  10. def oblicz(self, zmienne):
  11. return False
  12.  
  13.  
  14. class Zmienna():
  15. x = None
  16.  
  17. def __init__(self, z):
  18. self.x = z
  19.  
  20. def oblicz(self, zmienne):
  21. return zmienne[self.x]
  22.  
  23.  
  24. class Neg():
  25. form = None
  26.  
  27. def __init__(self, f):
  28. self.form = f
  29.  
  30. def oblicz(self, zmienne):
  31. return not self.form.oblicz(zmienne)
  32.  
  33.  
  34. class And():
  35. left = None
  36. right = None
  37.  
  38. def __init__(self, fst, snd):
  39. self.left = fst
  40. self.right = snd
  41.  
  42. def oblicz(self, zmienne):
  43. return self.left.oblicz(zmienne) and self.right.oblicz(zmienne)
  44.  
  45.  
  46. class Alt():
  47. left = None
  48. right = None
  49.  
  50. def __init__(self, fst, snd):
  51. self.left = fst
  52. self.right = snd
  53.  
  54. def oblicz(self, zmienne):
  55. return self.left.oblicz(zmienne) and self.right.oblicz(zmienne)
  56.  
  57.  
  58. class Impl():
  59. left = None
  60. right = None
  61.  
  62. def __init__(self, fst, snd):
  63. self.left = fst
  64. self.right = snd
  65.  
  66. def oblicz(self, zmienne):
  67. return (not self.left.oblicz(zmienne)) or self.right.oblicz(zmienne)
  68.  
  69.  
  70. class Iff():
  71. left = None
  72. right = None
  73.  
  74. def __init__(self, fst, snd):
  75. self.left = fst
  76. self.right = snd
  77.  
  78. def oblicz(self, zmienne):
  79. return ((not self.left.oblicz(zmienne)) or self.right.oblicz(zmienne)) and \
  80. ((not self.right.oblicz(zmienne) or self.left.oblicz(zmienne)))
  81.  
  82.  
  83.  
  84. test_formula = Formula().Impl(_True(), _True())
  85. u = {"x" : True, "y" : False}
  86. print(test_formula.oblicz(u))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement