Algortitmo Para Convertir Números Arábigos a Números Romanos

7
Algortitmo para convertir números arábigos a números romanos Historia: Los romanos formaron un imperio que se extendía por la mayor parte de Europa y por el norte de África. Los pueblos sometidos aprendieron de ellos su modo de vida, sus costumbres, su lengua llamada latín, su escritura y también su sistema de numeración. Tras la desaparición del Imperio Romano, en los siglos posteriores algunas de las cosas aprendidas de los romanos permanecieron, aunque fueron cambiando. Así nosotros, actualmente hablamos Castellano que es Latín evolucionado y al escribir seguimos utilizando letras latinas. Pero otras cosas aunque permanecieron varios siglos, después desaparecieron, así pasó con el sistema de numeración romano. Se sustituyó por el sistema de numeración arábigo, que proviene de la India y lo extendieron los árabes, es el que empleamos ahora y es mucho más fácil de manejar. Actualmente vemos y utilizamos números romanos en muy pocas ocasiones: para nombrar los siglos, en los actos y escenas de una obra de teatro, en la designación de olimpiadas, congresos y certámenes, en la numeración de reyes, emperadores y papas, en inscripciones antiguas y en relojes antiguos. Algoritmo para convertir números arábigos a números romanos

description

algoritmos codigo fuente

Transcript of Algortitmo Para Convertir Números Arábigos a Números Romanos

Page 1: Algortitmo Para Convertir Números Arábigos a Números Romanos

Algortitmo para convertir números arábigos a números romanos

Historia:

   Los romanos formaron un imperio que se extendía por la mayor parte de Europa y por el norte de África. 

Los pueblos sometidos aprendieron de ellos su modo de vida, sus costumbres, su lengua llamada latín, su escritura y también su sistema de numeración.

  Tras la desaparición del Imperio Romano, en los siglos posteriores algunas de las cosas aprendidas de los romanos permanecieron, aunque fueron cambiando. Así nosotros, actualmente hablamos Castellano que es Latín evolucionado y al escribir seguimos utilizando letras latinas. Pero otras cosas aunque permanecieron varios siglos, después desaparecieron, así pasó con el sistema de numeración romano. Se sustituyó por el sistema de numeración arábigo, que proviene de la India y lo extendieron los árabes, es el que empleamos ahora y es mucho más fácil de manejar.

   Actualmente vemos y utilizamos números romanos en muy pocas ocasiones: para nombrar los siglos, en los actos y escenas de una obra de teatro, en la designación de olimpiadas, congresos y certámenes, en la numeración de reyes, emperadores y papas, en inscripciones antiguas y en relojes antiguos.

Algoritmo para convertir números arábigos a números romanos

Proceso RomanosDefinir r,i,n,numsRomanos,nT Como Entero;Definir romano Como Texto;nT<-0;romano<-"";Escribir "Número:";Leer n;

r<-n%1000;nT<-n/1000;si(nT>=1&& nT<=9)Entonces

romano<-romano+repetirCaracteres(nT,'M');

Page 2: Algortitmo Para Convertir Números Arábigos a Números Romanos

FinSin<-r;

r<-n%500;nT<-n/500;si(nT==1&& r<400)Entonces

romano<-romano+"D";Sino

si(nT>0&& r>=400)Entoncesromano<-romano+"CM";

FinSiFinSin<-r;

r<-n%100;nT<-n/100;si(nT>=1&& nT<=3)Entonces

romano<-romano+repetirCaracteres(nT,'C');

Sinosi(nT==4&& n>500)Entonces

romano<-romano+"CD";FinSi

FinSin<-r;

r<-n%50;nT<-n/50;si(nT==1&& r<=39 )Entonces

romano<-romano+"L";Sino

si(n>80)Entoncesromano<-romano+"XC";

FinSiFinSin<-r;

r<-n%10;nT<-n/10;si(nT>=1&& nT<=3)Entonces

romano<-romano+repetirCaracteres(nT,'X');

FinSin<-r;

r<-n%5;nT<-n/5;si(nT==1&& r<4)Entonces

Page 3: Algortitmo Para Convertir Números Arábigos a Números Romanos

romano<-romano+"V";finSisi(nT==1&& n==9)Entonces

romano<-romano+"IX";FinSi

si(r>=1&& r<=3)Entoncesromano<-

romano+repetirCaracteres(r,'I');FinSiSi(nT==0&& r==4)Entonces

romano<-romano+'IV';FinSin<-r;

Escribir "Numero romano: ",romano;

FinProceso

Convertir números Arábigos a RomanosTambién puedes ver el proceso inverso: 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”.

i Romanos[ ] Valores[ ]

1 M 1000

2 CM 900

3 D 500

4 CD 400

5 C 100

Page 4: Algortitmo Para Convertir Números Arábigos a Números Romanos

6 XC 90

7 L 50

8 XL 40

9 X 10

10 IX 9

11 V 5

12 IV 4

13 I 1

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

Page 5: Algortitmo Para Convertir Números Arábigos a Números Romanos

2.Dadas las tablas Romanos[] y Valores[]3.Pedir: A4.Hacer Resultado = ""5.  Ciclo en i para cada elemento de Romanos6.    Mientras Valores<i> <= A hacer7.      Resultado = Resultado + Romanos<i>8.      A = A - Valores<i>9.   Fin-Mientras10.  Fin-Ciclo11.Mostrar Resultado12.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

Page 6: Algortitmo Para Convertir Números Arábigos a Números Romanos

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)