Лабораторная работа № 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. Вывод сведений о ЛЭП минимальной протяженности.

Текст программы


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: