Описать файл записи "Статья" - 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
закрывается.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д