Запись в типизированный файл

Сохранять переменные в файл, открытый для записи, можно при помощи команды write(). Так же как и в случае считывания, первой указывается файловая переменная, а за ней - список вывода:

write(f,a,b,c); ― записать в файл f (предварительно открытый для записи командами rewrite(f) или reset(f)) переменные a,b,c.

 

Выводить в типизированный файл можно только переменные соответствующего описанию типа данных. Неименованные и нетипизированные константы нельзя выводить в типизированный файл.

 

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

 

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

seek(f,5); {указатель будет установлен на начало 5-го элемента}

write(f,a); {указатель будет установлен на начало 6-го элемента}

 

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

seek(f,5); {указатель - на начало 5-го элемента}

read(f,a); {указатель - на начало 6-го элемента}

seek(f,5); {указатель - на начало 5-го элемента}

write(f,b); {указатель - на начало 6-го элемента}

СОДЕРЖАНИЕ РАБОТЫ:

Написать алгоритм и отладить программу. Во всех задачах минимальное количество записей – 10.

Вариант Задание
№1 Составить программу, которая содержит текущую информацию о коммунальных платежах. Сведения о каждом платеже содержат: ― ФИО плательщика; ― адрес; ― оплата за электроэнергию; ― оплата за воду. Программа должна обеспечивать следующие функциональные возможности: ― сохранение введенных данных в типизированный файл ‘var_01.dat’; адрес – ‘D:\Work\Poit\2k\ <Ваша фамилия> \Lab20; ― чтение данных из файла; ― поиск информации о плательщиках, фамилии которых начинаются на «К»; ― поиск информации о плательщике, вносящем наибольшую оплату за коммунальные услуги.
№2 Составить программу, которая содержит текущую информацию о наличии билетов в авиакассе. Сведения о каждом билете содержат: ― номер рейса; ― дата вылета; ― время вылета; ― место назначения; ― стоимость. Программа должна обеспечивать следующие функциональные возможности: ― сохранение введенных данных в типизированный файл ‘var_02.dat’; адрес – ‘D:\Work\Poit\2k\ <Ваша фамилия> \Lab20; ― чтение данных из файла; ― поиск информации о рейсах на 01.02.2011; ― поиск информации о самом дешевом рейсе в Москву.
№3 Составить программу, которая содержит текущую информацию о книгах в библиотеке. Сведения о книгах содержат: ― номер УДК; ― фамилию и инициалы автора; ― название; ― количество экземпляров данной книги в библиотеке. Программа должна обеспечивать следующие функциональные возможности; ― сохранение введенных данных в типизированный файл ‘var_03.dat’; адрес – ‘D:\Work\Poit\2k\ <Ваша фамилия> \Lab20; ― чтение данных из файла; ― найти количество книг Чехова А. П.; ― книги какого автора в библиотеке находятся в максимальном количестве.
№4 Составить программу, которая содержит текущую информацию о бронировании мест в гостинице. Сведения о каждом бронировании содержат: ― ФИО бронирующего; ― дата прибытия; ― номер комнаты; ― стоимость. Программа должна обеспечивать следующие функциональные возможности: ― сохранение введенных данных в типизированный файл ‘var_04.dat’; адрес – ‘D:\Work\Poit\2k\ <Ваша фамилия> \Lab20; ― чтение данных из файла; ― найти информацию о всех прибывающих 27.02.2011.; ― найти фамилию забронировавшего самую дорогую комнату на 4 этаже.
№5 Составить программу, которая содержит текущую информацию о автошколах города. Сведения о каждой автошколе содержат: ― название; ― адрес; ― номер телефона; ― web-сайт; ― ориентировочная стоимость обучения. Программа должна обеспечивать следующие функциональные возможности: ― сохранение введенных данных в типизированный файл ‘var_ 05.dat’; адрес – ‘D:\Work\Poit\2k\ <Ваша фамилия> \Lab20; ― чтение данных из файла; ― найти все автошколы, находящиеся на проспекте Независимости. ― найти адрес и номер телефона автошколы, в которой самая дешевая стоимость обучения.
№6 Составить программу, которая содержит текущую информацию о расписании автобусов. Сведения о каждом маршруте содержат: ― пункт назначения; ― время отправления; ― время прибытия; ― стоимость билета. Программа должна обеспечивать следующие функциональные возможности: ― сохранение введенных данных в типизированный файл ‘var_ 06.dat’; адрес – ‘D:\Work\Poit\2k\ <Ваша фамилия> \Lab20; ― чтение данных из файла; ― найти информацию о рейсах Минск-Гомель; ― найти наиболее поздний рейс, отправляющийся из Постав.
№7 Составить программу, которая содержит текущую информацию о успеваемости студентов. Сведения о каждом студенте содержат: ― номер зачетной книжки; ― ФИО студента; ― номер группы; ― средний балл за сессию. Программа должна обеспечивать следующие функциональные возможности: ― сохранение введенных данных в типизированный файл ‘var_07.dat’; адрес – ‘D:\Work\Poit\2k\ <Ваша фамилия> \Lab20; ― чтение данных из файла; ― поиск информации о студентах определенной группы; ― вывод фамилии студента, имеющего максимальный средний балл.
№8 Составить программу, которая содержит текущую информацию о преподавателях цикловой комиссии. Сведения о каждом преподавателе содержат: ― ФИО преподавателя; ― преподаваемая дисциплина; ― нагрузка (количество часов в год); ― кураторство. Программа должна обеспечивать следующие функциональные возможности: ― сохранение введенных данных в типизированный файл ‘var_08.dat’; адрес – ‘D:\Work\Poit\2k\ <Ваша фамилия> \Lab20; ― чтение данных из файла; ― поиск информации о преподавателях-кураторах; ― поиск информации о преподавателях, имеющих минимальную нагрузку.
№9 Составить программу, которая содержит текущую информацию о сотрудниках лаборатории. Сведения о каждом сотруднике содержат: ― ФИО преподавателя; ― возраст; ― должность; ― ученая степень. Программа должна обеспечивать следующие функциональные возможности: ― сохранение введенных данных в типизированный файл ‘var_09.dat’; адрес – ‘D:\Work\Poit\2k\ <Ваша фамилия> \Lab20; ― чтение данных из файла; ― поиск информации о преподавателях старше 50 лет; ― поиск информации о преподавателях, фамилии которых начинаются с определенной буквы.
№10 Составить программу, которая содержит текущую информацию о работе автосервиса. Сведения содержат: ― ФИО владельца автомобиля; ― марка автомобиля; ― дата ремонта; ― стоимость ремонта. Программа должна обеспечивать следующие функциональные возможности: ― сохранение введенных данных в типизированный файл ‘var_10.dat’; адрес – ‘D:\Work\Poit\2k\ <Ваша фамилия> \Lab20; ― чтение данных из файла; ― поиск информации о ремонте автомобилей определенной марки; ― поиск информации о наиболее дорогом ремонте.
№11 Составить программу, которая содержит текущую информацию о нарушителях ПДД. Сведения о нарушителе содержат: ― ФИО нарушителя; ― дата нарушения; ― вид нарушения; ― сумма штрафа. Программа должна обеспечивать следующие функциональные возможности: ― сохранение введенных данных в типизированный файл ‘var_11.dat’; адрес – ‘D:\Work\Poit\2k\ <Ваша фамилия> \Lab20; ― чтение данных из файла; ― поиск информации о нарушениях скоростного режима; ― поиск информации о нарушителе, заплатившем наибольший штраф.
№12 Составить программу, которая содержит текущую информацию о туристических путевках. Сведения о каждой путевке содержат: ― страна; ― отель (количество звезд); ― длительность; ― цена путевки. Программа должна обеспечивать следующие функциональные возможности: ― сохранение введенных данных в типизированный файл ‘var_12.dat’; адрес – ‘D:\Work\Poit\2k\ <Ваша фамилия> \Lab20; ― чтение данных из файла; ― поиск информации о путевках с проживанием в пятизвездочном отеле; ― поиск страны, стоимость путевки в которую минимальна.
№13 Составить программу, которая содержит текущую информацию о сдаваемых внаем квартирах. Сведения о каждой квартире содержат: ― количество комнат; ― адрес; ― телефон; ― цена найма. Программа должна обеспечивать следующие функциональные возможности: ― сохранение введенных данных в типизированный файл ‘var_13.dat’; адрес – ‘D:\Work\Poit\2k\ <Ваша фамилия> \Lab20; ― чтение данных из файла; ― поиск информации о квартирах дешевле 100 у. е.; ― поиск информации о самой дорогой однокомнатной квартире.

ВОПРОСЫ ВЫХОДНОГО КОНТРОЛЯ:

1. Сформулируйте определения бинарных файлов.

2. Приведите структуру типизированного файла.

3. Опишите структуру процедур, которые можно использовать для типизированных файлов.

4. Приведите пример описания нетипизированного файла.

ДОМАШНЕЕ ЗАДАНИЕ

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