Перемена местами букв в слове и поиск совпадений в словаре - Pascal

Узнай цену своей работы

Формулировка задачи:

С горем пополам написал код для перестановки букв в введенном слове. Как сделать поиск полученных вариантов в словаре слов? Словарь русских слов в тхт формате. Например: ввожу слово beer Выдает варинты: beer bere bree eber ebre eebr eerb erbe ereb rbee rebe reeb. Нужно проверить есть ли какой нибудь вариант в словаре.
Листинг программы
  1. var a, b: array[1..255] of integer;
  2. s:string;
  3. len, i:integer;
  4. procedure rec(t:integer);
  5. var i:integer;
  6. begin
  7. if t>len then begin
  8. for i:=1 to len do write(chr(b[i]));
  9. writeln();
  10. Exit;
  11. end;
  12. for i:=1 to 255 do
  13. if a[i]>0 then begin
  14. b[t]:=i;
  15. dec(a[i]);
  16. rec(t+1);
  17. inc(a[i]);
  18. end;
  19. end;
  20. begin
  21. writeln('Введите строку');
  22. read(s);
  23. len:=Length(s);
  24. for i:=1 to len do
  25. inc(a[ord(s[i])]);
  26. rec(1);
  27. end.

Решение задачи: «Перемена местами букв в слове и поиск совпадений в словаре»

textual
Листинг программы
  1. const DictName='dict-ru.txt';
  2. function DictFind(const s: String): Boolean;
  3. var f: Text; t: String;
  4. begin
  5.   Assign(f,DictName); Reset(f); t:='';
  6.   while not SeekEoF(f) and (t<s) do ReadLn(f,t);
  7.   Close(f);
  8.   DictFind:=t=s;
  9. end;

Объяснение кода листинга программы

  1. Объявляется константа DictName со значением dict-ru.txt, предположительно содержащая название файла словаря.
  2. Объявляется функция DictFind с параметром s типа String, которая возвращает значение типа Boolean.
  3. Внутри функции создается переменная f типа Text (для работы с файлом) и переменная t типа String (для хранения данных из файла).
  4. Происходит присваивание файла с именем DictName к переменной f, после чего файл открывается для чтения.
  5. Переменной t присваивается пустая строка.
  6. Запускается цикл, который будет читать строки из файла пока файл не достигнет конца или пока строка из файла t не станет больше или равна строке s.
  7. После выхода из цикла файл закрывается.
  8. Функция возвращает значение t=s, то есть результат проверки на равенство между t и s.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы