Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Legenda:
- + == public
- # == protected
- - == private
- abstrakcyjna klasa Formuła
- + bool wartość(Wartościowanie wart) // metoda przeciążana w dzieciach
- # Formuła[] argumenty
- # bool[] wartości(Wartościowanie wart)
- // zwraca tablicę wartości logicznych dla każdego argumentu w formule
- // funkcja służąca do poprawienia czytelności funkcji wartość
- // tworzysz listę boolean o długości argumentów i dla każdego argumentu wywołujesz wartość
- klasa Zmienna dziedzicząca po Formuła
- + konstruktor(char identyfikatorZmiennej)
- + override bool wartość(Wartościowanie wart)
- // odczytaj i zwróć wartość zmiennej zdefiniowanej identyfikatorem
- + override string ToString()
- // zwróć identyfikator zmiennej jako string
- - char IdZmiennej
- klasa Not dziedzicząca po Formuła
- + konstruktor(Formuła form)
- // tworzysz jednoelementową tablicę argumenty do której wstawiasz form
- + override bool wartość(Wartościowanie wart)
- // zwróć zaprzeczenie argumenty[0].Wartość(wart)
- + override string ToString()
- // zwróć "~ (" + argumenty[0].ToString() + ")"
- klasa And dziedzicząca po Formuła
- + konstruktor(Formuła formA, Formuła formB)
- // tworzysz tablicę dwuelementową argumenty gdzie wstawiasz formA i formB
- // alternatywnie możesz spróbować zrobić konstruktor(Formuła... formuły)
- // wtedy do konstruktora mieści się dowolna liczba obiektów zaś formuły są rozumiane jako
- // tablica obiektów Formuła
- // tylko że w javie tak nigdy nie robiłem
- + override bool wartość(Wartościowanie wart)
- // zwracasz && od wartości argumentów zwróconych przez metodę wartości
- // ogólnie to wygląda jakoś tak: bool result = wynik[0]; pętla po całej tablicy zwróconej
- // przez metodę, w pętli result = result && wynik[i]
- + override string ToString()
- // przechodzisz przez pętlę argumentów poza pierwszym, w każdym obrocie pętli dodajesz do budowanego
- // stringa " AND " + argumenty[i].ToString()
- // zwracasz "(" + argumenty[0].ToString() + utworzony pętlą string + ")"
- klasa OR jest analogiczna do AND.
- klasa Wartościowanie
- + konstruktor()
- // tworzysz tablicę zmienne o długości 26 (czy ile tam jest liter w łacińskim)
- // w zadaniu jest napisane, że musisz też sprawdzać istnienie zmiennej w wartościowaniu
- // dlatego tworzysz drugą tablicę o tej samej długości i również bool ustawione
- + void ustaw(char id, bool value)
- // int indeks = obliczIndeks(id)
- // zmienne[indeks] = value
- // ustawione[indeks] = true
- + bool wartość(char id)
- // int indeks = obliczIndeks(id)
- // jeśli ustawione[indeks] == false, wyrzuć wyjątek
- // wpp. zwróć zmienne[indeks]
- - int obliczIndeks(char id)
- // return ((int) id) - 65, czy tam jaką wartość ma "a" w kodzie ASCII
- - bool[] zmienne
- // wartości zmiennych
- - bool[] ustawione
- // flagi określające, czy wartość zmiennej została ustawiona
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement