- •Курс «основы алгоритмизации и программирования»
- •Тема: «создание и преобразование файлов»
- •1. Понятие файла.
- •1.1. Типизированные файлы.
- •1.1.1. Определение файлового типа.
- •1.1.2. Процедуры и функции обработки файлов.
- •П р о ц е д у р ы
- •Основные логические устройства, которые используются в Турбо Паскале
- •Ф у н к ц и и
- •1.1.3. Файлы последовательного доступа.
- •1.2. Текстовые файлы.
- •Процедуры и функции обработки текстовых файлов
- •П р о ц е д у р ы
- •Ф у н к ц и и
- •1.4. Файлы произвольного доступа.
- •1.5. Нетипизированные файлы.
- •3. Индивидуальные задания.
- •Файлы последовательного доступа
- •Текстовые файлы
- •Файлы произвольного доступа
- •Контрольные вопросы
- •Тема: «создание и преобразование файлов»
- •- Страница 17 -
Курс «основы алгоритмизации и программирования»
ЛЕКЦИЯ № 22.
Тема: «создание и преобразование файлов»
1. Понятие файла.
Входная и выходная информация по отношению к программе на языке Паскаль представляется в виде файлов. Например, ввод и вывод данных осуществляется с помощью стандартных файлов, имена которых определяются идентификаторамиInPutиOutPut. Файл в общем случае состоит из нескольких однотипныхкомпонентов (элементов)и представляется файловой переменной. Файл может существовать как до, так и после выполнения программы и занимать память намного больше, чем сама программа. Программу пользователя также можно рассматривать в виде совокупности данных, допускающей представлениефайловой переменной.
Файл – это поименованная область памяти на внешнем носителе информации, предназначенная для хранения информации.
Файл с точки зрения языка Паскаль – это структурированный тип данных, состоящий из последовательности компонентов в большинстве случаев одного типа и одной длины. Число компонентов, называемое длиной файла, определением типа файла не фиксируется.
В зависимости от способа объявления в Турбо Паскале можно выделить три вида файлов:
типизированные, которые задаются предложением File of «тип»;
текстовые, которые задаются предложением Text;
нетипизированные, которые задаются предложением File.
Существует два способа доступа к компонентам файла: последовательный и произвольный (прямой). При последовательном способе доступа поиск требуемого элемента начинается с начала файла и проверяется по очереди каждый элемент, пока не будет найден нужный. Произвольный способ доступа позволяет обращаться к элементу файла по его порядковому номеру.
1.1. Типизированные файлы.
1.1.1. Определение файлового типа.
Файловый тип определяется в программе с помощью соответствующего описания:
type <имя типа> = file of <тип компонентов>;
где <тип компонентов> – любой базовый тип, кроме файлового.
Переменная файлового типа описывается в разделе определения переменных:
var <идентификатор>:<имя типа>;
Например, определение типов
const max=80;
type line=string[max];
fl=file of line;
задает файловый тип fl, элементами которого могут быть строки длиною до 80 символов. Файловая переменная описывается в следующем виде:
var list:fl;
Возможно описание файловой переменной непосредственно в разделе определения переменных без определения файлового типа. Однако базовый тип компонентов файла должен быть предварительно определен или же являться стандартным:
const max=80;
type line=string[max];
var list: file of line;
При работе с файлами очень часто в качестве их компонентов используются записи, поэтому данные из примера 3 (лекция 21), предназначенные для хранения результатов сдачи сессии группой студентов, можно представить не в виде массива записей, а как файл записей:
type stud=record
fam:string[15];
b1,b2,b3,b4,b5:2..5;
sb:real
end;
var tbl: file of stud;
student:stud;
Доступ к компонентам файла осуществляется через указатель файла(скрытую переменную, неявно описанную вместе с файловой переменнойtbl). При чтении или записи этот указатель перемещается к следующему компоненту и делает его доступным для обработки. Файловая переменная имеет отличие ото всех других переменных: она не может использоваться в выражениях и операторах присваивания. Для возможности обработки компонента файла должна быть введена переменная того же типа, что и элементы файла (в примере – это переменнаяstudent).