Страница 1 из 1

Поиск фраз и слов палиндромов в файле-словаре

Добавлено: 02 фев 2010, 11:57
Anastasija2203
Помогите пожалуйста с решением следующей задачи:
Дан файл, содержащий большой словарь русских слов и выражений. Составить программу, которая обеспечивает:
1.поиск слов-палиндромов (слова, которые читаются одинаково слева направо, так справа налево, например, казак, шалаш )
2.поиск фраз-палиндромов. Например, "А роза упала на лапу Азора"

Re: Поиск фраз и слов палиндромов в файле-словаре

Добавлено: 02 фев 2010, 21:59
Newbie
Определение полиндром или нет:

Код: Выделить всё

var i: integer;
    s: string;
    pol : boolean;

begin
 pol := true;
 write('s=');readln(s);
 for i := 1 to trunc(length(s) / 2) do
  if(s[i] <> s[length(s) - i + 1]) then
   pol := false;
 writeln('pol = ', pol);
end.
загрузку из файла писать лень)

Re: Поиск фраз и слов палиндромов в файле-словаре

Добавлено: 03 фев 2010, 09:03
Хыиуду
Замечания к вышеприведенному коду:
1. Если pol:=false, то дальше уже можно смело ставить break. Все равно true оно больше не станет.
2. trunc(length(s) / 2) спокойно меняется на length(s) div 2.
3. Значение pol лучше возвращать как результат функции, а не выводом напрямую на экран. Это вообще ко всем программам относится.

Re: Поиск фраз и слов палиндромов в файле-словаре

Добавлено: 12 фев 2010, 19:30
Anastasija2203
Спасибо, за помощь, но если я правильно поняла то приведенная выше процедура определяет только слова палиндромы, а как быть с фразами? Или я ошибаюсь и эту процедуру можно использовать и для фраз? Подскажите пожалуйста.

Re: Поиск фраз и слов палиндромов в файле-словаре

Добавлено: 15 фев 2010, 09:57
Хыиуду
Фраза отличается от слова только наличием в ней пробелов и знаков препинания. В коде никакие пробелы и знаки препинания не упоминаются, стало быть, эту функцию можно использовать для любой строки, вне зависимости от того, содержит ли она отдельное слово или целую фразу.