Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Практическое занятие№10«Работа с файлами послед...docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
61.02 Кб
Скачать

Тема: Работа с файлами последовательного доступа.

Цель: научиться составлять программы с использованием файлов последовательного доступа.

Теоретическая часть.

1. Понятие файла

Входная и выходная информация по отношению к программе на языке Паскаль представляется в виде файлов. Например, ввод и вывод данных в предыдущих работах осуществлялись с помощью стандартных файлов, имена которых определяются идентификаторами InPut и QutPut. Файл в общем случае состоит из нескольких однотипных компонент (элементов) и представляется файловой переменной. Файл может существовать как до, так и после выполнения программы и занимать память намного больше, чем сама программа. Программу пользователя также можно рассматривать в виде совокупности данных, допускающей представление файловой переменной.

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

В зависимости от способа объявления в Турбо Паскале можно выделить 3 вида файлов:

  • типизированные, которые задаются предложением File of «тип»;

  • текстовые, которые задаются предложением Text;

  • нетипизированные, которые задаются предложением File.

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

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

Определение файлового типа

Файловый тип определяется в программе с помощью соответствующего описания:

Туре

<имя типа> = file of <тип компонентов>;

где <тип компонентов> - любой базовый тип, кроме файлового.

Переменная файлового типа описывается в разделе определения переменных:

Var

<идентификатор> : <имя типа>;

Например, определение типов

Const

Мах = 80;

Туре

Line = string[Max];

Fl = file of Line;

задаёт файловый тип Fl, элементами которого могут быть строки длиною до 80 символов. Файловая переменная описывается в следующем виде:

Var

List: FL;

Возможно описание файловой переменной непосредственно в разделе определения переменных без определения файлового типа. Однако базовый тип компонентов файла должен быть предварительно определен или же являться стандартным:

Const

Мах = 80;

Туре

Line = string[Max];

Var

List: file of Line;

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

Туре

stud = record

fam : string[15];

b1, b2, bЗ, b4, b5:2..5;

sb : real;

end ;

Var

tbl: file of stud;

student: stud;

Доступ к компонентам файла осуществляется через указатель файла (скрытую переменную, неявно описанную вместе с файловой переменной tbl). При чтении или записи этот указатель перемещается к следующему компоненту и делает его доступным для обработки. Файловая переменная имеет отличие ото всех других переменных: она не может использоваться в выражениях и операторах присваивания. Для возможности обработки компонента файла должна быть введена переменная того же типа, что и элементы файла (в примере - это переменная student).