Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Сборник задач Бабалова.doc
Скачиваний:
86
Добавлен:
04.06.2015
Размер:
1.16 Mб
Скачать

Пример 1.4.

program Number_1_4;

uses Crt;

{Создать текстовый файл. С помощью созданного для решения этой задачи файла

ключевых слов собрать статистику по частоте появления ключевых

слов в тексте исходного файла. Последовательность ключевых слов упорядочить по

алфавиту}

type ss=string[20];

sisx=string[80];

tword = record

st: ss;

I: word;

end;

ff=file of ss;{файл для хранения

ключевых слов}

aa= array[1..60] of tword; {массив для хранения результатов обработки исходного файла ключевых слов в памяти; Предполагаем, что более 60 различных ключевых слов у нас не будет в одном тексте}

Var X:integer;

stt :aa;

f:ff;

procedure File_create(var t:text);

Var I:word;

str: ss;

si:sisx;

k:char;

begin

str:='ttt.txt';

gotoxy(40,10);

writeln('Имя файла для хранения текста -ttt.txt');

assign(t,str);

rewrite(t);

repeat

writeln('Вводите текст');

readln(si);{Вводим и записываем текст построчно}

writeln(t,si);

writeln('Текст весь введен?- y or n');

readln(k);

until k='y';

close(t); {Обязательное закрытие файла, чтобы сформировать признак конца файла и

иметь возможность его проверить при чтении файла}

end;

function test_file(var t:text):boolean;

var

b:boolean;

begin

test_file:=false;

gotoxy(40,10);

writeln('Проверяем всегда наличие файлов',#10#13, ' для работы');

ssign(t,'ttt.txt');

{$i-}

reset(t);

{$i+}

if ioresult<>0 then

begin

writeln('Файл не найден с исходным текстом');

writeln('Необходимо создать или заполнить файл');

File_create(t);

b:=test_file(t);

exit;

end else

test_file:=true;

end;

procedure file_key;

Var X:integer;

a:ss;

k:char;

begin

assign(f,'key.txt');

rewrite(f);

repeat

writeln('Введите последовательность ключевых слов '

,#10#13,' наличие которых хотите',#10#13,

' проверить в некотором тексте');

{Коды конца строк позволяют вывести текст более компактно }

readln(a);

write(f,a);

writeln('Все слова введены - y or n');

readln(k);

until k='y';

close(f);

end;

procedure key_load;

{Ключевые слова размещаем в памяти, чтобы обеспечить проверку исходного текст}

var

sa:ss;

begin

x:=1;

assign(f,'key.txt');

reset(f);

while not eof(f) do

begin

read(f,sa); write(sa,'***');

stt[x].st:=sa;

stt[x].i:=0;