Условие: В тексте слова отделяются друг от друга пробелами. После последнего слова стоит точка. Найти все слова-перевёртыши, то есть те, которые читаются одинаково слева-направо и справа-налево.
Технические условия: Программа должна читать исходные данные из файла input.txt, содержащего исследуемый текст. Файл output.txt должен содержать список всех слов-палиндромов, разделённых пробелами.
Примеры входных и выходных файлов: Отсутствуют.
Решение: {Программа читает текст из файла input.txt, удаляет точку в конце предложения, затем переводит текст к нижнему регистру, и с помощью функции Perev логического типа, проверяет, является ли каждое из слов исследуемого текста палиндромом}
var txt:string; i,n:integer; f:text;
Function Perev(str:string):boolean; var s:string; k:integer; begin s:=''; for k:=length(str) downto 1 do s:=s+str[k]; if s=str then Perev:=True else Perev:=False; end;
begin assign(f,'input.txt'); reset(f); readln(f,txt); close(f); for i:=1 to length(Txt) do begin case Txt[i] of 'А'..'П':Txt[i]:=Chr(ord(Txt[i])+32); 'Р'..'Я':Txt[i]:=Chr(ord(Txt[i])+80); 'A'..'Z':Txt[i]:=Chr(ord(Txt[i])+32); end; end; n:=1; assign(f,'output.txt'); rewrite(f); for i:=1 to length(txt) do begin if (Txt[i]=' ') or (i=length(txt)) then begin if Perev(Copy(Txt,n,i-n)) then writeln(f,copy(Txt,n,i-n)); n:=i+1; end; end; close(f); end.