Vous êtes sur la page 1sur 4

PROGRAMA PARA CONVERTIR UN NMERO ARBIGO COMPRENDIDO ENTRE 1 Y 3999 A NMERO ROMANO Option Explicit Private Sub CMDSALIR_Click()

Dim RESP As Integer RES = MsgBox("EST SEGURO DE SALIR DEL PROGRAMA?", vbYesNo + vbQuestion, "CUIDADO") If RESP = 6 Then End Else TXTNUMERO.Text = "" LBLRESULTADO.Caption = "" TXTNUMERO.SetFocus End If End Sub Private Sub TXTNUMERO_Change() Dim LONGITUD, CONT, POSICION As Integer, ARABIGO, ROMANO As String ROMANO = "" ARABIGO = TXTNUMERO.Text LONGITUD = Len(ARABIGO) POSICION = LONGITUD For CONT = 1 To LONGITUD NUMERO = Mid(ARABIGO, POSICION, 1) Select Case NUMERO Case "0" If LONGITUD = 1 MsgBox ("EL CERO NO ES VLIDO") TXTNUMERO.Text = "" ROMANO = "" Else ROMANO = ROMANO & "" End If Case "1" If POSICION = LONGITUD Then ROMANO = "I" & ROMANO ElseIf POSICION = LONGITUD - 1 Then ROMANO = "X" & ROMANO ElseIf POSICION = LONGITUD - 2 Then ROMANO = "C" & ROMANO ElseIf POSICION = LONGITUD - 3 Then ROMANO = "M" & ROMANO Else

MsgBox ("EL NMERO DEBE ESTAR ENTRE 1 Y 3999) TXTNUMERO.Text = "" ROMANO = "" Exit For End If Case "2" If POSICION = LONGITUD Then ROMANO = "II" & ROMANO ElseIf POSICION = LONGITUD - 1 Then ROMANO = "XX" & ROMANO ElseIf POSICION = LONGITUD - 2 Then ROMANO = "CC" & ROMANO ElseIf POSICION = LONGITUD - 3 Then ROMANO = "MM" & ROMANO Else MsgBox ("EL NMERO DEBE ESTAR ENTRE 1 Y 3999") TXTNUMERO.Text = "" ROMANO = "" Exit For End If Case "3" If POSICION = LONGITUD Then ROMANO = "III" & ROMANO ElseIf POSICION = LONGITUD - 1 Then ROMANO = "XXX" & ROMANO ElseIf POSICION = LONGITUD - 2 Then ROMANO = "CCC" & ROMANO ElseIf POSICION = LONGITUD - 3 Then ROMANO = "MMM" & ROMANO Else MsgBox ("EL NMERO DEBE ESTAR ENTRE 1 Y 3999") TXTNUMERO.Text = "" ROMANO = "" Exit For End If Case 4 If POSICION = LONGITUD Then ROMANO = "IV" & ROMANO ElseIf POSICION = LONGITUD - 1 Then ROMANO = "XL" & ROMANO ElseIf POSICION = LONGITUD - 2 Then ROMANO = "CD" & ROMANO Else MsgBox ("EL NMERO DEBE ESTAR ENTRE 1 Y 3999")

TXTNUMERO.Text = "" ROMANO = "" Exit For End If Case "5" If POSICION = LONGITUD Then ROMANO = "V" & ROMANO ElseIf POSICION = LONGITUD - 1 Then ROMANO = "L" & ROMANO ElseIf POSICION = LONGITUD - 2 Then ROMANO = "D" & ROMANO Else MsgBox ("EL NMERO DEBE ESTAR ENTRE 1 Y 3999") TXTNUMERO.Text = "" ROMANO = "" Exit For Case "6" If POSICION = LONGITUD Then ROMANO = "VI" & ROMANO ElseIf POSICION = LONGITUD - 1 Then ROMANO = "LX" & ROMANO ElseIf POSICION = LONGITUD - 2 Then ROMANO = "DC" & ROMANO Else MsgBox ("EL NMERO DEBE ESTAR ENTRE 1 Y 3999") TXTNUMERO.Text = "" ROMANO = "" Exit For End If Case "7" If POSICION = LONGITUD Then ROMANO = "VII" & ROMANO ElseIf POSICION = LONGITUD - 1 Then ROMANO = "LXX" & ROMANO ElseIf POSICION = LONGITUD - 2 Then ROMANO = "DCC" & ROMANO Else MsgBox ("EL NMERO DEBE ESTAR ENTRE 1 Y 3999") TXTNUMERO.Text = "" ROMANO = "" Exit For End If Case "8" If POSICION LONGITUD Then

ROMANO = "VIII" & ROMANO ElseIf POSICION = LONGITUD - 1 Then ROMANO = "LXXX" & ROMANO ElseIf POSICION = LONGITUD - 2 Then ROMANO = "DCCC" & ROMANO Else MsgBox ("EL NMERO DEBE ESTAR ENTRE 1 Y 3999") TXTNUMERO.Text = "" ROMANO = "" Exit For End If Case "9" If POSICION = LONGITUD Then ROMANO = "IX" & ROMANO ElseIf POSICION = LONGITUD - 1 Then ROMANO = "XC" & ROMANO Else POSICION = LONGITUD - 2 Then ROMANO = "CM" & ROMANO Else MsgBox ("EL NMERO DEBE ESTAR ENTRE 1 Y 3999") TXTNUMERO.Text = "" ROMANO = "" Exit For End If Case Else MsgBox ("DEBE INTRODUCIR UN NMERO VLIDO") TXTNUMERO.Text = "" TXTNUMERO.SetFocus Exit For End Select POSICION = POSICION - 1 Next If (ROMANO <> "") Then LBLRESULTADO.Caption = "El " & ARABIGO & " en romano es " & ROMANO End If If TXTNUMERO.Text = "" Then LBLRESULTADO.Caption = "" End If End Sub

Vous aimerez peut-être aussi