Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Novato:algoritmo en numeros romanos?

663 views
Skip to first unread message

David -Y-

unread,
Jun 19, 2000, 3:00:00 AM6/19/00
to
Hola, amigos soy novato en esto de la programacion, estaba siguiendo
un libro con ejercicios de c, y mas o menos todo bien, de vez en cuando
echaba un vistazo a las soluciones, para seguir con parte del problema

(tengo q decir q no soy informatico ni estudiante, apenas llevo tres semanas
en la programacion)

pero me vino un ejercicio q se trataba de entrar un numero entero y
sacar su numero en romano, pero este no viene la solución

me he quedado en blanco al 100%, no se ni por donde cogerlo

(puede ser demasiado avanzado para mi?, lo veo muy lejano)

alguien puede poner el principio del algoritmo en pseudocodigo, o darme una
pista, por que es q no se ni podr donde empezar, "K.O TOTAL" :-(
me he quedado con las ganas de ver la solucion...

gracias de antemano

Carles Batet

unread,
Jun 20, 2000, 3:00:00 AM6/20/00
to
Hola:

Para empezar, con tres tablas, una con los números 1, 2, 3, 4, 5, 6, 7, 8,
9. Otra con 10, 20, 30 ... Y otra con 100, 200, 300, 400 ... Sólo te
quedará
el problema de los miles.

Saludos


Carles Batet

Juan Carrasco

unread,
Jun 20, 2000, 3:00:00 AM6/20/00
to
Yo me plantearía como están organizados los números romanos. No lo
recuerdo muy bien pero que cubrían 1000 (M), 500 (D), 100 (C), 50 (L), 10
(X), 5 (V) y 1(I). Que se podían agrupar hasta 3 (3: III, 300: CCC) y que el
paso para el siguiente nivel era restando del superior (40 : XL, 400: CD,
900: CM...). Una buena forma para convertirlo podría ser:
1.- Dividir el número por 1000, esto te da las M que aparecen. También se
saca el resto haciendo módulo del número original con 1000.
2.- Repetir la operación con 500, esto te dirá si la D aparece o no.
3.- Ahora con 100, en este caso si al dividir sale un 4, escribes CD en
lugar de CCCC
...
y así hasta el 1.

En cada paso consideras el número que te resulta de calcular el módulo en
el paso anterior.

Un saludo.


David -Y- <ti...@spam.com> escribió en el mensaje de noticias
q5x35.14$kM2....@m2newsread.uni2.es...

Ferran Juan

unread,
Jun 20, 2000, 3:00:00 AM6/20/00
to
Aplica el refran "divide y vencerás"

Supongamos una cifra de 4 dígitos (como mucho) p.e. 1453
primero: separa en cuatro variables diferentes los valores de cada dígito
unidades: 3
decenas : 5
centenas : 4
millares : 1

y con una estructura de SEGUN SEA EL CASO asocias los valores a los
símbolos correspondientes

unidades : 3 ----- > UnidadeRomanas : "III"
decenas : 5 ------> DecenasRomanas:"L"
Centenas : 4 -----> CentenasRomanas : "CCCC" ó "CD"
Millares : 1 ------> MillaresRomanas :"M"

Una vez hecho, concatena los textos en su orden y tendrás el numero romano
construido 1453 -----> MCDLIII

Este método te servirá también para transformar un número en su literal
es decir 1453 ----> "Mil cuatrocientos cincuenta y tres"

ale! a trabajar....

Ferran Juan
UPC

JoXeTe

unread,
Jun 20, 2000, 3:00:00 AM6/20/00
to
Si señor ... tal como lo habia pensado yo ... jeje


"Juan Carrasco" <jca...@glup.irobot.uv.es> escribió en el mensaje
news:8inh6e$kra$1...@peque.uv.es...


> Yo me plantearía como están organizados los números romanos. No lo
> recuerdo muy bien pero que cubrían 1000 (M), 500 (D), 100 (C), 50 (L), 10
> (X), 5 (V) y 1(I). Que se podían agrupar hasta 3 (3: III, 300: CCC) y que
el
> paso para el siguiente nivel era restando del superior (40 : XL, 400: CD,
> 900: CM...). Una buena forma para convertirlo podría ser:
> 1.- Dividir el número por 1000, esto te da las M que aparecen. También
se
> saca el resto haciendo módulo del número original con 1000.
> 2.- Repetir la operación con 500, esto te dirá si la D aparece o no.
> 3.- Ahora con 100, en este caso si al dividir sale un 4, escribes CD en
> lugar de CCCC
> ...
> y así hasta el 1.
>
> En cada paso consideras el número que te resulta de calcular el módulo
en
> el paso anterior.
>
> Un saludo.
>
>

JoXeTe

unread,
Jun 20, 2000, 3:00:00 AM6/20/00
to
Y si te pongo en 249 la cagaste ...

"Ferran Juan" <ferra...@QUITAESTOupc.es> escribió en el mensaje
news:8io2sq$bnl$1...@defalla.upc.es...


> Aplica el refran "divide y vencerás"
>
> Supongamos una cifra de 4 dígitos (como mucho) p.e. 1453
> primero: separa en cuatro variables diferentes los valores de cada dígito
> unidades: 3
> decenas : 5
> centenas : 4
> millares : 1
>
> y con una estructura de SEGUN SEA EL CASO asocias los valores a los
> símbolos correspondientes
>
> unidades : 3 ----- > UnidadeRomanas : "III"
> decenas : 5 ------> DecenasRomanas:"L"
> Centenas : 4 -----> CentenasRomanas : "CCCC" ó "CD"
> Millares : 1 ------> MillaresRomanas :"M"
>
> Una vez hecho, concatena los textos en su orden y tendrás el numero romano
> construido 1453 -----> MCDLIII
>
> Este método te servirá también para transformar un número en su literal
> es decir 1453 ----> "Mil cuatrocientos cincuenta y tres"
>
> ale! a trabajar....
>
> Ferran Juan
> UPC
>
>

Ferran Juan

unread,
Jun 21, 2000, 3:00:00 AM6/21/00
to

JoXeTe <jox...@myrealbox.com> escribió en el mensaje de noticias
ceO35.436$Hc7....@telenews.teleline.es...

> Y si te pongo en 249 la cagaste ...
>
nunca.
si separas los dígitos ( unidades, decenas, centenas, miles )
y define 3 arrays: unidades y decenas y centenas
asocia las posiciones del array a su símbolo correspondiente

unidades[0]=""
unidades[1]="I"
unidades[2]="II"
unidades[3]="III"
unidades[4]="IV"
unidades[5]="V"
unidades[6]="VI"
unidades[7]="VII"
unidades[8]="VIII"
unidades[9]="IX"

decenas[0]=""
decenas[1]="X"
decenas[2]="XX"
decenas[3]="XXX"
decenas[4]="XL"
decenas[5]="L"
decenas[6]="LX"
decenas[7]="LXX"
decenas[8]="LXXX"
decenas[9]="XC"

centenas[0]=""
centenas[1]="C"
centenas[2]="CC"
centenas[3]="CCC"
centenas[4]="CD"
centenas[5]="D"
centenas[6]="DC"
centenas[7]="DCC"
centenas[8]="DCCC"
centenas[9]="CM"

Lo mismo para los miles....

miles[0]=""
miles[1]="M"
.........

coño, más fácil no puede ser....


numero romano = CONCATENAR(miles[miles];centenas[centenas]
;decenas[decenas];unidades[unidades])

el 249 te sale inmediatamente
miles=0
centenas=2
decenas=4
unidades=9
numero romano = CCXLIX ( no CCIL, ojo...)
y le añades los miles que sean necesarios...


David -Y-

unread,
Jun 22, 2000, 3:00:00 AM6/22/00
to

David -Y- escribió en mensaje ...

>Hola, amigos soy novato en esto de la programacion, estaba siguiendo
>un libro con ejercicios de c, y mas o menos todo bien, de vez en cuando
>echaba un vistazo a las soluciones, para seguir con parte del problema


Gracias a todos por las respuestas, no sabia ni por donde cojerlo
se estudiarán detenidamente ...


a ver si me "espabilo" cogiendo recortes de por aquí 0:-)

Raul Garcia Piñeiro

unread,
Jul 4, 2000, 3:00:00 AM7/4/00
to
49 no se escribe asi IL?

0 new messages