Visual Basic - Technik, FAQ, Tricks, Beispiele

Home / Allgemein / Mathe / CRoman

Römische Zahlendarstellung

Einleitung

Die von den antiken Römern genutzte Darstellung ganzer Zahlen war weder leicht lesbar noch besonders praktisch (insbesondere wegen der fehlenden Null). Trotzdem begegnet man dieser Darstellungsart auch heute noch immer wieder.

Die Umrechnung ist nicht trivial, da z.B. die Römischen Zahlen von 5 bis 8 stetig wachsen, um dann plötzlich mit 9 und 10 wieder zu "schrumpfen": V, VI, VII, VIII, IX, X.

Falls man nun diesen "historischen Touch" für seine Anwendung (oder Kunden Smile!) benötigt, kann zur unten gezeigten CRoman-Funktion gegriffen werden.

Beispiele

MsgBox CRoman(9)    'ergibt "IX"
MsgBox CRoman(27)   'ergibt "XXVII"
MsgBox CRoman(29)   'ergibt "XXIX"
MsgBox CRoman(2001) 'ergibt "MMI"

Code / Quelltext

Beim ersten Start der Funktion werden die "Übersetzungstabellen" angelegt. Mit deren Hilfe ist es dann ein leichtes, die eigentlich unsymetrische römische Darstellung zu generieren:

Public Static Function CRoman( _
    ByVal Number As Integer _
  ) As String
  'Deklarationen (statisch!):
  Dim r As Variant
  Dim n As Variant
  Dim i As Long
  
  'Felder nur einmal füllen:
  If IsEmpty(r) Then
    r = Array("M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I")
    n = Array(1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1)
  End If
  
  'Von I (1) bis M (1000) durchlaufen:
  For i = LBound(r) To UBound(r)
    Do Until n(i) > Number
      CRoman = CRoman & r(i)
      Number = Number - n(i)
    Loop
  Next i
End Function

© Jost Schwider, 27.08.2001-27.08.2001 - http://vb-tec.de/croman.htm