Algoritmo Python, Romanos a decimales
Enviado por EmiCm5 • 27 de Noviembre de 2015 • Trabajo • 288 Palabras (2 Páginas) • 243 Visitas
#Numeros romanos a arabicos en una funcion
def rom_Arab():
#Asignacion de variables
M = 1000
D = 500
C = 100
L = 50
X = 10
V = 5
I = 1
actual = 0
anterior = 0
total = 0
#ENTRADA
roman = input("Ingrese un numero romano en mayusculas: ")
#CICLO: incrementarse el numero de caracteres que tiene lo que introdjo el usuario
for i in range(len(roman)):
#Asigna la letra en la posicion i
letra = roman[i]
#Compara cada caso de letra
# Si le antecede algo mayor simplemente se suma a ese
# Si le antecede alguien menor, ese que le antecede se le resta, sumandose al
# resultado pasado y restandole denuevo el anterior ya que se habia
# sumado antes.
if (letra == "M"):
actual = M
if (anterior > actual):
total = total + actual
elif (anterior < actual):
total = total + (actual - anterior) - anterior
if (letra == "D"):
actual = D
if (anterior > actual):
total = total + actual
elif (anterior < actual):
total = total + (actual - anterior) - anterior
if (letra == "C"):
actual = C
if (anterior > actual):
total = total + actual
elif (anterior < actual):
total = total + (actual - anterior) - anterior
if (letra == "L"):
actual = L
if (anterior > actual):
total = total + actual
elif (anterior < actual):
total = total + (actual - anterior) - anterior
if (letra == "X"):
actual = X
if (anterior > actual):
total = total + actual
elif (anterior < actual):
total = total + (actual - anterior) - anterior
if (letra == "V"):
actual = V
if (anterior > actual):
total = total + actual
elif (anterior < actual):
total = total + (actual - anterior) - anterior
if (letra == "I"):
actual = I
if (anterior > actual):
total = total + actual
elif (anterior < actual):
total = total + (actual - anterior) - anterior
#Ahora el anterior toma el valor que tiene el actual para comparar el siguiente par
anterior= actual
#Muestra el resultado
print(roman , " es a ", str(total), " en sistema decimal.")
rom_Arab()
...