Advertisement
Guest User

Untitled

a guest
Jan 19th, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.93 KB | None | 0 0
  1. Legenda:
  2. + == public
  3. # == protected
  4. - == private
  5.  
  6. abstrakcyjna klasa Formuła
  7. + bool wartość(Wartościowanie wart) // metoda przeciążana w dzieciach
  8. # Formuła[] argumenty
  9. # bool[] wartości(Wartościowanie wart)
  10. // zwraca tablicę wartości logicznych dla każdego argumentu w formule
  11. // funkcja służąca do poprawienia czytelności funkcji wartość
  12. // tworzysz listę boolean o długości argumentów i dla każdego argumentu wywołujesz wartość
  13.  
  14. klasa Zmienna dziedzicząca po Formuła
  15. + konstruktor(char identyfikatorZmiennej)
  16. + override bool wartość(Wartościowanie wart)
  17. // odczytaj i zwróć wartość zmiennej zdefiniowanej identyfikatorem
  18. + override string ToString()
  19. // zwróć identyfikator zmiennej jako string
  20. - char IdZmiennej
  21.  
  22. klasa Not dziedzicząca po Formuła
  23. + konstruktor(Formuła form)
  24. // tworzysz jednoelementową tablicę argumenty do której wstawiasz form
  25. + override bool wartość(Wartościowanie wart)
  26. // zwróć zaprzeczenie argumenty[0].Wartość(wart)
  27. + override string ToString()
  28. // zwróć "~ (" + argumenty[0].ToString() + ")"
  29.  
  30. klasa And dziedzicząca po Formuła
  31. + konstruktor(Formuła formA, Formuła formB)
  32. // tworzysz tablicę dwuelementową argumenty gdzie wstawiasz formA i formB
  33. // alternatywnie możesz spróbować zrobić konstruktor(Formuła... formuły)
  34. // wtedy do konstruktora mieści się dowolna liczba obiektów zaś formuły są rozumiane jako
  35. // tablica obiektów Formuła
  36. // tylko że w javie tak nigdy nie robiłem
  37. + override bool wartość(Wartościowanie wart)
  38. // zwracasz && od wartości argumentów zwróconych przez metodę wartości
  39. // ogólnie to wygląda jakoś tak: bool result = wynik[0]; pętla po całej tablicy zwróconej
  40. // przez metodę, w pętli result = result && wynik[i]
  41. + override string ToString()
  42. // przechodzisz przez pętlę argumentów poza pierwszym, w każdym obrocie pętli dodajesz do budowanego
  43. // stringa " AND " + argumenty[i].ToString()
  44. // zwracasz "(" + argumenty[0].ToString() + utworzony pętlą string + ")"
  45.  
  46. klasa OR jest analogiczna do AND.
  47.  
  48. klasa Wartościowanie
  49. + konstruktor()
  50. // tworzysz tablicę zmienne o długości 26 (czy ile tam jest liter w łacińskim)
  51. // w zadaniu jest napisane, że musisz też sprawdzać istnienie zmiennej w wartościowaniu
  52. // dlatego tworzysz drugą tablicę o tej samej długości i również bool ustawione
  53. + void ustaw(char id, bool value)
  54. // int indeks = obliczIndeks(id)
  55. // zmienne[indeks] = value
  56. // ustawione[indeks] = true
  57. + bool wartość(char id)
  58. // int indeks = obliczIndeks(id)
  59. // jeśli ustawione[indeks] == false, wyrzuć wyjątek
  60. // wpp. zwróć zmienne[indeks]
  61.  
  62. - int obliczIndeks(char id)
  63. // return ((int) id) - 65, czy tam jaką wartość ma "a" w kodzie ASCII
  64. - bool[] zmienne
  65. // wartości zmiennych
  66. - bool[] ustawione
  67. // flagi określające, czy wartość zmiennej została ustawiona
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement