English Deutsch Français Italiano Español Português 繁體中文 Bahasa Indonesia Tiếng Việt ภาษาไทย
Todas las categorías

Quién sepa programar en Visual Basic 6 y me quiera ayudar diciendome como escribo el algoritmo de un programa que convierta numeros arabigos a numeros romanos, o en su defecto me proporcionen el programa. Gracias por compartir sus conocimientos, se los agradece una principiante en la programación de este lenguaje.

2006-09-11 07:52:49 · 3 respuestas · pregunta de Anonymous en Ordenadores e Internet Programación y Diseño

3 respuestas

Hola!!

Esta en inglés... solamente escribe en español los mensajes y listo!

'**************************************
' Nombre: Convertir Romanos
' Descripción:Tomar un numero romano
' y convertirlo en decimal.
'
'
' Entrada:Un número romano
'
' Salidas:Un número decimal
'**************************************

Option Explicit
'Valid roman numerals and their values
Private Const M = 1000
Private Const D = 500
Private Const C = 100
Private Const L = 50
Private Const X = 10
Private Const V = 5
Private Const I = 1


Private Function IsRoman(ByVal numr As String) As Boolean
'This function is given a character and
' returns true if it is
'a valid roman numeral, false otherwise.
'
'Convert digit to UpperCase
numr = UCase(numr)
'Test the digit


Select Case numr
Case "M"
IsRoman = True
Case "D"
IsRoman = True
Case "C"
IsRoman = True
Case "L"
IsRoman = True
Case "X"
IsRoman = True
Case "V"
IsRoman = True
Case "I"
IsRoman = True
Case Else
IsRoman = False
End Select
End Function


Private Function ConvertRoman(ByVal numr As String) As String
'This function is given a roman numeral
' and returns its value.
'NULL is returned if the character is no
' t valid
Dim digit As Integer
'Convert digit to UpperCase
numr = UCase(numr)
'Convert the digit


Select Case numr
Case "M"
digit = M
Case "D"
digit = D
Case "C"
digit = C
Case "L"
digit = L
Case "X"
digit = X
Case "V"
digit = V
Case "I"
digit = I
Case Else
digit = vbNull
End Select
'And return its value
ConvertRoman = digit
End Function


Public Function GetRoman(ByVal numr As String) As String
'This function reads the next number in
' roman numerals from the input
'and returns it as an integer
Dim rdigit As String
Dim num As Long
Dim DigValue As Long
Dim LastDigValue As String
Dim j As Long
j = 1
num = 0
LastDigValue = M
'Get the first digit
rdigit = Mid(numr, j, 1)
'While it is a roman digit


Do While IsRoman(rdigit)
'Convert roman digit to its value
DigValue = ConvertRoman(rdigit)
'If previous digit was a prefix digit


If DigValue > LastDigValue Then
'Adjust total
num = num - 2 * LastDigValue + DigValue
Else
'Otherwise accumulate the total
num = num + DigValue
'Save this digit as previous
LastDigValue = DigValue
End If
'Get next digit
j = j + 1
rdigit = Mid(numr, j, 1)
'End of the string detected, exit


If Len(rdigit) = 0 Then
Exit Do
End If
Loop
'Return the number
GetRoman = num
End Function


Espero que te sirva... yo no lo puedo probar porque ya no tengo el VB instalado en mi PC, pero se supone que funciona en VB 4, 5 y 6... asi que no creo que tengas mayor problema. Y si no pues mínimo te sirve para que te des una idea de como hacerlo ok?

Saludos!

2006-09-11 09:24:03 · answer #1 · answered by Patricia Balboa 3 · 0 0

OK, no es por aguafiestas....

Pero me parece que el objetivo de tus clases de programación es que TU PIENSES. Y créelo.... trata de hacer tu misma tus tareas... luego te vas a agradecer tu esfuerzo por hacer tu mente un poquito más agil para resolver problemas, amiga...

2006-09-14 12:34:44 · answer #2 · answered by Ces 6 · 0 0

No tengo un programa para lo que tu dices pero te puede servir uno que convierte cantidades a letras y que aplico en los recibos de pago, estoy 100% seguro que ese te puede servir para lo que quieres pero escribeme y lo vemos, oki ?

2006-09-11 15:34:22 · answer #3 · answered by Rulax 3 · 0 0

fedest.com, questions and answers