Convertir Numeros a Numeros Romanos

137 views
Skip to first unread message

integral

unread,
Jan 4, 2023, 3:18:20 PM1/4/23
to Comunidad de Visual Foxpro en Español
Amigos Buenas Tardes

Deseo tener una rutina que convierta un Numero a Romano. Y ademas con esta rutina pueda obtener el año actual en Numeros Romanos

Año  Actual  : 2023
En Romano  : MMXXIII

Aqui  la rutina...

DIMENSION NUMEROS(13),ROMANOS(13)
NUMEROS(1) = 1
NUMEROS(2) = 4
NUMEROS(3) = 5
NUMEROS(4) = 9
NUMEROS(5) = 10
NUMEROS(6) = 40
NUMEROS(7) = 50
NUMEROS(8) = 90
NUMEROS(9) = 100
NUMEROS(10) = 400
NUMEROS(11) = 500
NUMEROS(12) = 900
NUMEROS(13) = 1000

ROMANOS(1) = "I"
ROMANOS(2) = "IV"
ROMANOS(3) = "V"
ROMANOS(4) = "IX"
ROMANOS(5) = "X"
ROMANOS(6) = "XL"
ROMANOS(7) = "L"
ROMANOS(8) = "XC"
ROMANOS(9) = "C"
ROMANOS(10) = "CD"
ROMANOS(11) = "D"
ROMANOS(12) = "CM"
ROMANOS(13) = "M"

XROM = ""

FOR I = 13 TO 1 STEP -1
        DO WHILE XNUM >= NUMEROS(I)
                XNUM = XNUM - NUMEROS(I)
                XROM = XROM + ROMANOS(I)
        ENDDO
NEXT I

RETURN XROM

Agradezco vuestra ayuda.

Atte.,

Integral

Zarlu

unread,
Jan 4, 2023, 3:58:05 PM1/4/23
to Comunidad de Visual Foxpro en Español
Buenas tardes Integral!

No jala bien esa que muestras?
Uso la misma y sin problemas.

zarlu
Chetumal, Quintana Roo, México

integral

unread,
Jan 4, 2023, 4:51:23 PM1/4/23
to Comunidad de Visual Foxpro en Español
Amigo Zarlu

Podrias postear la rutina que usas y como lo llamas...

Gracias anticipadas.

Atte.,

Integral

Trento

unread,
Jan 4, 2023, 5:04:37 PM1/4/23
to Comunidad de Visual Foxpro en Español
Pues me adelanto al estimado Zarlu.

Crea un prg o udf llamado como quieras. Yo lo llamé "romannum" en su momento y es un prg que va tál cual:


LPARAMETERS xNum

Ahora, simplemente teclea desde la consola de comandos:

? romannum(2023)

Y verás que retorna

MMXXIII


Saludos.

HernanCano

unread,
Jan 4, 2023, 5:07:33 PM1/4/23
to Comunidad de Visual Foxpro en Español
1. Con el Block de Notas de Windows escribes lo q mostraste, y lo grabas con un nombre, por ejm PROGR1.PRG .

2. Desde la ventana de comandos de VFP ejecutas do PROGR1.PRG .

Trento

unread,
Jan 4, 2023, 8:28:36 PM1/4/23
to Comunidad de Visual Foxpro en Español
Una pregunta, Hernán:

¿Si no pasa el valor o parámetro?

Zarlu

unread,
Jan 5, 2023, 8:30:24 PM1/5/23
to Comunidad de Visual Foxpro en Español
Que tal Integral!

Lo tengo como función en un archivo llamado procesos.prg
Function romanos(XNUM)
*aquí el código que muestras
EndFunction

Y la invoco más o menos así:
Set Procedure to procesos.prg
?  romanos(1508)

Puedes usar un prg digamos romanosprg.prg
Parameters xNUM
* *aquí el código que muestras

Y la puedes invocar igual que a la función
?  romanosprg(1508)

Deberás asegurarte de que el archivo sea localizable Configurando SET PATH

Suerte
zarlu
Chetumal, Quintana Roo, México

integral

unread,
Jan 5, 2023, 9:09:14 PM1/5/23
to Comunidad de Visual Foxpro en Español
Que tal Amigos :

Gracias por sus comentarios y sugerencias...

Gracias por la disposición de su tiempo en brindarme su ayuda.

Resolví mi duda y logre implementar la utilización de la rutina de números romanos que encontré en mis archivos de hace mas de 20 años. 

En aquella oportunidad utilizaba funciones y procedimientos muy a menudo.

En mi ultimo trabajo me sugirió mi jefe de aquel entonces que utilice una codificación mas moderna y que además utilice comandos del SQL. 
Esto me ayudaría en la migración a futuro. Y veo que no se equivoco.

En esta oportunidad utilice un Método creado en el formulario en lugar de una Función. 

Hasta la proxima,

Atte.,

Integral
(Lima-Perú) 

Form_AÑO.jpg
Reply all
Reply to author
Forward
0 new messages