Напишите программу, вводящую с клавиатуры строку символов, которая содержит последовательность слов, разделённых пробелами, и печатающую все палиндромы, встретившиеся в строке — Pascal(Паскаль)

program PascalGuru;

uses crt;

var
  s, s1, s2: string;
  i, k: integer;

function Pal(s: string): boolean;
var
  i: byte;
  s1: string;
begin
  s1 := '';
  for i := length(s) downto 1 do
    s1 := s1 + s[i];
  if s = s1 then
    Pal := true
  else
    Pal := false;
end;

begin;
  clrscr;
  writeln('Vvedite slova razdelennymi probelami: ');
  readln(s);
  s := s + ' ';
  writeln;
  writeln('Palindromy:');

  while pos('  ', s) > 0 do
    delete(s, pos('  ', s), 1);
  i := length(s);
  s1 := '';
  while s[i] <> ' ' do
  begin
    s1 := s[i] + s1;
    i := i - 1;
  end;
  k := 0;
  while pos(' ', s) > 0 do
  begin
    s2 := copy(s, 1, pos(' ', s) - 1);
    if (s2 <> s1) and Pal(s2) then
    begin
      writeln(s2);
      k := k + 1;
    end;
    delete(s, 1, pos(' ', s));
  end;
  if k = 0 then
    write('V stroke ne naideno palindroma! ');
  readln;

end.

Leave a Comment

5 + 2 =