Описать файл записи "Статья" - Pascal
Формулировка задачи:
Очень нужна помощь. Помогите, пожалуйста, разработать программу, обеспечивающую ввод, хранение, обработку и вывод информации о множестве объектов заданного типа. Информация о каждом объекте однотипная, хранится в записи. Список необходимо реализовать при помощи одномерного массива записей (array[1..20] of Тип_записи). Между запусками программы множество должно хранится в виде типизированного файла (File of Тип_записи).
Вариант задания: Статья - Название статьи(Название объекта)
Поля объекта - ФИО автора
- Название журнала
- Номер журнала
- Год издания
Тип запроса к списку записей: Номер журнала – не меньше 5
Год издания - 2000.
Очень-очень нужна ваша помощь.
Решение задачи: «Описать файл записи "Статья"»
textual
Листинг программы
program pr;
type
stat = record // запись
fio: string[50];
title: string[50];
number: integer;
year: integer;
end;
var
a: array [1..100] of stat; // массив записей stat
f: file of stat; // типизированный файл записей stat
i, n: integer;
begin
assign(f, 'c:\magazine.txt'); // открываем файл для записи в него
rewrite(f);
writeln('Введите количество записей');
readln(n);
for i := 1 to n do
begin
writeln('Введите ФИО автора');
readln(a[i].fio);
writeln('Введите название журнала');
readln(a[i].title);
writeln('Введите номер журнала');
readln(a[i].number);
writeln('Введите год издания');
readln(a[i].year);
write(f, a[i]); // записываем элемент по циклу
writeln;
end;
close(f);
writeln('Журналы номер которых не меньше 5 и выпущены s 2000 году: '); // сам запрос, если я правильно его понял
reset(f);
while not eof(f) do
begin
inc(i);
read(f, a[i]);
if (a[i].number >= 5) and (a[i].year = 2000) then // выводится журналы номера которых не меньше 5, выпущенные в 2000 г
begin
writeln('Название: ',a[i].title);
writeln('Номер: ',a[i].number);
writeln('Автор: ',a[i].fio);
end;
end;
close(f);
end.
Объяснение кода листинга программы
- Создается тип данных
statс полями:fioтипа string[50]titleтипа string[50]numberтипа integeryearтипа integer
- Объявляется массив записей
aразмером 100 элементов типаstatи переменнаяfтипаfile of stat. - Программа запрашивает количество записей у пользователя.
- В цикле вводятся данные о журналах для каждой из
nзаписей:- Вводится
fio(ФИО автора) - Вводится
title(название журнала) - Вводится
number(номер журнала) - Вводится
year(год издания)
- Вводится
- Записи о журналах записываются в файл
fпо одной в каждой итерации цикла. - Файл
fзакрывается. - Открывается файл
fдля чтения. - Выводятся журналы, номер которых не меньше 5 и выпущены в 2000 году:
- Пока не достигнут конец файла:
- Читается следующая запись в
a[i]из файлаf - Если номер журнала не меньше 5 и год издания равен 2000:
- Выводится название журнала, его номер и ФИО автора.
- Читается следующая запись в
- Пока не достигнут конец файла:
- Файл
fзакрывается.