Описать запись с именем 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.
- Выводится исходный список товаров в формате таблицы.
- Производится сортировка списка товаров по названию магазина в алфавитном порядке.
- Выводится отсортированный список товаров в формате таблицы.
- Запрашивается название магазина для поиска.
- Выводится список товаров, которые продаются в указанном магазине, в формате таблицы. Если такого магазина нет, выводится соответствующее сообщение.
- Запрашивается нажатие любой клавиши для выхода.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д