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

Ответить
Anastasija2203
Сообщения: 2
Зарегистрирован: 02 фев 2010, 11:48

Помогите пожалуйста с решением следующей задачи:
Дан файл, содержащий большой словарь русских слов и выражений. Составить программу, которая обеспечивает:
1.поиск слов-палиндромов (слова, которые читаются одинаково слева направо, так справа налево, например, казак, шалаш )
2.поиск фраз-палиндромов. Например, "А роза упала на лапу Азора"
Newbie
Сообщения: 148
Зарегистрирован: 06 сен 2009, 19:45

Определение полиндром или нет:

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

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.
загрузку из файла писать лень)
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

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

Спасибо, за помощь, но если я правильно поняла то приведенная выше процедура определяет только слова палиндромы, а как быть с фразами? Или я ошибаюсь и эту процедуру можно использовать и для фраз? Подскажите пожалуйста.
Хыиуду
Сообщения: 2442
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

Фраза отличается от слова только наличием в ней пробелов и знаков препинания. В коде никакие пробелы и знаки препинания не упоминаются, стало быть, эту функцию можно использовать для любой строки, вне зависимости от того, содержит ли она отдельное слово или целую фразу.
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Ответить