elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse)
| | |-+  Numeros romanos
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Numeros romanos  (Leído 37,982 veces)
alt_hack_f4

Desconectado Desconectado

Mensajes: 32


"No me considero inteligente, solo soy curioso"


Ver Perfil
Numeros romanos
« en: 9 Enero 2007, 16:25 »

Buenas muchachos, quisiera saber quien me puede ayudar a realizar un lenguaje en C que convierta un numero decimal en un numero romano, de la manera mas basica con <stdio.h> y <math>... necesito el pseudocodigo pero por lo menos me darian la idea y yo lo acabo.


En línea


Ragnarok
Colaborador
***
Desconectado Desconectado

Mensajes: 4.565


Shrödingerificado


Ver Perfil
Re: Numeros romanos
« Respuesta #1 en: 9 Enero 2007, 18:13 »

¿Cómo son los números romanos? ¿Cómo se pasa de números decimales a romanos? (Quiero decir la forma en que lo haría una persona).


En línea

No olvidéis leer las normas generales, además de las específicas de cada tablón.sgae, ladrones
SirLanceCC


Desconectado Desconectado

Mensajes: 1.091


Ver Perfil WWW
Re: Numeros romanos
« Respuesta #2 en: 9 Enero 2007, 18:57 »

Numeros romanos
http://roble.cnice.mecd.es/~msanto1/ortografia/numrom.htm
En línea

porpos

Desconectado Desconectado

Mensajes: 89



Ver Perfil
Re: Numeros romanos
« Respuesta #3 en: 9 Enero 2007, 23:36 »

la cuestion seria primero intentar dividir el numero total por el numero romano mas grande...

si te da un valor mayor que 1 es que el numero a de incluir ese

aora le restas a el numero grande el valor por el que lo as dividido antes y lo vuelves a dividir por el

si da valor<1 otra vz lo mismo
valor>1 realiza las mismas operaciones para los siguiente

ejemplo 2.563

2563/1000 > 1    M
1563/1000 >1     M
563/1000>1        NULL
563/500>1          D
63/500>1            NULL
63/100>1            NULL
63/50>1            L
13/50 >1            NULL
13/10>1              X
...
3/1>1                I ..... I I

el numero daria esto MMDLXIII

nu se si taria bien porque me suena que si ay un numero menor que otro delante de el se resta y no puede haber mas de 3 numeros seguidos pero eso se aria con algun if() que si encuentra algun caso de tres simbolos = lo haga cambiar jaja ale ale a trabajar :) espero haberte serbido de ayuda postea el codigo cuano lo acabes haber que tal

I   V   X   L   C   D   M
 1   5   10   50   100     500      1.000
En línea

Toda la informacion aportada es de caracter informativo y no me hago responsable de su uso. :)
Ragnarok
Colaborador
***
Desconectado Desconectado

Mensajes: 4.565


Shrödingerificado


Ver Perfil
Re: Numeros romanos
« Respuesta #4 en: 9 Enero 2007, 23:47 »

-| Sir_Lance |- lo que quiero es que me lo diga alt_hack_f4, además no quiero las reglas (esto es C/C++ no programación con restricciones), sino que me diga cómo haría para pasar un número de decimal a romano, no un programa que lo haga sino cómo lo haría él si tuviera que pasar muchos números y no pudiera estar haciéndolo por la cuenta de la vieja.

si te da un valor mayor que 1 es que el numero a de incluir ese

aora le restas a el numero grande el valor por el que lo as dividido antes y lo vuelves a dividir por el

si da valor<1 otra vz lo mismo
valor>1 realiza las mismas operaciones para los siguiente

[...]

nu se si taria bien porque me suena que si ay un numero menor que otro delante de el se resta y no puede haber mas de 3 numeros seguidos pero eso se aria con algun if() que si encuentra algun caso de tres simbolos = lo haga cambiar jaja ale ale a trabajar :) espero haberte serbido de ayuda postea el codigo cuano lo acabes haber que tal

Te contradices, pones que si el valor es mayor que 1 haces una cosa y después si es menor que 1 otra vez lo mismo.

A parte tienes razón, eso sólo sirve para pasar algunos números, los facilitos.
En línea

No olvidéis leer las normas generales, además de las específicas de cada tablón.sgae, ladrones
porpos

Desconectado Desconectado

Mensajes: 89



Ver Perfil
Re: Numeros romanos
« Respuesta #5 en: 9 Enero 2007, 23:54 »

