Описать файл записи "Статья" - Pascal

Узнай цену своей работы

Формулировка задачи:

Очень нужна помощь. Помогите, пожалуйста, разработать программу, обеспечивающую ввод, хранение, обработку и вывод информации о множестве объектов заданного типа. Информация о каждом объекте однотипная, хранится в записи. Список необходимо реализовать при помощи одномерного массива записей (array[1..20] of Тип_записи). Между запусками программы множество должно хранится в виде типизированного файла (File of Тип_записи). Вариант задания: Статья - Название статьи(Название объекта) Поля объекта - ФИО автора - Название журнала - Номер журнала - Год издания Тип запроса к списку записей: Номер журнала – не меньше 5 Год издания - 2000. Очень-очень нужна ваша помощь.

Решение задачи: «Описать файл записи "Статья"»

textual
Листинг программы
  1. program pr;
  2.  
  3. type
  4.   stat = record          // запись
  5.     fio: string[50];
  6.     title: string[50];
  7.     number: integer;
  8.     year: integer;
  9.   end;
  10.  
  11. var
  12.   a: array [1..100] of stat;        // массив записей stat
  13.   f: file of stat;                     // типизированный файл записей stat
  14.   i, n: integer;
  15.  
  16. begin
  17.   assign(f, 'c:\magazine.txt');                     // открываем файл для записи в него
  18.   rewrite(f);
  19.   writeln('Введите количество записей');
  20.   readln(n);
  21.   for i := 1 to n do
  22.   begin
  23.     writeln('Введите ФИО автора');
  24.     readln(a[i].fio);
  25.     writeln('Введите название журнала');
  26.     readln(a[i].title);
  27.     writeln('Введите номер журнала');
  28.     readln(a[i].number);
  29.     writeln('Введите год издания');
  30.     readln(a[i].year);
  31.     write(f, a[i]);                                      // записываем элемент по циклу
  32.     writeln;
  33.   end;
  34.   close(f);
  35.   writeln('Журналы номер которых не меньше 5 и выпущены s 2000 году: ');    // сам запрос, если я правильно его понял
  36.   reset(f);
  37.   while not eof(f) do
  38.   begin
  39.     inc(i);
  40.     read(f, a[i]);
  41.     if (a[i].number >= 5) and (a[i].year = 2000) then      // выводится журналы номера которых не меньше 5, выпущенные в 2000 г
  42.     begin
  43.       writeln('Название: ',a[i].title);
  44.       writeln('Номер: ',a[i].number);
  45.       writeln('Автор: ',a[i].fio);
  46.     end;
  47.   end;
  48.   close(f);
  49. 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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы