uses crt; var w, s,t,sl,sk,sp: string; q, p, l, a, e,i,j: integer; {-----------***********--------------} aOut:array [1..200] of string; {массив выходных данных} OutC:byte;{кол-во слов} Add:boolean;{флаг добавления слова в массив} {-----------***********--------------} f2:text; begin OutC:=0; l:=1; assign(f2,'f2.pas'); reset(f2); while not eof(f2) do begin readln(f2,t); insert(' ',t,length(t)+1); while Pos(' ',t)<>0 do begin q:=Pos(' ',t); sl:=Copy(t, 1,q-1);{копируем слово до пробела} delete(t,1,q); {удаляем из строки слово вместе с пробелом} {----------------------------} insert(' ',sl,length(sl)+1); while l1 then {проверяем слово, одну букву словом-переверт. не считаем} begin {---1----} for e:=1 to length(sl) do sk:=sk+upcase(sl[e]); for e:=1 to length(sk) do sp:=sk[e]+sp; if sp=sk then {---------------------*************---------------------------} begin Add:=True;{Добавляем в массив слов} if OutC>0 then{если в массиве уже есть слова, то проверим повторения} for i:=1 to OutC do{Ищем повоторения} if sp=aOut[i] then{Нашли повторения} begin Add:=False;{Не добавляем повторяющееся слово} Break;{Прерываем цикл проверки} end; if Add then begin inc(OutC);{Увеличиваем кол-во слов в массиве} aOut[Outc]:=sp;{Записываем это слово} end; end; {------------------*********************--------------------} sl:=''; end; end; end; {-------------------------} for i:=1 to OutC do writeln(aOut[i],' '); writeln; close(f2); readln; end.