Показать сообщение отдельно
Старый 20.11.2010, 16:05   #1 (permalink)
Sayks
Member
 
Регистрация: 26.10.2010
Сообщений: 17
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Найти и вывести слова-палиндромы. Delphi.

Дана строка, состоящая из русских слов, разделенных пробелами (одним или несколькими). Определить, сколько слов в строке являются палиндромами (перевертышами), и вывести эти слова. у меня получается такой код но я не могу найти в нём ошибку...помогите,пожалуйста....
Код:
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.
Sayks вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070