Montag, 18. November 2013
Römische Zahlen umwandeln (POS1: 2BHIF)
Römische Zahlen
Schreiben Sie eine Klasse RomanNumber
, welche es erlaubt, mit römischen Zahlen zu rechnen bzw. römische Zahlen in ganze Zahlen und umgekehrt umzurechnen. Schreiben Sie dazu Methoden zum Umrechnen von ganzen Zahlen (1 bis 3000) in Römische Zahlen und umgekehrt. Die römischen Ziffern haben folgende Bedeutung:
I ... 1 V ... 5 X ... 10 L ... 50 C ... 100 D ... 500 M ... 1000Beachten Sie, dass nur jeweils drei gleiche Ziffern hintereinander geschrieben werden. Stattdessen wird die nächst größere Einheit benutzt und eine Einheit abgezogen (XC = 90, XCIX = 99, IX = 9, VIII = 8).
class RomanNumber: """Roman numbers. Internal representation is always the integer value. """ def __init__(self, value): """Initialize with value. If type of value is int, than this is the integer value. If type of value is str, than this is a roman number, which has to be converted into the internal int-value""" pass def toRoman(self): """returns string with roman representation""" pass def toInt(self): """returns integer value of roman number""" pass def add(self, other): """add the value of other (RomanNumber) to own (self) value and return a new RomanNumber object.""" pass def sub(self, other): """subtract the value of other (RomanNumber) from own (self) value and return a new RomanNumber object.""" pass def mul(self, other): """multiply the value of other (RomanNumber) with own (self) value and return a new RomanNumber object.""" pass def __str__(self): """returns the value like 'XXII (23)'""" pass
Ergänzen Sie dieses Gerüst zu einer funktionierenden Klasse und schreiben Sie ein Testprogramm mit fix programmierten Testfällen.
Schreiben Sie weiters ein zweites Modul, welches die Klasse RomanNumber
importiert und jeweils eine Zeile der Art
zahl op zahleinliest, die Operation
op
(+
, -
oder *
) ausführt und das Ergebnis ganzzahlig und als Römische Zahl ausgibt. zahl
ist jeweils eine ganze Zahl oder eine römische Zahl.
Beispielaufrufe:
~/work/tmp > python romancalc.py >>> 24 + 27 LI (51) >>> LI - 24 XXVII (27) >>> LI - XXIV XXVII (27) >>> ~/work/tmp >
Informationen finden Sie unter:
Labels: Aufgabe, POS1-2, Python, Testen
Abonnieren Posts [Atom]
Kommentar veröffentlichen