TURBO PASCAL:Учебное пособие. Терёхин В.В. - 79 стр.

UptoLike

Составители: 

79
end.
Задача:
С клавиатуры вводится строка символов, до-
полнить ее минимальным количеством символов справа так,
чтобы получившаяся строка оказалась палиндромом. (Палин-
дром - это последовательность символов, читающаяся одина-
ково и справа на лево, и слева направо. )
program р29;
const
S: String= 'АВСААС’;
var
S1, SS: String;
i: integer;
pol : boolean;
begin
{Реализуем следующую идею. Будем в цикле проверять,
является ли исходная строка палиндромом и отрезать от
нее по одному символу слева. Как только получится па-
линдром, добавим к исходной строке отрезанные от нее
символы, предварительно поменяв порядок их следования
на обратный}
SS := S;
S1 : = ' ‘;
repeat
pol : = true ;
for i:= 1 to length (S) div 2 do
if S [i] <> S [length (S) - i + 1] then pol:= false;
if not pol then
begin
S1:= S[i] + S1;
Delete (S, 1, 1) ;
end;
Until pol;
SS:= SS + S1;
end.

        Задача:
        С клавиатуры вводится строка символов, до-
полнить ее минимальным количеством символов справа так,
чтобы получившаяся строка оказалась палиндромом. (Палин-
дром - это последовательность символов, читающаяся одина-
ково и справа на лево, и слева направо. )
program р29;
const
S: String= 'АВСААС’;
var
   S1, SS: String;
   i: integer;
   pol : boolean;
begin
{Реализуем следующую идею. Будем в цикле проверять,
является ли исходная строка палиндромом и отрезать от
нее по одному символу слева. Как только получится па-
линдром, добавим к исходной строке отрезанные от нее
символы, предварительно поменяв порядок их следования
на обратный}
   SS := S;
   S1 : = ' ‘;
   repeat
       pol : = true ;
       for i:= 1 to length (S) div 2 do
          if S [i] <> S [length (S) - i + 1] then pol:= false;
          if not pol then
          begin
              S1:= S[i] + S1;
              Delete (S, 1, 1) ;
          end;
   Until pol;
   SS:= SS + S1;
                                                            79