jaja vale error :) lo e escrito corriendo xo weno

jajja yo creo que los romanos solo van por cuenta la vieja
una persona que piensa en decimal siempre lo tiene que hacer asi para pasarlos

otra cosilla si no pones normas como la de no mas de 3 simbolos = seguidos el programa estaria mal.... porque haria romanos que no siguen las reglas de los numeros romanos no?

me estoi mareando con tanto romano jaja

el post que e puesto era respondiendo a alt_hack_f4
y le proponia un esquema ha seguir... jaja xo sin el error :)
creo que se me entendia no?

a ti te han contestado con un link donde pone como van los romanos

En línea

Toda la informacion aportada es de caracter informativo y no me hago responsable de su uso. :)
alt_hack_f4

Desconectado Desconectado

Mensajes: 32


"No me considero inteligente, solo soy curioso"


Ver Perfil
Re: Numeros romanos
« Respuesta #6 en: 10 Enero 2007, 01:02 »

-| Sir_Lance |- lo que quiero es que me lo diga alt_hack_f4, además no quiero las reglas (esto es C/C++ no programación con restricciones), sino que me diga cómo haría para pasar un número de decimal a romano, no un programa que lo haga sino cómo lo haría él si tuviera que pasar muchos números y no pudiera estar haciéndolo por la cuenta de la vieja.

Bueno yo lo haria separando la cantidad en unidades, decenas, centenas, unidades de mil y asi, pienso q es la forma..
En línea


carlospes

Desconectado Desconectado

Mensajes: 11



Ver Perfil WWW
Re: Numeros romanos
« Respuesta #7 en: 10 Enero 2007, 13:57 »

alt_hack_14, rebuscando he encontrado este código que te permite pasar números arábigos a romanos (entre 1 y 3999, ya que, para el 4000 hay que poner un guión encima del IV), espero que te sea de ayuda.

Código:
...

Nota: "Tienes razón Ragnarok (véase el siguiente mensaje), es mejor que lo piense él. Así que, he quitado el código."

Saludos.
« Última modificación: 11 Enero 2007, 12:16 por carlospes » En línea

Ragnarok
Colaborador
***
Desconectado Desconectado

Mensajes: 4.565


Shrödingerificado


Ver Perfil
Re: Numeros romanos
« Respuesta #8 en: 10 Enero 2007, 21:39 »

porpos me parece que la cuenta de la vieja no es un método factible para resolver este problema, es matar moscas a cañonazos, pero cañonazos de bombas nucleares.

carlospes me parece que le haces un flaco favor a alt_hack_f4 dándole la solución directamente. A parte está entre las normas de los subforos de programación el postear el código entre las etiquetas de código si no has leido las normas del foro o las de los subforos de programación te ruego que lo hagas.

alt_hack_f4 tu idea era buena, mi consejo es que intentes desarrollarla y además utilices librerías estándar ANSI de C. Ahora mismo no sé si es que estoy cansado después del día que he tenido o si el código de carlospes realmente se acerca demasiado a la programación ofuscada, pero separando como decías creo que puede quedar bastante mejor. Una pista:

Código:
I II III IV V VI VII VIII IX
X XX XXX XL L LX LXX LXXX XC

Mira que se usan poco las etiquetas de código con lo bonito que queda el texto con ancho fijo :P
En línea

No olvidéis leer las normas generales, además de las específicas de cada tablón.sgae, ladrones
porpos

Desconectado Desconectado

Mensajes: 89



Ver Perfil
Re: Numeros romanos
« Respuesta #9 en: 10 Enero 2007, 21:51 »

jajaj :) a cañonazos de los buenos jajajjaj que trabaje el pc que pa eso esta jajajajja

yo creo que con mis cañonazos se podria hacer... solo faltarian una serie de normas :)

admas el algoritmo seria rapido no?

weno nu se jaja en fin seguire con el "HOLA MUNDO" "Te voy a destruir" jajja enga si conseguis el codigo final publicarlo para ver como seria que ahora tengo curiosidad.

hombre yo creo que si que le ha hecho un favor
el pedia un codigo o un boceto

ademas ese codigo como bien a dixo solo admite hasta 4000 jeje

unos tanto y otros tan poco :)

por cierto una duda para que quieres pasar a romanos???
con lo bonito que son los decimales :) o el binario jajjaa
ale a trabajar ;D
En línea

Toda la informacion aportada es de caracter informativo y no me hago responsable de su uso. :)
Ragnarok
Colaborador
***
Desconectado Desconectado

Mensajes: 4.565


Shrödingerificado


Ver Perfil
Re: Numeros romanos
« Respuesta #10 en: 10 Enero 2007, 22:33 »

jajaj :) a cañonazos de los buenos jajajjaj que trabaje el pc que pa eso esta jajajajja

yo creo que con mis cañonazos se podria hacer... solo faltarian una serie de normas :)

admas el algoritmo seria rapido no?

Claro, la fuerza bruta es el algoritmo que "más hace trabajar al PC" y el "más rápido", son dos cosas que van siempre de la mano.

hombre yo creo que si que le ha hecho un favor
el pedia un codigo o un boceto

Si, y además ha aprendido mucho para enfrentarse al resto de problemas referentes a la programación que le surgirán en el futuro.
En línea

No olvidéis leer las normas generales, además de las específicas de cada tablón.sgae, ladrones
porpos

Desconectado Desconectado

Mensajes: 89



Ver Perfil
Re: Numeros romanos
« Respuesta #11 en: 11 Enero 2007, 00:09 »

mmm estas sugiriendo algo?? sk no lo capto :P:P:P:P

jaja valeeeeeeeee trankilo eee jajajja parece k te aya dixo algo malo :P:P
En línea

Toda la informacion aportada es de caracter informativo y no me hago responsable de su uso. :)
carlospes

Desconectado Desconectado

Mensajes: 11



Ver Perfil WWW
Re: Numeros romanos
« Respuesta #12 en: 11 Enero 2007, 12:01 »

He quitado el código, pero sí quiero darle alguna pista a alt_hack_14, y es que la dificultad de este algoritmo estriba, sobre todo, en el hecho de que, el Sistema de Numeración Romano no es posicional, a diferencia del Sistema de Numeración Decimal, que sí lo es.

Además, hay que tener en cuenta, entre otras cosas, lo que bien dice porpos, y es que, cuando un símbolo precede a otro de mayor valor, el valor del primero resta en vez de sumar, pero no siempre es así, ya que, por ejemplo, es incorrecto escribir IM para representar al número 999, ya que, se debe escribir CMXCIX.

Por lo que, una estrategia para resolver este problema, es tratar al número decimal cifra a cifra, estableciendo las unidades, decenas, centenas,... en primer lugar, e ir convirtiendo cada una de ellas a su correspondiente combinación de cifras romanas.

Por ejemplo, 999 se compone de:

· Centenas --> 900 --> CM
· Decenas ---> 90 ---> XC
· Unidades --> 9 -----> IX

De todas formas, alt_hack_14, si te rindes y quieres la solución que yo tengo, tan solo tienes que pedírmela.

Saludos.
« Última modificación: 11 Enero 2007, 12:20 por carlospes » En línea

alt_hack_f4

Desconectado Desconectado

Mensajes: 32


"No me considero inteligente, solo soy curioso"


Ver Perfil
Re: Numeros romanos
« Respuesta #13 en: 11 Enero 2007, 16:35 »

No vale hombres, no me rindo, solo q estoy pensando como hacerlo solo usando #include<stdio.h> y #include<math>, me lo pidio un profesor en forma de reto mas que cualquier otra cosa,xq tenia mucha curiosidad y el me dijo q lo hiciera o intentara, gracias por tu ayuda carlospes
Por ejemplo, 999 se compone de:

· Centenas --> 900 --> CM
· Decenas ---> 90 ---> XC
· Unidades --> 9 -----> IX


Esta es la forma de hacerlo la forma q lo habia pensado, vi tu codigo y usas mas de lo q me piden, es hacerlo de la forma mas sencilla, osea como q si estuviese aprendiendo a programar C y despues del "Hola mundo" intentara hacer un codigo como este, no se si me explico
En línea


Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Calculadora que suma numeros romanos
Programación C/C++
miiku 1 2,159 Último mensaje 13 Agosto 2012, 03:50
por farresito
Numeros Romanos « 1 2 »
Programación C/C++
05K4R1N 20 1,871 Último mensaje 11 Junio 2013, 02:33
por edr89
verificar numeros romanos « 1 2 »
Programación C/C++
m@o_614 15 1,154 Último mensaje 22 Agosto 2013, 08:46
por rir3760
Powered by SMF 1.1.19 | SMF © 2006-2008, Simple Machines