• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Найти и вывести слова-палиндромы. Delphi.

  • Автор темы Автор темы Sayks
  • Дата начала Дата начала

Sayks

Новые
Регистрация
26 Окт 2010
Сообщения
17
Реакции
0
Баллы
0
Найти и вывести слова-палиндромы. 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.
 
вот полный проект задачи...
 

Вложения

  • z2.zip
    z2.zip
    7.5 KB · Просмотры: 254
Назад
Сверху