Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.04.2009, 14:06   #1
JuliaBelochka
 
Регистрация: 26.04.2009
Сообщений: 7
По умолчанию Поиск палиндромов в тексте. DELPHI

Помогите пожалуйста решить задачу:
Имеется текст. Проверить содержит ли этот текст слова, которые читаются одинаково справа налево и слева направо, т.е. являются ли они палиндромами Если таких слов нет, то вывести об этом сообщение. Если же палиндромы присутствуют, то вывести их на форму.
Заранее спасибо
JuliaBelochka вне форума Ответить с цитированием
Старый 26.04.2009, 14:17   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Что непонятно? Что не получается? Где ваши наработки.

Здесь было достаточно подобных задач, можете найти с помощью поиска.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 26.04.2009, 14:25   #3
JuliaBelochka
 
Регистрация: 26.04.2009
Сообщений: 7
По умолчанию

Не получается выбрать из текста слова-палиндромы. Если вводится 1 слово, то программа выдает, палиндром он или нет, а с целым текстом работать отказывается
JuliaBelochka вне форума Ответить с цитированием
Старый 26.04.2009, 14:29   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
а с целым текстом работать отказывается
Так покажите то, что отказывается работать с текстом. Т.е. свой код.

Нужно идти по тексту и выделять слова.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 26.04.2009, 14:39   #5
JuliaBelochka
 
Регистрация: 26.04.2009
Сообщений: 7
По умолчанию

var s:string; i:integer; b:boolean;
begin
s:=edit1.Text;
b:=true;
for i:=1 to Length(s) div 2 do
if s[i]<>s[length(s)-i+1] then begin b:=false;
end;
if b then label1.caption:=edit1.text;
JuliaBelochka вне форума Ответить с цитированием
Старый 26.04.2009, 14:42   #6
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

JuliaBelochka, ну так правильно. У вас код только для одного слова.
Вам нужно выделять слова и проверять их отдельно.

Ладно, вот вам.
На форму киньте два Мемо (первый - для текста, второй - для палиндромов) и кнопку.
Код:
procedure TForm1.Button1Click(Sender: TObject);
var i,k : integer;
s,sub : string;
mn : set of char;

 function isPalindrom(str : string) : boolean;
 var a,len : integer;
 begin
 Result := true;
 len := length(str);
 for a:=1 to (len div 2) do
  if str[a]<>str[len-a+1] then Result := false;
 end;

begin
mn := [' ','.','!',',','?','"'];

for k := 0 to Memo1.Lines.Count-1 do
 begin
 s := Memo1.Lines.Strings[k];
 sub := '';
 i := 1;
 while i<=length(s) do
  begin
  while (s[i] in mn) and (i<=length(s)) do
   inc(i);
  while not (s[i] in mn) and (i<=length(s)) do
   begin
   sub := sub + s[i];
   inc(i);
   end;
  if isPalindrom(sub) and (length(sub)>1) then
   Memo2.Lines.Add(sub);
  sub := '';
  end;

 end;
end;
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]

Последний раз редактировалось Sazary; 26.04.2009 в 14:48.
Sazary вне форума Ответить с цитированием
Старый 26.04.2009, 14:49   #7
JuliaBelochka
 
Регистрация: 26.04.2009
Сообщений: 7
По умолчанию

А не подскажете, как?
JuliaBelochka вне форума Ответить с цитированием
Старый 26.04.2009, 14:57   #8
JuliaBelochka
 
Регистрация: 26.04.2009
Сообщений: 7
По умолчанию

Спасибо огромное!!!! Очень вам признательна))))
JuliaBelochka вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск и удаление символов в тексте (Delphi) ekzobyte Помощь студентам 2 04.04.2009 19:46
Поиск емайлов в тексте hkdkest Общие вопросы Delphi 3 04.12.2008 12:47
Поиск в тексте Rigard Общие вопросы Delphi 8 15.10.2008 00:06
Поиск в тексте jone Общие вопросы Delphi 14 28.09.2008 12:42
Поиск слов в тексте pleer Общие вопросы Delphi 5 23.09.2007 08:19