zadach196.PAS

{* Задача 196 *}

Unit ZADACH196;
Interface
Implementation
Begin
 writeln('Получить все, меньшие 106, натуральные числа, которые являются палиндромами как в десятичной, так и в двоичной системах. ');
End.

Program p1;

Uses zadach196.pas; {* Эту строку можно удалить *}
Uses crt; {* Подключаем внешние файлы *}
Var {* В работе нам потребуются переменные: *}
  a                         : longint;
  st1                       : String;
  st2                       : String;
Function ConvertToTwo(val : longint);
Var {* Необходимые переменные *}
  s1                    : String;
  s2                    : String;
  _s                    : String;
  m                     : integer;
  i                     : integer;
  Begin
  s1 := '';
Repeat    m := val Mod 2;
  val := val Div 2;
s1 := s1 + _s;
s2 := '';
For i := length(s1) Downto 1 Do
  s2;
ConvertToTwo := s2;
Function Polindrom(_s : String);
Var {* Необходимые переменные *}
  i   : integer;
  len : integer;
  b   : boolean;
  Begin
  b := true;
  len := length(_s);
For i := 1 To round(len / 2) Do {* Цикл для i => [1 .. round(len] *}
  If (_s[i]_s[len - i + 1]) Then
    Begin
b := false;
break;
End;
Polindrom := b;
End;
Begin
clrscr; {* Очистка экрана *}
For a := 1 To 1000000 Do {* Цикл для a => [1 .. 1000000] *}
  Begin
Str(a, st1);
st2 := ConvertToTwo(a);
If (Polindrom(st1))And(Polindrom(st2)) Then
  write(a, '  ');
End;
readln; {* Приостановка программы. Ожидание Enter *}
End....