Problema con un programa
Publicado por Borja (4 intervenciones) el 28/10/2009 18:59:17
Wenas, soy novato en esto de programar en pascal. Me han mandao que hag unprograma que al escribir yo un numero arabigo me lo cambie a romanos. He visto alguno por ahi pero son muy complicados y es imposible que se crea el profesor que lo he hecho yo. Yo he hecho esto a ver si me podeis ayuar, no funciona, meto el numero y no hace nada:
program romanos;
var n:integer;
var cont:integer;
begin
writeln('Escriba el numero que desee: ');
readln(cont);
cont:=n;
while n>0 do
if (n<10000) and (n>=1000) then
begin
write('M');
n:=n-1000;
end;
if (n<1000) and (n>=900) then
begin
write('CM');
n:=n-900;
end;
if (n<900) and (n>=500) then
begin
write('D');
n:=n-500;
end;
if (n<500) and (n>=400) then
begin
write('CD');
n:=n-400;
end;
if (n<400) and (n>=100) then
begin
write('C');
n:=n-100;
end;
if (n<100) and (n>=90) then
begin
write('XC');
n:=n-90;
end;
if (n<90) and (n>=50) then
begin
write('L');
n:=n-50;
end;
if (n<50) and (n>=40) then
begin
write('XL');
n:=n-40;
end;
if (n<40) and (n>=10) then
begin
write('X');
n:=n-10;
end;
if (n<10) and (n>=9) then
begin
write('IX');
n:=n-9;
end;
if (n<9) and (n>=5) then
begin
write('V');
n:=n-5;
end;
if (n<5) and (n>=4) then
begin
write('IV');
n:=n-4;
end;
if (n<4) and (n>=1) then
begin
write('I');
n:=n-1;
end;
readln;
end.
program romanos;
var n:integer;
var cont:integer;
begin
writeln('Escriba el numero que desee: ');
readln(cont);
cont:=n;
while n>0 do
if (n<10000) and (n>=1000) then
begin
write('M');
n:=n-1000;
end;
if (n<1000) and (n>=900) then
begin
write('CM');
n:=n-900;
end;
if (n<900) and (n>=500) then
begin
write('D');
n:=n-500;
end;
if (n<500) and (n>=400) then
begin
write('CD');
n:=n-400;
end;
if (n<400) and (n>=100) then
begin
write('C');
n:=n-100;
end;
if (n<100) and (n>=90) then
begin
write('XC');
n:=n-90;
end;
if (n<90) and (n>=50) then
begin
write('L');
n:=n-50;
end;
if (n<50) and (n>=40) then
begin
write('XL');
n:=n-40;
end;
if (n<40) and (n>=10) then
begin
write('X');
n:=n-10;
end;
if (n<10) and (n>=9) then
begin
write('IX');
n:=n-9;
end;
if (n<9) and (n>=5) then
begin
write('V');
n:=n-5;
end;
if (n<5) and (n>=4) then
begin
write('IV');
n:=n-4;
end;
if (n<4) and (n>=1) then
begin
write('I');
n:=n-1;
end;
readln;
end.
Valora esta pregunta


0