Описать запись с именем PRICE - Free Pascal

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

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

Помогите пожалуйста, тема "Записи", вот задание: Описать запись с именем PRICE, содержащую следующие поля: -название товара; -название магазина, в котором продается товар; -стоимость товара в руб. Написать программу, выполняющую следующие действия: -ввод с клавиатуры данных в массив, состоящий из восьми элементов типа PRICE; -вывод таблицы на экран; -записи разместить в алфавитном порядке по названиям магазинов; -вывод отсортированной таблицы на экран; -вывод на экран информации о товарах, продающихся в магазине, название которого введено с клавиатуры; -если такого магазина нет, выдать на дисплей соответствующее сообщение.

Решение задачи: «Описать запись с именем PRICE»

textual
Листинг программы
uses crt;
const n=8;
type price=record
           tov,mgz:string[20];
           stm:word;
           end;
var z:array[1..n] of price;
    x:price;
    i,j,k:byte;
    m:string[20];
begin
clrscr;
writeln('Введите данные о ',n,' товарах:');
for i:=1 to n do
with z[i] do
 begin
  writeln('Товар ',i);
  write(' Название товара: ');readln(tov);
  write(' Название магазина: ');readln(mgz);
  write(' Стоимость: ');readln(stm);
 end;
clrscr;
writeln('Исходный список товаров');
writeln('----------------------------------------------------------------');
writeln('|   Название товара  |  Название магазина |  Стоимость товара  |');
writeln('----------------------------------------------------------------');
for i:=1 to n do
writeln('|',z[i].tov:20,'|',z[i].mgz:20,'|',z[i].stm:20,'|');
writeln('----------------------------------------------------------------');
for i:=1 to n-1 do
for j:=i+1 to n do
if z[i].mgz>z[j].mgz then
 begin
  x:=z[i];
  z[i]:=z[j];
  z[j]:=x;
 end;
writeln('Список товаров по алфавиту названий магазинов');
writeln('----------------------------------------------------------------');
writeln('|   Название товара  |  Название магазина |  Стоимость товара  |');
writeln('----------------------------------------------------------------');
for i:=1 to n do
writeln('|',z[i].tov:20,'|',z[i].mgz:20,'|',z[i].stm:20,'|');
writeln('----------------------------------------------------------------');
{если высота экрана 25 символов, нужно 3 следующих строки, если 40, не нужно}
write('Нажмите любую клавишу для продолжения');
readkey;
clrscr;
write('Введите название магазина для поиска:');
readln(m);
writeln('Список товаров продающихся в магазине ',m);
writeln('----------------------------------------------------------------');
writeln('|   Название товара  |  Название магазина |  Стоимость товара  |');
writeln('----------------------------------------------------------------');
k:=0;
for i:=1 to n do
if z[i].mgz=m then
 begin
  k:=1;
  writeln('|',z[i].tov:20,'|',z[i].mgz:20,'|',z[i].stm:20,'|');
 end;
writeln('----------------------------------------------------------------');
if k=0 then writeln('Такого магазина нет!');
write('Нажмите любую клавишу для выхода');
readkey
end.

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

  1. Объявлены переменные:
    • z: массив из n объектов типа price (предполагается, что n равно 8)
    • x: объект типа price
    • i, j, k: булевые переменные для управления циклом
    • m: строковая переменная размером 20 символов
  2. Запрошены данные о товарах. Для каждого товара запрашиваются название товара, название магазина и стоимость. Эти данные записываются в соответствующие поля объекта типа price.
  3. Выводится исходный список товаров в формате таблицы.
  4. Производится сортировка списка товаров по названию магазина в алфавитном порядке.
  5. Выводится отсортированный список товаров в формате таблицы.
  6. Запрашивается название магазина для поиска.
  7. Выводится список товаров, которые продаются в указанном магазине, в формате таблицы. Если такого магазина нет, выводится соответствующее сообщение.
  8. Запрашивается нажатие любой клавиши для выхода.

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


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

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

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