Описать файл записи "Статья" - 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.

Объяснение кода листинга программы

  1. Создается тип данных stat с полями:
    • fio типа string[50]
    • title типа string[50]
    • number типа integer
    • year типа integer
  2. Объявляется массив записей a размером 100 элементов типа stat и переменная f типа file of stat.
  3. Программа запрашивает количество записей у пользователя.
  4. В цикле вводятся данные о журналах для каждой из n записей:
    • Вводится fio (ФИО автора)
    • Вводится title (название журнала)
    • Вводится number (номер журнала)
    • Вводится year (год издания)
  5. Записи о журналах записываются в файл f по одной в каждой итерации цикла.
  6. Файл f закрывается.
  7. Открывается файл f для чтения.
  8. Выводятся журналы, номер которых не меньше 5 и выпущены в 2000 году:
    • Пока не достигнут конец файла:
      • Читается следующая запись в a[i] из файла f
      • Если номер журнала не меньше 5 и год издания равен 2000:
      • Выводится название журнала, его номер и ФИО автора.
  9. Файл f закрывается.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.333 из 5
Похожие ответы