Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
АЯП лекции.doc
Скачиваний:
12
Добавлен:
03.12.2018
Размер:
634.37 Кб
Скачать

Типизированные файлы.

Типизированный файл – файл, тип элемента которого определен, т.е. определен размер области памяти, который отводится под данный элемент, что позволяет обращаться к n-ому элементу файла прямо, не перебирая n-1-предыдущих элементов. Реализация таких файлов стала возможной с появлением постоянных запоминающих устройств (ПЗУ) прямого доступа (винчестер).

Особенности работа с типизированными файлами.

  1. Даже если тип элемента файла – строка, использовать writeln или readln нельзя, так как считывание и запись информации осуществляется поэлементно. Так как механизм чтения/записи в типизированный файл реализован для элемента файла независимо от их типа, то используется только read или write.

  1. Файловая переменная описывается словом FILE OF ТЭФ;

  1. Существуют специализированные подпрограммы работы с типизированными файлами.

SEEK – в типизированном файле маркер или указатель файла перемещается на n-ый элемент. Последующая процедура чтения считает n-ый элемент из файла.

FILEPOS – функция, на место вызова которой возвращается целое число, равное номеру позиции элемента из текущей позиции маркера файла.

FILESIZE – функция, возвращающая целое число, равное количеству элементов в файле.

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

Пример. Задан файл. Сформировать файл записи по принципу yes/no. Одна запись содержит ФИО студента и три его оценки. Для индексации предметов использовать перечисляемый тип.

Примечание.

Если ТЭФ – структурированный тип, то соблюдаем правило:

  1. в разделе типов определить тип данной структуры.

  2. определить этим типом ТЭФ и переменную, которая будет участвовать в обмене информации программы и файла (буферную переменную).

  3. при записи информации (в этом случае) сначала формируем полностью структуру, а затем записываем как единую структуру в типизированный файл.

При чтении используем аналогичный подход, т.е. из файла считывается сразу вся структура, а затем уже поэлементно обрабатывается в программе.

type pr=(mat,rus,aip);

st=record

fio:string;

o:array[pr] of 2..5;

end;

var f:file of st;

bp:st;

p:pr;

name:string;

c:char;

begin writeln(‘Введите имя файла’);

readln(name);

assign(f,name);

rewrite(f);

repeat writeln (‘Введите запись’);

with bp do begin

readln(fio);

for p:=mat to aip do read(o[p]);

end;

write(f,bp);

writeln(‘Будете еще вводить запись? y/n’);

readln(c);

until(c=’n’);

close(f);

end.

Пример. Задан файл (предыдущая задача). Определить средний балл группы.

type.....

var.....

c:integer;

st:real;

begin writeln(‘Введите имя файла’);

readln(name);

assign(f,name);

reset(f);

sr:=0;c:=0;

repeat read(f,bp);

with bp do

for p:=mat to aip do

sr:=sr+o[p];

c:=c+1;

until eof(f);

sr:=sr/3/c;

writeln(sr:0:1);

end.

Подпрограммы.

Подпрограмма – некоторый набор операторов, который повторяется в программе многократно, обрабатывая некоторый объем данных. Либо же подпрограмма реализует некоторый алгоритм хорошо известный и отработанный.

Подпрограммы так же позволяют экономить оперативную память. Механизм взаимодействия подпрограммы с программой заключается в следующем:

Подпрограмма при запуске программы не размещается в оперативную память. В неё подпрограмма размещается только при вызове. После завершения работы подпрограммы оперативная память, занимающая ею освобождается.

Из-за реализации механизма использования подпрограмм все переменные, используемые в программе с подпрограммой делятся на три вида:

1. Глобальные переменные – переменные, которые описываются в описательной части самой программы и могут использоваться как в тексте программы, так и без дополнительного описания в теле подпрограммы.

Тело подпрограммы – операторы Паскаля, отображающие алгоритм функционирования самой программы.

2. Локальные переменные – переменные, которые описываются в описательной части подпрограммы и могут быть использованы только в теле программы.

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

3. Формальные переменные – описываются в заголовке подпрограммы. Их ещё называют параметрами подпрограммы. Они могут отсутствовать. В этом случае говорят, что подпрограмма без параметров. Формальные переменные могут использоваться только внутри тела подпрограммы. Формальность заключается в том, что при вызове подпрограммы на их место подставляются глобальные переменные.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]