Подсчитать, сколько раз в файле встречается каждое из указанных слов - Turbo Pascal
Формулировка задачи:
Задание:
Написать программу которая считывает текстовый файл и файл с перечнем слов и подсчитывает сколько раз в этом файле встречается каждое из указанных слов.
Решение задачи: «Подсчитать, сколько раз в файле встречается каждое из указанных слов»
textual
Листинг программы
uses crt;
const rz=['.',',',':','-',' '];
const nf='text.txt';
ng='slova.txt';
var f,g:text;
i,k:byte;
sl,s,st:string;
begin
clrscr;
assign(f,nf);
assign(g,ng);
reset(g);
while not eof(g) do
begin
readln(g,sl);
k:=0;
reset(f);
while not eof(f) do
begin
readln(f,s);
{заменим разделители на пробелы}
for i:=length(s) downto 1 do
if s[i] in rz then s[i]:=' ';
{удалим лишние пробелы}
while pos(' ',s)>0 do delete(s,pos(' ',s),1);
{сейчас ищем и считаем слово}
while pos(' ',s)>0 do
begin
if copy(s,1,pos(' ',s)-1)=sl then k:=k+1;
delete(s,1,pos(' ',s));
end;
end;
writeln('Слово ',sl,' встречено ',k,' рз.');
close(f);
end;
close(g);
readln
end.
Объяснение кода листинга программы
- В начале кода используются библиотеки crt и text.
- Объявляются две переменные типа text: f и g. Переменная f будет использоваться для чтения из файла text.txt, а переменная g - для чтения из файла slova.txt.
- Далее идет функция clrscr, которая очищает экран.
- Затем происходит присвоение значения переменным f и g с помощью функции assign. Переменная f получает значение 'text.txt', а переменная g - 'slova.txt'.
- Функция reset вызывается на переменной g, чтобы сбросить ее в начало.
- Запускается цикл while, который будет выполняться до конца файла text.txt.
- Внутри цикла происходит чтение строки из файла text.txt в переменную sl с помощью функции readln.
- Переменная k инициализируется значением 0.
- Затем происходит сброс счетчика i в начало.
- Запускается цикл while, который будет выполняться до конца файла slova.txt.
- Внутри цикла происходит чтение строки из файла slova.txt в переменную s с помощью функции readln.
- Далее происходит проверка, содержит ли текущая строка из файла slova.txt хотя бы один символ из списка разделителей ('.', ',', ':', '-', ' '). Если содержит, то этот символ заменяется на пробел.
- Затем происходит удаление лишних пробелов в строке s.
- Далее идет проверка, содержит ли текущая строка из файла slova.txt хотя бы один символ из списка искомых слов (sl). Если содержит, то счетчик k увеличивается на 1.
- После этого происходит удаление текущей строки из файла slova.txt с помощью функции delete.
- Цикл while завершается, и выводится сообщение о количестве вхождений слова sl в тексте.
- После завершения работы с файлом text.txt он закрывается с помощью функции close.
- Затем закрывается файл slova.txt с помощью функции close.
- Выводится команда readln для завершения работы программы.