var P : PRec;
begin
Rewrite(F); P:= List;
while Assigned(P) do begin
Writeln(F, P^.mWord, '':(20-Length(P^.mWord)), P^.mCount:5 );
P:= P^.mNext;
end;
Close(F);
end;
var S: string; F: text;
begin {--- Главная программа ---}
List:= nil;
Assign(F, 'P_55_1.pas');
Reset(F);
while not Eof(F) do begin
Readln(F, S);
AddLine(S);
end;
Close(F); Assign(F, 'P_55_1.OUT');
PrintList(F); { Распечатка списка }
end.
Полагаю, что моих комментариев и вашего опыта хватит для понимания программы. Обязательно проверьте её. Вот результат исследования программой своего собственного текста (приведена только часть слов).
ADDLINE 2
ADDTOSORTLIST 2
ADDWORD 2
AND 6
ASSIGN 2
ASSIGNED 7
AWORD 10
BEGIN 14
CLETTER 3
А) Дополните программу средствами для подсчета:
• общего количества слов в файле;
• общего количества разных слов.
Напишите для этого подобающие функции.
Б) Измените программу так, чтобы при распечатке списка выводилась относительная частота слов в процентах от общего их количества с двумя знаками после точки.
В) Создайте программу для подсчета в файле слов, составленных из одних и тех же символов: цифр и букв, например: «end» и «deen», «121» и «221». Для каждой такой группы слов программа должна напечатать перечень входящих в них символов (каждый символ – по разу) и количество обнаруженных слов этой группы, например, для приведенных выше слов будет напечатано:
1 2 – 2
d e n – 2