![]() Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Модуль 1. // структура данных «Дата работ»
unit op; Interface
Type // структура данных «Дата работ» tDateWork= record // запись из 3-х полей day: 1..31; // день month: 1..12; // месяц year: 1900..2020 // год end;
// структура данных «сведения о ЛЭП» tLEP= record //запись из 5-и полей сode: string [8]; // шифр voltage: word; // напряжение space: word; // протяженность year: 1900..2010; // год ввод data: tDateWork // дата последних работ end;
// структура данных файл «Список ЛЭП» tFileLEP= file of tLEP; // файл записей типа tLEP Implementation End. Модуль 2. unit obrabotka; Interface uses op;
procedure vvod(var fLEP: tFileLEP); procedure spravka(var fLEP: tFileLEP); function MinProt(var fLEP: tFileLEP): word; Implementation procedure vvod(var fLEP: tFileLEP); Var LEP: tLEP; // буферная переменная для работы с файлом ch: char; // ответ на вопрос Begin // внесем данные в файл ch: =’y’; while ch in [’y’, ’д’] do begin // пока ответ ’Да ’ with LEP do begin // заполняем буферную переменную Write(’Введите шифр ЛЭП’); ReadLn(code); Write(’Введите напряжение ЛЭП’); ReadLn(voltage); Write(’Введите протяженность ЛЭП’); ReadLn(space); Write(’Введите год ввода в действие ЛЭП’); ReadLn(year); Write(’Введите дату последних линейных работ на ЛЭП’); with data do begin Write(’День ’); ReadLn(day); Write(’Месяц ’); ReadLn(month); Write(’Год ’); ReadLn(year); end; Write(fLEP, LEP); // запись данных в файл // запрос о продолжении ввода WriteLn(’Будете еще вводить данные? (y/д)’); ReadLn(ch) end; // закроем файл Close(fLEP); End; procedure spravka(var fLEP: tFileLEP); Var LEP: tLEP; Begin ReSet(fLEP); // откроем файл // вывод сведений о ЛЭП WriteLn(’Cправкa о ЛЭП, введенных в действие более 10-ти лет назад ’); while not EOF(fLEP) do begin Read(fLEP, LEP); // чтение сведений о ЛЭП из файла with LEP do if (2013–year)> 10 then // больше 10 лет WriteLn(code: 12, voltage: 6, space: 6, year: 6); end; Close(f LEP); // закроем файл End; function MinProt(var fLEP: tFileLEP): word; Var min: word; // протяженность самой короткой ЛЭП LEP: tLEP; // буфер для работы с файлом Begin ReSet(fLEP); Read(fLEP, LEP); // счbтали из файла сведения о первой ЛЭП min: =LEP.space; // длину первой ЛЭП принимаем за минимальную while not EOF(fLEP) do begin Read(fLEP, LEP); // чтение записи о следующей ЛЭП if LEP.space< min then // если её длина меньше ранее полученной min: = LEP.space; // запомним наименьшую длину end; Close(fLEP); // вернем наименьшую длину ЛЭП MinProt: =min End; procedure spravka(var fLEP: tFileLEP); Var LEP: tLEP; Begin ReSet(fLEP); // откроем файл
WriteLn(’Сведения о ЛЭП, имеющую минимальную протяженность’); while not EOF(fLEP) do begin Read(fLEP, LEP); // чтение сведений о ЛЭП из файла if LEP.space=min then // длина равна минимальной WriteLn(code: 12, voltage: 6, space: 6, year: 6); end;
Close(f LEP); // закроем файл End; End. Основная программа. Uses op, obrabotka; Var min: word; // длина самой короткой ЛЭП fLEP: tFileLEP; FileName: string; Begin Write(’Введите имя файла для хранения сведений о ЛЭП: ’); ReadLn(FileName); Assign(fLEP, FileName); // связались с файлом
vvod(fLEP); // ввели сведения spravka(fLEP); // выписали справку min: =MinProt(fLEP); // нашли протяженность самой короткой ЛЭП LstMin(fLEP, min); // вывели сведения о ЛЭП с минимальной протяженостью End. Задания для самостоятельного решения. Для задач своего варианта лабораторной работы № 9 написать программы с использованием структуры данных файл (типизированный файл). Контрольные вопросы: 1. Какими свойствами обладает структура данных файл? 2. Назовите функцию изменения позиции указателя файла. 3. Файлом называется…. варианты ответов: 1) специальная область оперативной памяти 2) совокупность данных объемом не меньше байта 3) совокупность данных, для размещения которой во внешней памяти выделяется именованная область памяти 4) ячейка памяти 4. Функция записи данных в файл варианты ответов: 1) assiqn(f, ‘путь’) 2) reset (f) 3) close(f) 4) read(f, < список>) 5) write(f, < список>) 6) seek(f, n) 5. Назовите главную отличительную черту структуры данных файл от других статических структур данных. 6. Какие из типов файлов являются файлами последовательного доступа, а какие прямого доступа? Перечислите типы файлов (с точки зрения языка программирования Turbo Pascal). 7. Для чего служит указатель на файловую переменную? 8. Какие стороны файла определяет указатель на файловую переменную? 9. Перечислите установочные и завершающие операции над файлом. 10. В чем особенность обработки текстового файла? 11. Назовите режимы работы с типизированными файлами. 12. Назовите режимы работы с текстовыми файлами. 13. Что такое файловая переменная? 14. Типизированный файл является файлом прямого и последовательного доступа? 15. Дайте определение понятию файл.
|