November 2012
Intermediate to advanced
888 pages
54h 46m
Polish
Chcemy wykonywać działania arytmetyczne na liczbach w zapisie rzymskim, otrzymując wyniki w takim samym zapisie.
Problem ten jest bardzo podobny do dyskutowanego w poprzedniej recepturze. Najprostszym sposobem jego rozwiązania jest zdefiniowanie subklasy klasy Fixnum, która to subklasa delegować będzie wywołania niemal wszystkich swoich metod do (wewnętrznego) obiektu typu Fixnum. Rozpoczniemy od stworzenia kontenera dla klasy delegującej oraz zdefiniowania metod konwersji między rzymskim i arabskim zapisem liczb.
class Roman # Poniższe tablice wiążą podstawowe elementy rzymskiego zapisu liczb # z ich arabskimi odpowiednikami. @@roman_to_arabic = [['M', 1000], ['CM', 900], ...