Дана строка, состоящая из русских слов, разделенных пробелами (одним или несколькими). Определить, сколько слов в строке являются палиндромами (перевертышами), и вывести эти слова. у меня получается такой код но я не могу найти в нём ошибку...помогите,пожалуйста....
Код:
var
Form1: TForm1;
implementation
{$R *.dfm}
function IsPalindrome(const S: String): Boolean;
var
i: Integer;
begin
Result := False;
for i := 1 to Length(s) div 2 do
if s[i] <> s[Length(s) - i + 1] then Exit;
Result := True;
end;
procedure TForm1.Button1Click(Sender: TObject);
var s,st,c:string;
k,n,i:integer;
f:boolean;
arr:array of string;
begin
s:=Edit1.Text;
i:=1;k:=0;
While i<=length(s) do
begin
if s[i]<>' ' then st:=st+s[i]
else
begin
if st<>'' then Memo1.Lines.Add(st);
Memo1.Lines.Add('');
st:='';
end;
i:=i+1;
end;
if st<>'' then Memo1.Lines.Add(st);
n:=memo1.Lines.Count;
setlength(arr,n);
for i:=0 to n-1 do
arr[i]:=memo1.Lines.Strings[i];
memo1.clear;
for i:=0 to n-1 do
begin
c:=arr[i];
f:=IsPalindrome(c);
if f=false then
k:=k+1;
Memo1.lines.add(c);
c:='';
end;
label1.caption:=inttostr(k);
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Close;
end;
end.