Code:
Option Explicit
Function RimskiBrojevi(Broj As Integer)
If Broj > 3999 Then
RimskiBrojevi = "Morate uneti broj manji od 4000!"
Exit Function
End If
Dim RB As String
Dim i As Integer
Dim jd As Integer, de As Integer, st As Integer, hi As Integer
Dim rjd As String, rde As String, rst As String, rhi As String
Broj = Round(Broj, 0)
RB = ""
Select Case Broj
Case 1 To 9
jd = Broj
Case 10 To 99
jd = Val(Mid(Str(Broj), 3, 1))
de = Val(Mid(Str(Broj), 2, 1))
Case 100 To 999
jd = Val(Mid(Str(Broj), 4, 1))
de = Val(Mid(Str(Broj), 3, 1))
st = Val(Mid(Str(Broj), 2, 1))
Case 1000 To 3999
jd = Val(Mid(Str(Broj), 5, 1))
de = Val(Mid(Str(Broj), 4, 1))
st = Val(Mid(Str(Broj), 3, 1))
hi = Val(Mid(Str(Broj), 2, 1))
End Select
'hiljade
If hi > 0 And hi < 4 Then
For i = 1 To hi
RB = RB & "M"
Next i
End If
rhi = RB
RB = ""
'stotine
Select Case st
Case 1 To 3
For i = 1 To st
RB = RB & "C"
Next i
Case 4
RB = "CD"
Case 5
RB = "D"
Case 6 To 8
RB = "D"
For i = 6 To st
RB = RB & "C"
Next i
Case 9
RB = "CM"
End Select
rst = RB
RB = ""
'desetice
Select Case de
Case 1 To 3
For i = 1 To de
RB = RB & "X"
Next i
Case 4
RB = "XL"
Case 5
RB = "L"
Case 6 To 8
RB = "L"
For i = 6 To de
RB = RB & "X"
Next i
Case 9
RB = "XC"
End Select
rde = RB
RB = ""
'jedinice
Select Case jd
Case 1 To 3
For i = 1 To jd
RB = RB & "I"
Next i
Case 4
RB = "IV"
Case 5
RB = "V"
Case 6 To 8
RB = "V"
For i = 6 To jd
RB = RB & "I"
Next i
Case 9
RB = "IX"
End Select
rjd = RB
RB = ""
RimskiBrojevi = rhi & rst & rde & rjd
End Function
Option Explicit
Function RimskiBrojevi(Broj As Integer)
If Broj > 3999 Then
RimskiBrojevi = "Morate uneti broj manji od 4000!"
Exit Function
End If
Dim RB As String
Dim i As Integer
Dim jd As Integer, de As Integer, st As Integer, hi As Integer
Dim rjd As String, rde As String, rst As String, rhi As String
Broj = Round(Broj, 0)
RB = ""
Select Case Broj
Case 1 To 9
jd = Broj
Case 10 To 99
jd = Val(Mid(Str(Broj), 3, 1))
de = Val(Mid(Str(Broj), 2, 1))
Case 100 To 999
jd = Val(Mid(Str(Broj), 4, 1))
de = Val(Mid(Str(Broj), 3, 1))
st = Val(Mid(Str(Broj), 2, 1))
Case 1000 To 3999
jd = Val(Mid(Str(Broj), 5, 1))
de = Val(Mid(Str(Broj), 4, 1))
st = Val(Mid(Str(Broj), 3, 1))
hi = Val(Mid(Str(Broj), 2, 1))
End Select
'hiljade
If hi > 0 And hi < 4 Then
For i = 1 To hi
RB = RB & "M"
Next i
End If
rhi = RB
RB = ""
'stotine
Select Case st
Case 1 To 3
For i = 1 To st
RB = RB & "C"
Next i
Case 4
RB = "CD"
Case 5
RB = "D"
Case 6 To 8
RB = "D"
For i = 6 To st
RB = RB & "C"
Next i
Case 9
RB = "CM"
End Select
rst = RB
RB = ""
'desetice
Select Case de
Case 1 To 3
For i = 1 To de
RB = RB & "X"
Next i
Case 4
RB = "XL"
Case 5
RB = "L"
Case 6 To 8
RB = "L"
For i = 6 To de
RB = RB & "X"
Next i
Case 9
RB = "XC"
End Select
rde = RB
RB = ""
'jedinice
Select Case jd
Case 1 To 3
For i = 1 To jd
RB = RB & "I"
Next i
Case 4
RB = "IV"
Case 5
RB = "V"
Case 6 To 8
RB = "V"
For i = 6 To jd
RB = RB & "I"
Next i
Case 9
RB = "IX"
End Select
rjd = RB
RB = ""
RimskiBrojevi = rhi & rst & rde & rjd
End Function