Einzelnen Beitrag anzeigen
Alt 04.12.06, 21:01   #23 (permalink)
tannerli
 
Registriert seit: 04.12.06
tannerli Leistung: Facit NTK
Likes: 0
Standard

Meine Lösung in VBA, berücksichtigt die Subtraktionsregel

(Allerdings werden bei Zahlen über 19999 einfach noch mehr "A" eingefügt)


Code:
 Public Sub numbers()


MsgBox "Römische Zahl:" & vbCrLf & vbCrLf & convert((InputBox("Dezimalzahl:", "Dez > Röm Converter";)))

End Sub


Public Function convert(value As Integer)

Dim result, roman(14) As String
roman(0) = "A"
roman(1) = "MA"
roman(2) = "M"
roman(3) = "CM"
roman(4) = "D"
roman(5) = "CD"
roman(6) = "C"
roman(7) = "XC"
roman(8) = "L"
roman(9) = "XL"
roman(10) = "X"
roman(11) = "IX"
roman(12) = "V"
roman(13) = "IV"
roman(14) = "I"

Dim dez(14) As Integer
dez(0) = 5000
dez(1) = 4000
dez(2) = 1000
dez(3) = 900
dez(4) = 500
dez(5) = 400
dez(6) = 100
dez(7) = 90
dez(8) = 50
dez(9) = 40
dez(10) = 10
dez(11) = 9
dez(12) = 5
dez(13) = 4
dez(14) = 1

For i = 0 To 14
While (value / dez(i)) >= 1
result = result & roman(i)
value = value - dez(i)
Wend
Next

convert = result
End Function
tannerli ist offline   Mit Zitat antworten
 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61