![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Лабораторная работа № 12. Тема: ФАЙЛЫ (типизированные файлы)
Тема: ФАЙЛЫ (типизированные файлы) Цель работы: освоение приемов объявления файлов и овладение навыками обработки типизированных файлов. Образцы решения задач. Задача № 1. Пусть задан файл целых чисел. Из исходного файла создайте новый файл из положительных элементов, кратных 3. Входные данные. < Исходный> файлцелых чисел – f. Выходные данные. < Результирующий> файлположительных элементов, кратных 3 – g. Алгоритм. 1. Создать < Исходный> файл целых чисел. 2. Создать < Результирующий> файл из положительных элементов, кратных 3. 3. Вывести на печать < Результирующий> файл. Текст программы Модуль 1. unit op; Interface
Type tFileOfInt= file of integer; Implementation End. Модуль 2. unit obrabotka; Interface uses op;
procedure sozdanie_ff(var ff: tFileOfInt); procedure sozdanie_gg(var ff, gg: tFileOfInt); procedure printFile(var gg: tFileOfInt); Implementation procedure sozdanie_ff(var ff: tFileOfInt); Var number: integer; // буферная переменная ch: char; // ответ на вопрос Begin // открываем файл Assign(ff, ’IntFile.dat’); // связали файловую переменную с файлом на диске ReWrite(ff); // создаем новый файл // заполняем файл ch: =’y’; while ch in [’y’, ’д’] do begin // пока не введем другую букву WriteLn(’Введите число ’); ReadLn(number); Write(ff, number); // запись элемента в файл
WriteLn(’Будете еще вводить данные, если “да”, то наберите “y” или “д” ’); ReadLn(ch); end; // закрываем файл Close(ff); End; procedure sozdanie_gg(var ff, gg: tFileOfInt); Var number: integer; // буферная переменная Begin // открываем файлы Assign(gg, ’ResultFile.dat’); // связали файловую переменную с файлом на диске ReWrite(gg); // создаем новый файл Assign(ff, ’IntFile.dat’); // связали файловую переменную с файлом на диске ReSet(ff); // повторно открываем файл // while not EOF(ff) do begin // пока не конец файла ff Read(ff, number); // чтение записи из файла if (number> 0) and (number mod 3=0) then // положительное число кратное 3 Write(gg, number) // записали в результирующий файл gg end; // закрываем файл close(ff); close(gg); End; procedure print_gg(var ff: tFileOfInt); Var number: integer; Begin // открываем файл Assign(ff, ’ResultFile.dat’); // связали с новым файлом ReSet(ff); // повторно откроем файл // while not EOF(ff) do begin // пока не конец файла Read(ff, number); // считали число WriteLn(’Очередное число: ’, number) // вывели его end; // закрыли файл Close(ff); End; End. Основная программа. Uses op, obrabotka; Var f, g: tFileOfInt; Begin sozdanie_ff(f); // заполнили исходный файл printFile(f); // вывели исходный файл
sozdanie_gg(f, g); // заполнили результирующий файл printFile(g); // вывели результирующий файл End.
Задача № 2. Имеются данные о нескольких линиях электропередач (ЛЭП): шифр, напряжение, протяженность, год ввода в действие, дата последних линейных работ. Требуется выдать справку о ЛЭП, введенных в действие более 10-ти лет назад, а также выдать сведения о ЛЭП минимальной протяженности. Постановка задачи. Сведения о ЛЭП занесем в типизированный файл. Каждый элементами файла – запись такой же структуры, как и в разобранной задаче лабораторной работы № 9. Алгоритм. 1. Заполнение файла сведений о ЛЭП. 2. Вывод сведений о ЛЭП, введенных в действие более 10-ти лет назад. 3. Нахождение ЛЭП минимальной протяженности. 4. Вывод сведений о ЛЭП минимальной протяженности. Текст программы
|