
- •Алгоритмические языки и программирование работа с файлами
- •Брянск 2007
- •1. Цель работы
- •2. Теоретическая часть
- •2.1. Типизированные файлы
- •2.1.1. Объявление файловой переменной
- •2.1.2. Связывание файловой переменной
- •2.1.3. Открытие файла
- •2.1.4. Операции ввода/вывода
- •2.1.5. Дополнительные операции (применяемые только
- •2.1.6. Закрытие файла
- •2.2. Текстовые файлы
- •2.3. Нетипизированные файлы
- •2.4. Дополнительные подпрограммы для работы с файлами
- •2.4.1. Переименование и удаление
- •2.4.2. Обработка ошибок ввода/вывода
- •2.4.3. Операции с каталогами
- •2.4.4. Дополнительные операции
- •2.5. Примеры
- •2.5.1. Работа с типизированными файлами
- •2.5.2. Работа с текстовыми файлами
- •2.5.3. Работа с нетипизированными файлами
- •3. Порядок выполнения работы
- •4. Список заданий
- •4.1. Работа с типизированными файлами
- •4.2. Работа с текстовыми файлами
- •5. Контрольные вопросы
- •6. Список рекомендуемой литературы
2.5.2. Работа с текстовыми файлами
Рассмотрим пример заполнения массива данных из текстового файла.
Const
N= 1000; {максимальная длина ввода}
Var
F: Text; {объявляем переменную файлового типа.}
{объявляем массив из символов размерностью N}
m: array [1..N] of Char;
i: Integer; {переменная-счетчик}
BEGIN
{связываем логический файл с физическим файлом prog.dat}
Assign (F, 'prog.dat');
Reset(F); {инициируем файл для чтения}
i:=1; {инициализируем счетчик}
{пока не достигли конца файла или последнего элемента, выполняем цикл}
While not EOF(F) or (i<= N) Do Begin
Read(F, m[i]); {ввод считанных элементов из файла в массив}
Inc(i); {увеличиваем счетчик}
End;
Close(F); {закрываем файл}
END.
2.5.3. Работа с нетипизированными файлами
Копирование информации файла в другой файл.
Program Mov;
Var
InFile, OutFile: File;
Buffer: Array[1..2048] of Byte;
BEGIN
{файл-источник данных}
Assign(InFile, 'a:\thisFile');
{файл-приемник данных}
Assign(OutFile, 'c:\thatFile');
Reset(InFile, 1);
Rewrite(OutFile, 1);
{цикл копирования данных из источника в приемник}
While (not EOF(InFile)) Do Begin
BlockRead(InFile, Buffer, SizeOf(Buffer), 1);
BlockWrite(OutFile, Buffer, 1);
End;
Close(OutFile);
Close(InFile);
END.
3. Порядок выполнения работы
Работа выполняется студентом самостоятельно и состоит из этапов:
1) изучение методических указаний по выполнению лабораторной работы и получение индивидуального задания;
2) составление алгоритма и программы на алгоритмическом языке Pascal;
3) составление контрольного примера;
4) отладка программы;
5) защита лабораторной работы.
Конечным результатом выполнения лабораторной работы является работоспособная программа. Текст программы представляется в электронном виде и должен включать постановку задачи, сведения об авторе и подробные комментарии.
После выполнения лабораторной работы преподаватель проверяет качество оформления текста и правильность функционирования программы сначала на примере автора, а затем и на других данных. Все используемые обозначения должны быть расшифрованы.
Текст программы должен включать подробные комментарии, поясняющие назначения процедур, их параметры, использование переменных, смысл и особенности реализации отдельных программных блоков.
4. Список заданий
4.1. Работа с типизированными файлами
1. Выполнить структурированную запись/чтение информации о точках в (из) файл. Точки необходимо вывести на экран в графическом режиме.
2 . Выполнить структурированную запись/чтение информации о линиях в (из) файл. Линии необходимо вывести на экран в графическом режиме.
3. Выполнить структурированную запись/чтение информации о прямоугольниках в (из) файл. Прямоугольники необходимо вывести на экран в графическом режиме.
4. Выполнить структурированную запись/чтение информации об эллипсах в (из) файл. Эллипсы необходимо вывести на экран в графическом режиме.
5. Выполнить структурированную запись/чтение информации об окружностях в (из) файл. Окружности необходимо вывести на экран в графическом режиме.
6. Создать телефонный справочник, в котором содержится информация об абонентах: имя, отчество, фамилия, адрес, телефон.
7. Реализовать вывод *.log файла, в котором содержится информация о файле: имя файла с расширением, размер файла, дата, атрибут.
8. Обеспечить вывод информации о библиотечной литературе: название книги, имя автора, год издания, количество страниц.
9. Реализовать вывод о товарах, содержащихся на складе: наименование товара, количество его на складе, стоимость единицы товара, единицы измерения товара.
10. Выполнить структурированную запись/чтение информации о многоугольниках в (из) файл. Многоугольники необходимо вывести на экран в графическом режиме.
11. Обеспечить вывод информации о студентах: имя, отчество, фамилия, специальность, возраст.
12. Реализовать список продукции видеопроката: характеристика, название фильма, присутствие в прокате (логич. тип), стоимость проката за 1сут.
13. Реализовать вывод информации, содержащейся в файле, характеризующей сбои в работе приложения: название ошибки (или номер ошибки), дата и время возникновения ошибки.
14. Обеспечить выполнение поиска автора по произведению и наоборот.
15. Реализовать возможность редактирования информации библиотечной литературы. Смотри 8-е задание.
16. Создать каталог машин, в котором имеется информация о марке машины, годе выпуска, цвете, цене машины.
17. Реализовать каталог мобильных телефонов, в котором имеется информация о фирме изготовителя, модели, цене, серийном номере.
18. Есть файл, где сохранены результаты игры: имя игрока, количество очков. Необходимо вывести результаты в виде таблицы. Данные должны быть отсортированы по убыванию.
19. Реализовать сортировку данных о работниках фирмы по возрасту. О работниках известна следующая информация: Ф.И.О., дата рождения, дата принятия на работу, специальность/должность.
20. Организовать поиск по таблице с заданными параметрами. Смотри 19-е задание.
21. Отразить на экране список людей, достигших пенсионного возраста, и при желании удалить их из БД. Смотри 19-е задание.
22. Есть два файла с информацией о работниках фирмы. Смотри 19-е задание. Необходимо объединить два файла в один с учетом того, что поля в файлах не идентичны.
23. Вывести список сотрудников, работающих не по специальности. Смотри 19-е задание.
24. Реализовать поиск мобильного телефона по заданному серийному номеру. Смотри 17-е задание.
25. Реализовать поиск по ценовому пределу мобильного телефона. Запрос выглядит следующим образом: подыскать телефон не выше 3000руб. Выводится список всех телефонов, соответствующих заданному условию. Смотри 17-е задание.
26. Реализовать расписание вылетов самолетов, в котором имеется информация о направлении, дате и времени вылета, продолжительности полета, количестве свободных мест.
27. Выполнить поиск самолетов, на которых можно попасть в заданный населенный пункт в определенную дату. Смотри 26-е задание.
28. Определить количество свободных мест в самолетах, вылетающих в определенный день. Смотри 26-е задание.
29. Создать файл, компонентами которого являются записи, содержащие сведения о путевках в туристическом бюро: место и продолжительность отдыха, дата отъезда, стоимость.
30. Определить места возможного отдыха в июле, продолжительностью не более 20 дней. Смотри 29-е задание.