13 Römische Zahlen - Hochschule Darmstadt

Werbung
Advanced Programming Techniques
Autor:
Datum:
Prof. Dr. Bernhard Humm, FB Informatik, Hochschule Darmstadt
27.1.2009
Römische Zahlen
Für die Aufgabe gilt wie üblich:
1. Überlegen Sie, welche Java-Strukturen für die Aufgabe angemessen sind (Klassen und / oder
Schnittstellen, Neuimplementierung und / oder Nutzung / Erweiterung von Klassen im JDK,
Signaturen, …)
2. Implementieren Sie Ihre Lösung. Verwenden Sie ausschließlich englische Namen.
3. Dokumentieren Sie Ihre Lösung mit JavaDoc in englischer Sprache
4. Entwickeln Sie Testfälle mit JUnit
5. Testen Sie Ihre Lösung
6. Stellen Sie Ihre Lösung im WIKI dar, falls sie sich prinzipiell von einer bereits dargestellten
Lösung unterscheidet
1
RomanNumber
Entwickeln Sie eine Klasse RomanNumber, welche die Umrechnung von Ganzzahlen zwischen der
römischen und arabischen Schreibweise erlaubt.
Beziehen Sie sich vorerst auf die einfache Umrechnung.
Setzen Sie optional auch die Subtraktionsregel um.
Die folgende Darstellung ist Wikipedia entnommen.
Seite 1
Advanced Programming Techniques
1.1 Darstellung
Die in einer römischen Zahl verwendeten Zeichen haben, unabhängig von ihrer Position, einen festen
Wert. Dabei gibt es die Zehnerpotenzen als Basiswerte (die „Einer“) und die fünffachen
Hilfsbasiswerte (die „Fünfer“).
Die heute verwendeten römischen Ziffern
1.2
Zeichen
I
V
X
L
C
D
M
Wert
1
5
10
50
100
500
1000
Einfache Umrechnung
Zur Umrechnung in eine römische Zahl ohne die weiter unten beschriebene Subtraktionsregel genügt
es, mit den großen Ziffern beginnend, jede so häufig wie möglich von der umzurechnenden Zahl
abzuziehen und die zugehörigen römischen Ziffern der Reihe nach zu notieren, dabei werden der
Übersichtlichkeit wegen die Ziffern automatisch der Größe nach sortiert:
1984 = 1 × 1000 1 × 500 4 × 100 1 × 50 3 × 10 4 × 1
M
D
CCCC
L
XXX
IIII
= MDCCCCLXXXIIII
Um eine solche römische Zahl wieder zurückzurechnen, braucht man einfach nur die Werte der
einzelnen Zahlenzeichen zu addieren bzw. zu subtrahieren.
Um zu vermeiden, dass ein Zeichen häufiger als dreimal hintereinander auftritt, muss man sich der
folgenden Subtraktionsregel bedienen.
1.2.1
Subtraktionsregel
Die Subtraktionsregel ist eine heute übliche, verkürzende Schreibweise, mit der es vermieden werden
soll, vier gleiche Zahlzeichen in direkter Aufeinanderfolge zu schreiben.
Die Subtraktionsregel in ihrer Normalform besagt, dass die Zahlzeichen I, X und C einem ihrer
beiden jeweils nächstgrößeren Zahlzeichen vorangestellt werden dürfen und dann in ihrem Zahlwert
von dessen Wert abzuziehen sind:
IV = 4 (statt IIII)
IX = 9 (statt VIIII)
Seite 2
Advanced Programming Techniques
XL = 40 (statt XXXX)
XC = 90 (statt LXXXX)
CD = 400 (statt CCCC)
CM = 900 (statt DCCCC)
Bei Einhaltung dieser Regel ist es nicht zulässig, das abzuziehende Zeichen auch seinem dritt- oder
viertgrößeren Zeichen voranzustellen, also z.B. IL = 49 (richtig XLIX), IC = 99 (richtig XCIX), XM
= 990 (richtig CMXC) zu schreiben, wie es trotzdem aus Unkenntnis der genauen Regel oder der
Kürze halber manchmal geschieht.
Ebenso ist es bei Einhaltung der Regel nicht zulässig, mehr als ein einziges Zeichen subtraktiv zu
verwenden (z. B. IIX für 8), wie es im Mittelalter gelegentlich zu belegen ist, oder die durch
Fünferbündelung entstandenen Zeichen V, L oder D subtraktiv zu verwenden (z. B. VC = 95 statt
richtig XCV).
Beispiel für subtraktive Schreibung einer Jahreszahl:
1949 = 1000 + (1000−100) + (50−10) + (10−1)
M
CM
XL
IX
= MCMXLIX
Seite 3
Herunterladen