Отсортировать записи по цене товара и вывести список товаров указанной фирмы-производителя - Turbo Pascal

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

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

Программа создает массив записей с данными о продукции на складе фирмы код товара, название товара, фирма-производитель , дата изготовления, количество товара, цена за единицу товара. Отсортировать записи по цене товара и вывести список товаров указанной фирмы-производителя .

Решение задачи: «Отсортировать записи по цене товара и вывести список товаров указанной фирмы-производителя»

textual
Листинг программы
  1. program pr;
  2.  
  3. type
  4.   dat = record
  5.     cod: integer;
  6.     title: string[50];
  7.     firm: string[50];
  8.     data: string[50];
  9.     cout: integer;
  10.     price: integer;
  11.   end;
  12.   arr = array [1..100] of dat;
  13.  
  14. procedure sort_n(var m: arr; n: integer);     // процедура сортировки названия
  15. var
  16.   i, j: integer;
  17.   buf: dat;
  18. begin
  19.   for i := 1 to n - 1 do
  20.     for j := i + 1 to n do
  21.       if  m[i].title > m[j].title then
  22.       begin
  23.         buf := m[i];
  24.         m[i] := m[j];
  25.         m[j] := buf;
  26.       end;
  27. end;
  28.  
  29. procedure sort_s(var m: arr; n: integer);       // процедура сортировки цены
  30. var
  31.   i, j: integer;
  32.   buf: dat;
  33. begin
  34.   for i := 1 to n - 1 do
  35.     for j := i + 1 to n do
  36.       if  m[i].price > m[j].price then
  37.       begin
  38.         buf := m[i];
  39.         m[i] := m[j];
  40.         m[j] := buf;
  41.       end;
  42. end;
  43.  
  44. var
  45.   a: arr;
  46.   i, n, temp, j: integer;
  47.   s: string;
  48.  
  49. begin
  50.   writeln('Введите количество записей');
  51.   readln(n);
  52.   for i := 1 to n do
  53.   begin
  54.     writeln('Введите код ');
  55.     readln(a[i].cod);
  56.     writeln('Введите название ');
  57.     readln(a[i].title);
  58.     writeln('Введите фирму-производителя');
  59.     readln(a[i].firm);
  60.     writeln('Введите дату изготовления');
  61.     readln(a[i].data);
  62.     writeln('Введите количество  ');
  63.     readln(a[i].cout);
  64.     writeln('Введите цену ');
  65.     readln(a[i].price);
  66.     writeln;
  67.   end;
  68.   sort_n(a, n);
  69.   sort_s(a, n);
  70.   writeln('Отсортированный список товаров');
  71.   for j := 1 to n do
  72.   begin
  73.     writeln(a[j].title);
  74.     writeln(a[j].price);
  75.     writeln;
  76.   end;
  77.   writeln;
  78.   writeln('Введите фирму-производителя');
  79.   readln(s);
  80.   writeln('Список товаров фирмы ', s);
  81.   for i := 1 to n do
  82.     if a[i].firm = s then
  83.     begin
  84.       writeln(a[i].title);
  85.       writeln(a[i].cod);
  86.       writeln(a[i].price);
  87.       writeln(a[i].cout);
  88.       writeln(a[i].data);
  89.       writeln;
  90.     end;
  91. end.

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

  1. Создается тип данных dat, который представляет собой запись с полями cod, title, firm, data, cout и price.
  2. Создается переменная arr типа arr, которая представляет собой массив записей типа dat.
  3. Заполняется массив arr с помощью ввода данных от пользователя.
  4. Вызываются процедуры sort_n и sort_s для сортировки массива arr по полям title и price соответственно.
  5. Выводится отсортированный список товаров с помощью цикла for.
  6. Запрашивается фирма-производитель и выводится список товаров этой фирмы с помощью еще одного цикла for.
  7. Код программы завершается.

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


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

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

12   голосов , оценка 4.167 из 5

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

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

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