ElTicus.com

Programación, lenguajes y recursos para programadores

**
Diagrama
Diagrama de flujo, algoritmo y pseudocódigo para convertir un número a Romano
Ejemplo terminado
Publicado por jl Fecha: 2007-10-01 22:36:07 Idioma: Español Tipo de documento: Diagrama

Convertir números Arábigos a Romanos

También puedes ver el proceso inverso: [liga a="http://www.elticus.com/?contenido=98"]Romano a Arábigo

El proceso de conversión de Números Arábigos (1, 2, 3,…) a Números Romanos (I, II, III,…) consiste en lo siguiente:

Dado un número, se realiza una serie de comparaciones contra cada uno de los valores correspondientes a los símbolos romanos enlistados una tabla que los contenga ordenados de mayor a menor.

La clave es dicha tabla (que por facilidad puede ser también dos vectores paralelos) que nos muestre los valores romanos ordenados desde el más alto y hasta terminar en el más bajo (o sea el 1) así como su “Valor nominalâ€.



iRomanos[ ]Valores[ ]
1M1000
2CM900
3D500
4CD400
5C100
6XC90
7L50
8XL40
9X10
10IX9
11V5
12IV4
13I1

Definición de las tablas Romanos y Valores
(Tabla de equivalencias Romano-Arábigo)


Nótese que en la tabla se incluyeron los elementos que están formados por una resta (4, 9, 40, 90, 400 y 900) de esta manera se simplifica bastante el proceso porque a partir de aquí, ya solo concatenamos.



EJEMPLO: Si tenemos un número a convertir a Romano llamado “A†que tiene un valor de 1200. Recorremos la lista revisando cuales de los valores de los elementos de la tabla caben en nuestro número:
• El 1000 cabe, así que ponemos la letra “M†y le restamos 1000. Nos quedan 200
• El siguiente que cabe es el 100 así que ponemos la “C†y restamos 100. nos quedan 100.
• Cabe otro 100, así que ponemos otra “C†y como nos queda cero, se acabó.

Y el resultado es “MCC†= 1200.


Pseudocódigo

Este mismo proceso en pseudo-código, nos quedaría de la siguiente manera:


1.Inicio
2.Dadas las tablas Romanos[] y Valores[]
3.Pedir: A
4.Hacer Resultado = ""
5.  Ciclo en i para cada elemento de Romanos
6.    Mientras Valores<i> <= A hacer
7.      Resultado = Resultado + Romanos<i>
8.      A = A - Valores<i>
9.   Fin-Mientras
10.  Fin-Ciclo
11.Mostrar Resultado
12.Fin

NOTA: El algoritmo se puede hacer más eficiente si se valida que cuando A llegue a cero, se interrumpa el ciclo. De ese modo sería más óptimo, aunque funcionaría igual.

Diagrama de Flujo

[imagen en="archivos/diagramas/diagramaromano.gif"]

Para convertir numeros romanos muy grandes

Si quieres convertir numeros con valores por arriba de los que se explican en la tablita arriba mencionada, recuerda que la regla es que una rayita arriba del número lo multiplica por mil. Si pones dos rallitas, entonces es 1,000 x 1,000 osea 1 millón, y así sucesivamente.

Por ejemplo:

_
X = 10000 (Diez con una rayita igual a diez mil)

=
X = 10000000 (Diez con dos rayitas igual a diez millones)





Hay 2 comentarios sobre este tema por parte de los lectores


Haz un comentario sobre este tema
Nombre email (no se muestra)
comentario:
Escribe las 2 letras que ves aquí: Imagen anti-spam =

Comentarios de parte de los lectores: