Problema en C ¡¡¡¡¡AYUDAAAAAA!!!!!

A

Escribir un programa que lea una cadena de hasta diez caracteres que representa a un numero en numeración romana e imprima el formato del numero romano con su equivalente en numeración arábiga. Los caracteres romanos y sus equivalentes son;:
M=1000
D=500
C=100
L=50
X=10
V=5
I=1
EJ.LXXXVI=86; MCCLIV=1254

PD: 900=CM; 400=CD; 90=XC; 40=XL; 9=IX; 4=IV

ALUGUIEN SERIA CAPAZ DE DECIRME EL CODIGO PARA ESE PROGRAMA!!??? DIOSSSSSS, ESTOY DESESPERAOOOOOOOOOOOOOOOOOOOO

M

tio, aclarate un poco mejor plz :D

O

si kieres t hago los examenes tb......

na nen que ando liadisimo si tengo muchisimo tiempo lo miro, mientras entretente con esto anda:

IF LOOKUP ("D", Articulo.banderas) = 0
THEN DO:
CASE Articulo.CriterioPed:
WHEN 1 THEN icte = articulo.repVentas - articulo.stockreservado.
WHEN 2 THEN icte = Articulo.stockreal - articulo.stockreservado.
WHEN 3 THEN icte = articulo.repVentas - articulo.stockreservado.
END CASE.

y cositas asi que es mas facil q C

A

pos eso, q le metes el numero en romano y te lo tiene q devolver en decimal, por ejemplo si le metes CCXII pues te mostrara 212

FVS

yo le hice hace tiempo y creo k le tengo por aki pero amos ke no se ni si funciona y no voy a postear tol codigo xd

macakiss

XDDDD tio eso ye Visual? que recuerdos madre, hace tiempo que no programo en eso.XDDDDD.
Si no te gusta Visual pasate a C++ que te moriras antes de aprender.XDDDDD.
Saludos.

_

si profesor pilla este mensaje en foro
print "me follan el culo"

...

:D

Yorka_95

No me deja subir el codigo.... :( dime email y te lo mando

EDIT: lo he subido a mi CFG. bajatela del perfil.

A

muchas gracias a yorka_95 y FVS

switch

pues asi mirando, haces un for pa recorrer todas las letras y vas acumulando en una variable el resultado final, sumando en cada vuelta del for (por cada letra) el valor q le corresponde, con un switch por ejemplo

A

para eso necesitaria dividir la cadena de caracteres introducida en las distintas letras q la componen,
por ejemplo: CMXII == C M X I I (como consigo dividirlas?) =912

NazideMierda

Es bastante facil. Solamente date cuenta como dice un post anterior ke son varios bucles pero mira los casos especiales, donde cambia la rutina, y ya lo tendras hecho.
Pero tampoko te vamos a copiar aki el programa ke eso es de vagos y de gente muy comodona. :D

Venga paz.

A

no es ser vago ni comodon, solo q llevo tol finde comiendome la cabeza y no era capaz de sacarlo, x eso lo preguntaba aki, xo ya me lo han resuelto de otra forma, xq como yo lo he propuesto no lo puedo hacer con lo q he dado, xo weno, gracias a todos x la ayuda

A

ale, pos me piro ya a hacer el examen de c :P a ver si me pone el de los romanos q ya lo se jejeje

Pikachu

nunca pense ver esta pregunta aki.
a ver tio, basicamente curratelo tu XD
solo tienes que hacer ke si la letra siguente a la que comprueba el programa es mayor no visualice su valor, sino que lo reste al 2 digito, y ya ta
el resto del codigo no es gran cosa

switch

si piras ya na xD, pero si no sabes q para acceder a una letra en una cadena es con corchetes (cadena[letra]) mal te veo

mitnik

lees la fecha m,centenas,decenas,unidad
y haces un switch para cada una si las m son tal escribes la letra si las centenas son tal escribes la letra , me parece que se hace con 3 switch , espero que te sirva de algo

Yorka_95

ya subi en mi cfg el codigo. funciona bien kelo he probado antes xD
suerte en el examen.

si kieres mas codigo dimelo ahora ke los tengo aki y los subo :P

kiev

wow, si no sabes hacerlo pillando todas las letras a la vez engaña al tio y ve pillando los numeros romanos de uno en uno y despues sumas....lo dificil es si restas, ejem: "IX".
Si a la noche no lo tienes me pongo a probar, ke tiene ke estar xulo solucionar ese problema

kiev

ya ke ha salido este post, alguien usa un compilador ( ke no de fallos ), en modo grafico ke no sea el tc3?.
Es ke el Devc++, funciona como le sale de los webos.
enga, gracias a todos los pillaos ke han estudiado o estudian informatica

D

yo te lo hago or un modico precio, jjaja.... jajaja, no en serio voy a darte una pequeña guia de como lo haría yo:

  • me creo un acumulador donde iré sumando los numeros decimales.

  • me recorro el array de caracteres donde esta el nº romano de forma inversa:

  • en el recorrido sumo la cifra equivalente al acumulador o la resto si el caracter siguiente es mayor en nºs romanos.

  • y fin

Es mas facil de lo que yo creia. Si aun asi no lo sacas te escribo el codigo si me da riempo, pero no seas vago, xq con lo q te he puesto lo sacas perro!!

Saludos.

aLeX

me he puesto a hacerlo pero tener que restar cifras si la anterior es mayor a la posterior es una coña... es decir IX = 9 no seria 11....

D

no es ninguna coña...

  • tui estas dentro del bucle y haces

if(romano_a_decimal(numero[i++])>romano_a_decimal(numero)){
acumulador-=romano_a_decimal(numero);
}
else{
acumulador+=romano_a_decimal(numero);
}

a mi me parece bastante sencillo no? ;)

D

weno tio dime lo sacaste ya?

Moi6

:O peazo informaticos

JoKeR

joder ... lo acabo de mirar i no me acuerdo de nada !! eso k lo di el año pasao

Usuarios habituales