Описать запись с именем 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.
Объяснение кода листинга программы
- Объявлены переменные:
- z: массив из n объектов типа price (предполагается, что n равно 8)
- x: объект типа price
- i, j, k: булевые переменные для управления циклом
- m: строковая переменная размером 20 символов
- Запрошены данные о товарах. Для каждого товара запрашиваются название товара, название магазина и стоимость. Эти данные записываются в соответствующие поля объекта типа price.
- Выводится исходный список товаров в формате таблицы.
- Производится сортировка списка товаров по названию магазина в алфавитном порядке.
- Выводится отсортированный список товаров в формате таблицы.
- Запрашивается название магазина для поиска.
- Выводится список товаров, которые продаются в указанном магазине, в формате таблицы. Если такого магазина нет, выводится соответствующее сообщение.
- Запрашивается нажатие любой клавиши для выхода.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д