Drugie zadanie z labu współbieżnego i obiektowego wygląda tak:
Napisz program kalkulator, który pozwala wczytywać wyrażenia arytmetyczne ze zmiennymi i wyliczać ich wartości. Wyrażenia mogą być dowolnie rozbudowane, choć składają się tylko z czterech podstawowych działań arytmetycznych. Zmienne i wyrażenia są typu całkowitego. Nazwy zmiennych składają się tylko z liter. Dane użytkownik podaje ze standardowego wejścia. Wyrażenia postaci % oznaczają odwołanie do wyrażenia wcześniej zdefiniowanego (jeśli numer jest = bieżącemu numerowi takie wyrażenie jest błędne, należy wypisać użytkownikowi komunikat o błędzie, tak samo jak w przypadku dzielenia przez 0). Przykład konwersacji z programem (liczby na początku wierszy i znak ">" wyświetla sam program, tekst pogrubiony pochodzi od użytkownika): 1>x=9 2>x = -3 3>y=4 4>x+y*2/3 x+y*2/3 = -1 5>zz+zz zz+zz = NIEOZNACZONE 6>%5+%5 (zz+zz)+(zz+zz) = NIEOZNACZONE 7>%6/%6 ((zz+zz)+(zz+zz))/((zz+zz)+(zz+zz)) = NIEOZNACZONE 8>zz=1 9>%7 ((zz+zz)+(zz+zz))/((zz+zz)+(zz+zz)) = 1 10>x=0 11>%4 x+y*2/3 = 2 12>1/x 1/x = BŁĄD 13>zz=5 14>zz zz=5 15>%8 zz=5 16> Koniec działania programu. Jakich wzorców projektowych użyjesz w swoim rozwiązaniu?
A oto rozwiązanie:
Rany! Ale to zadanie było męczące!
Kalkulator