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