Переписать текст в файл 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.
Объяснение кода листинга программы
- В начале кода объявляются константы и переменные.
- В функции
Synonym
происходит поиск синонимов для слова в тексте из файлаsinonim.dat
. - В основном блоке кода происходит чтение и запись текста из/в файлы
input.txt
иoutput.txt
. - В каждой строке текста, разделенной пробелами, ищутся слова, которые нужно заменить.
- Каждое найденное слово, если оно найдено, заменяется синонимом из файла
sinonim.dat
. - Записанные в переменную
d
строки, содержащие найденные слова и их синонимы, записываются в файлoutput.txt
. - После каждой строки, содержащей найденные слова, записывается следующая строка, не содержащая найденные слова.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д