Var n1,n2,A,B:integer;
D:byte;
Begin
WriteLn('1 - Ввести n1 и n2, 0 - выход');
ReadLn(D);
While D = 1 do
Begin
Write('n1 = ');ReadLn(n1);
Write('n2 = ');ReadLn(n2);
For n2:= n1 to n2 do
Begin
A:=n2;
B:=0;
While A>0 do
Begin
B:=B*10+A mod 10;
A:=A div 10;
End;
if B = n2 then Write(n2,' ')
End;
WriteLn;
WriteLn('1 - продолжить, 0 - выйти');
ReadLn(D);
End;
End.
Правда, я не уверен, что она правильно работает на любых числах, поэтому ещё одна версия:
Var
n1,n2,D:integer;
A,B:string;
Begin
WriteLn('1 - Ввести n1 и n2, 0 - выход');
ReadLn(D);
While D = 1 do
Begin
Write('n1 = ');ReadLn(n1);
Write('n2 = ');ReadLn(n2);
For n2:= n1 to n2 do
Begin
A:=IntToStr(n2);
B:='';
For D:= Length(A) downto 1 do
B:=B+A[D];
if A=B then Write(n2,' ')
End;
WriteLn;
WriteLn('1 - продолжить, 0 - выйти');
ReadLn(D);
End;
End.