Pascal/Turbo Pascal - Duda

 
Vista:

Duda

Publicado por Jairo (1 intervención) el 05/04/2007 20:10:31
por casualidad, alguien sabe como puedo hacer un programa, en pascal, q convierta de numeros en sistema decimal a numeros romanos sin usar vectores ni matrices.
necesito ayuda urgente!!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Duda

Publicado por micropais (209 intervenciones) el 05/04/2007 22:17:21
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.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar