hola Jairo :
___________________________________________________
hay otras muchas formas de hacer este programa usando div 10 para separar los digitos , yo lo he echo de otra forma usando cadenas en vez de numeros para simplificar el proceso , de todas formas el siguiente codigo lo he hecho epresamente para para este foro sin mirar por ahi , aunque recuerdo un programa en java script que lo simplificaba aun mas usando las letras superior e inferior de I,V,X,L,C,D,M segun el caso , pero no logro encontrarlo.
espero que te sirva de ayuda SALUDOS de micropais.
____________________________________________________________
uses crt;
var c_numero:string; { cadena para recoger el numero }
i_numero:string; { para calcular la cadena invertida de c_numero }
lng:byte;
unidades:char;
decenas :char;
centenas:char;
millares:char;
a:byte; { contador bucle for }
begin
clrscr;
writeln('introducca numero entero decimal');
readln(c_numero);
{ obtenemos un numero pero en una cadena de caracteres }
i_numero:=#0; { inicializamos para el compilador }
lng:=(length(c_numero)); { longitud de la cadena }
{ invertimos la cadena, por que si tecleamos un numero de uno dos
tres o cuatro digitos las unidades sean siempre i_numero[1] , los millares,
las centenas y decenas pueden existir y no depende de la longitud tecleada }
for a:=1 to lng do i_numero:=c_numero[a]+i_numero;
{ i_numero contiene la cadena invertida c_numero }
{ calculamos las unidades decenas ... 0j0 son caracteres !!}
unidades:=i_numero[1];
decenas:=i_numero[2];
centenas:=i_numero[3];
millares:=i_numero[4];
case char(millares) of
'1':write('M');
'2':write('MM');
'3':write('MMM');
end;
case char(centenas) of
'1':write('C');
'2':write('CC');
'3':write('CCC');
'4':write('CD');
'5':write('D');
'6':write('DC');
'7':write('DCC');
'8':write('DCCC');
'9':write('CM');
end;
case char(decenas) of
'1':write('X');
'2':write('XX');
'3':write('XXX');
'4':write('XL');
'5':write('L');
'6':write('LX');
'7':write('LXX');
'8':write('LXXX');
'9':write('XC');
end;
case char(unidades) of
'1':write('I');
'2':write('II');
'3':write('III');
'4':write('IV');
'5':write('V');
'6':write('VI');
'7':write('VII');
'8':write('VIII');
'9':write('IX');
end;
readln;
end.