Суббота, 20 Апреля 2024, 17:48

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Программирование » Delphi/Pascal/Object Pascal » помогите пожалуйста решить задачу по Free Pascal
помогите пожалуйста решить задачу по Free Pascal
DantДата: Понедельник, 13 Декабря 2010, 17:43 | Сообщение # 1
был не раз
Сейчас нет на сайте
Есть текстовый файл,имя которого задается пользователем. Найти все фразы перевертыши и вывести их во второй файл.
mitchДата: Понедельник, 13 Декабря 2010, 18:25 | Сообщение # 2
постоянный участник
Сейчас нет на сайте
Quote (Dant)
Найти все фразы перевертыши

это как?
DantДата: Понедельник, 13 Декабря 2010, 18:27 | Сообщение # 3
был не раз
Сейчас нет на сайте
ну фразы перевертыши это типа ароза упала на лапу азора
AngevengelistДата: Понедельник, 13 Декабря 2010, 18:32 | Сообщение # 4
постоянный участник
Сейчас нет на сайте
Quote (Dant)
ну фразы перевертыши это типа ароза упала на лапу азора

Слова или фразы?
Если фразы, какой диапазон слов для одной фразы? Или искать между одинаковыми словами?

Добавлено (13.12.2010, 18:32)
---------------------------------------------
Каждая фраза, начинается с новой строки в текстовом файле? Или содержится в неком тексте?

DantДата: Понедельник, 13 Декабря 2010, 18:39 | Сообщение # 5
был не раз
Сейчас нет на сайте
именно фразы, а диапазаон любой наверное

Добавлено (13.12.2010, 18:39)
---------------------------------------------

Quote (Angevengelist)
Каждая фраза, начинается с новой строки в текстовом файле? Или содержится в неком тексте?

в тексте, набор букв, слов и среди этого попадаются слова перевертыши
AngevengelistДата: Понедельник, 13 Декабря 2010, 18:39 | Сообщение # 6
постоянный участник
Сейчас нет на сайте
Quote (Dant)
именно фразы, а диапазаон любой наверное

И как ты хочешь проверять фразы в тексте?

Quote (Angevengelist)
Каждая фраза, начинается с новой строки в текстовом файле? Или содержится в неком тексте?
mitchДата: Понедельник, 13 Декабря 2010, 18:42 | Сообщение # 7
постоянный участник
Сейчас нет на сайте
считывание и запись в файл
Code

begin
   assign(input, <имя первого файла>);
   rewrite(input);
   assign(output, <имя второго файла>);
   reset(output);
   readln(...);
   ...
   writeln(...);
   close(input);
   close(output);
end;

как примерно решать задачу: делаешь массив слов, считываешь слова, потом каждое слово проверяешь со всеми
как проверять: в одном из слов перемещаешь последний символ вперед и смотришь, схожи ли эти 2 слова, только перед этим я думаю еще надо проверку сделать по количеству символов в слове, ибо слова с разным кол-вом букв не имеет смысл проверять

DantДата: Понедельник, 13 Декабря 2010, 18:43 | Сообщение # 8
был не раз
Сейчас нет на сайте
Спасибо БОЛЬШУЩЕЕ!!!)) biggrin
mitchДата: Понедельник, 13 Декабря 2010, 18:43 | Сообщение # 9
постоянный участник
Сейчас нет на сайте
Quote (Dant)
именно фразы

Dant, так все-таки фразы или отдельные слова надо?
DantДата: Понедельник, 13 Декабря 2010, 18:46 | Сообщение # 10
был не раз
Сейчас нет на сайте
именно фразы
mitchДата: Понедельник, 13 Декабря 2010, 18:48 | Сообщение # 11
постоянный участник
Сейчас нет на сайте
Dant, тогда нужно фразу просто перевернуть, т.е. последний символ меняешь местами с первым, предпоследний со вторым и так далее до середины фразы
ну и далее каждый символ из каждой фразы проверяешь, совпадает ли он или нет
DantДата: Понедельник, 13 Декабря 2010, 18:53 | Сообщение # 12
был не раз
Сейчас нет на сайте
спасибо большое)
noTformaTДата: Понедельник, 13 Декабря 2010, 19:40 | Сообщение # 13
Ukrainian independent game developer
Сейчас нет на сайте
функция проверки фразы перевертыша smile
Code

function WorldIs(s: string): boolean;
var
    i: integer;
    b: boolean;
begin
    b:=true;
    for i:=1 to length(s) div 2 do
       begin
          if not s[i]= s[(length(s) - i)+1] then
             begin
                b:=false;
                break;
             end;
       end;  
      result:=b;
end;


@noTformaT
mitchДата: Понедельник, 13 Декабря 2010, 20:02 | Сообщение # 14
постоянный участник
Сейчас нет на сайте
noTformaT, не учел что длина строки может быть нечетным числом
вместо "length(s) div 2" нужно или "trunc(length(s) div 2)@" или "round(length(s) div 2)"
Форум игроделов » Программирование » Delphi/Pascal/Object Pascal » помогите пожалуйста решить задачу по Free Pascal
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг