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

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

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

С горем пополам написал код для перестановки букв в введенном слове. Как сделать поиск полученных вариантов в словаре слов? Словарь русских слов в тхт формате. Например: ввожу слово beer Выдает варинты: beer bere bree eber ebre eebr eerb erbe ereb rbee rebe reeb. Нужно проверить есть ли какой нибудь вариант в словаре.
var a, b: array[1..255] of integer; 
 s:string;
 len, i:integer;
 procedure rec(t:integer);
 var i:integer;
 begin
 if t>len then begin
  for i:=1 to len do write(chr(b[i]));
  writeln();
  Exit;
 end;
 for i:=1 to 255 do
  if a[i]>0 then begin
  b[t]:=i;
  dec(a[i]);
  rec(t+1);
  inc(a[i]);  
  end;
 end;
 
 begin
 writeln('Введите строку');
 read(s);
 len:=Length(s);
 for i:=1 to len do
 inc(a[ord(s[i])]);
 rec(1); 
 end.

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

textual
Листинг программы
const DictName='dict-ru.txt';
function DictFind(const s: String): Boolean;
var f: Text; t: String;
begin
  Assign(f,DictName); Reset(f); t:='';
  while not SeekEoF(f) and (t<s) do ReadLn(f,t);
  Close(f);
  DictFind:=t=s;
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
Похожие ответы