Переписать текст в файл output.txt, заменив, где возможно, слова их синонимами - Free Pascal

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

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

Файл input.txt содержит несколько строк текста. Слова в тексте могут разделяться пробелами и знаками препинания. Переписать текст в файл output.txt, заменив, где возможно, слова их синонимами. Список синонимов находится в файле sinonim.dat в виде: слово1 синонимслова1 слово2 синонимслова2 ....................... словоN синонимсловаN

Решение задачи: «Переписать текст в файл output.txt, заменив, где возможно, слова их синонимами»

textual
Листинг программы
const
  Delims=[#0..#127]-['0'..'9','A'..'Z','a'..'z'];
var
  fs: Text;
 
function Synonym(s: String): String;
var p: String;
begin
  Synonym:=s; s:=s+' '; Reset(fs); 
  while not EOF(fs) do begin
    ReadLn(fs,p);
    if Pos(s,p)=1 then begin
      Synonym:=Copy(p,Length(s)+1,255); Break;
    end;
  end;
end;
 
var
  s, d, w: String;
  i: Integer;
begin
  Assign(fs,'sinonim.dat');
  Assign(input,'input.txt'); Assign(output,'output.txt');
  Reset(fs); Reset(input); Rewrite(output);
  while not EOF do begin
    ReadLn(s); s:=s+' '; d:=''; w:='';
    for i:=1 to Length(s) do begin
      if s[i] in Delims then begin
        if w>'' then d:=d+Synonym(w);
        d:=d+s[i]; w:='';
      end else w:=w+s[i];
    end;
    WriteLn(Copy(d,1,Length(d)-1));
  end;
  Close(fs); Close(input); Close(output);
end.

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

  1. В начале кода объявляются константы и переменные.
  2. В функции Synonym происходит поиск синонимов для слова в тексте из файла sinonim.dat.
  3. В основном блоке кода происходит чтение и запись текста из/в файлы input.txt и output.txt.
  4. В каждой строке текста, разделенной пробелами, ищутся слова, которые нужно заменить.
  5. Каждое найденное слово, если оно найдено, заменяется синонимом из файла sinonim.dat.
  6. Записанные в переменную d строки, содержащие найденные слова и их синонимы, записываются в файл output.txt.
  7. После каждой строки, содержащей найденные слова, записывается следующая строка, не содержащая найденные слова.

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


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

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

8   голосов , оценка 4.25 из 5
Похожие ответы