? NUM2ROMANO(1980) FUNCTION Num2Romano(tnNum) DIMENSION laNum(13),laRom(13) LOCAL lnI, lcRom laNum(1) = 1 laNum(2) = 4 laNum(3) = 5 laNum(4) = 9 laNum(5) = 10 laNum(6) = 40 laNum(7) = 50 laNum(8) = 90 laNum(9) = 100 laNum(10) = 400 laNum(11) = 500 laNum(12) = 900 laNum(13) = 1000 laRom(1) = "I" laRom(2) = "IV" laRom(3) = "V" laRom(4) = "IX" laRom(5) = "X" laRom(6) = "XL" laRom(7) = "L" laRom(8) = "XC" laRom(9) = "C" laRom(10) = "CD" laRom(11) = "D" laRom(12) = "CM" laRom(13) = "M" lcRom = "" FOR lnI = 13 TO 1 STEP -1 DO WHILE tnNum >= laNum(lnI) tnNum = tnNum - laNum(lnI) lcRom = lcRom + laRom(lnI) ENDDO ENDFOR RETURN lcRom ENDFUNC
5 de febrero de 2022
Números Arábigos a Romanos
Suscribirse a:
Comentarios de la entrada
(
Atom
)
Alternativa
ResponderBorrar* Função para converter um número em um número romano
FUNCTION converter_numero_romano(lnumero)
LOCAL croman_number, lvalid_number, lremainder
croman_number = ""
lvalid_number = .T.
lremainder = lnumero
DO WHILE lvalid_number AND lremainder > 0
DO CASE
CASE lremainder >= 1000
croman_number = croman_number + "M"
lremainder = lremainder - 1000
CASE lremainder >= 900
croman_number = croman_number + "CM"
lremainder = lremainder - 900
CASE lremainder >= 500
croman_number = croman_number + "D"
lremainder = lremainder - 500
CASE lremainder >= 400
croman_number = croman_number + "CD"
lremainder = lremainder - 400
CASE lremainder >= 100
croman_number = croman_number + "C"
lremainder = lremainder - 100
CASE lremainder >= 90
croman_number = croman_number + "XC"
lremainder = lremainder - 90
CASE lremainder >= 50
croman_number = croman_number + "L"
lremainder = lremainder - 50
CASE lremainder >= 40
croman_number = croman_number + "XL"
lremainder = lremainder - 40
CASE lremainder >= 10
croman_number = croman_number + "X"
lremainder = lremainder - 10
CASE lremainder >= 9
croman_number = croman_number + "IX"
lremainder = lremainder - 9
CASE lremainder >= 5
croman_number = croman_number + "V"
lremainder = lremainder - 5
CASE lremainder >= 4
croman_number = croman_number + "IV"
lremainder = lremainder - 4
OTHERWISE
croman_number = croman_number + "I"
lremainder = lremainder - 1
ENDCASE
ENDDO
RETURN croman_number
ENDFUNC