A continuación les presento una función hecha en

Anuncio
A continuación les presento una función hecha en Visual Basic 6.0 para
convertir un número natural a números romanos; es sencilla y no necesita +
que recibir como parámetro el número a convertir; espero le sea de utilidad a
alguien.
Function ConvertirRomano(numero As Integer) As String
Dim Romano As String
Dim I As Integer, Digito As Integer, X As Integer
Dim Cadena As String, CadenaTmp As String
Dim Simbolo1 As String * 1, Simbolo2 As String * 1, Simbolo3 As String * 1
Cadena = CStr(numero)
For I = 1 To Len(Cadena)
If Len(Cadena) = 4 Then
Simbolo1 = "M"
Simbolo2 = "Q"
Simbolo3 = "H"
Digito = CInt(Left$(Cadena, 1))
Cadena = Right$(Cadena, 3)
ElseIf Len(Cadena) = 3 Then
Simbolo1 = "C"
Simbolo2 = "D"
Simbolo3 = "M"
Digito = CInt(Left$(Cadena, 1))
Cadena = Right$(Cadena, 2)
ElseIf Len(Cadena) = 2 Then
Simbolo1 = "X"
Simbolo2 = "L"
Simbolo3 = "C"
Digito = CInt(Left$(Cadena, 1))
Cadena = Right$(Cadena, 1)
ElseIf Len(Cadena) = 1 Then
Simbolo1 = "I"
Simbolo2 = "V"
Simbolo3 = "X"
Digito = CInt(Left$(Cadena, 1))
Cadena = ""
End If
If Digito <= 3 Then
For X = 1 To Digito
CadenaTmp = CadenaTmp & Simbolo1
Next
ElseIf Digito < 5 Then
CadenaTmp = Simbolo1 & Simbolo2
ElseIf Digito = 5 Then
CadenaTmp = Simbolo2
ElseIf Digito <= 8 Then
CadenaTmp = Simbolo2
For X = 1 To Digito - 5
CadenaTmp = CadenaTmp & Simbolo1
Next
ElseIf Digito = 9 Then
CadenaTmp = Simbolo1 & Simbolo3
End If
Romano = Romano & CadenaTmp
CadenaTmp = ""
Next
ConvertirRomano = Romano
End Function
Descargar