Найти множество продуктов, которые есть во всех магазинах - Turbo Pascal
Формулировка задачи:
Даны сведения о наличии продуктов с их названиями в магазинах. Найти:
а)множество продуктов, которые есть во всех магазинах;
б)множество продуктов, которых нет ни в одном магазине.
Решение задачи: «Найти множество продуктов, которые есть во всех магазинах»
textual
Листинг программы
res:=[hl..kl]; for i:=1 to nn do res:=res*m[i]; { во всех магазинах }
WriteLn('Есть в каждом магазине:');
if res=[] then Write(' <нет>')
else for j:=hl to kl do if j in res then Write(' ',sp[Ord(j)]);
WriteLn;
res:=[hl..kl]; for i:=1 to nn do res:=res-m[i]; { нет ни в одном }
WriteLn('Нет ни в одном магазине:');
if res=[] then Write(' <нет>')
else for j:=hl to kl do if j in res then Write(' ',sp[Ord(j)]);
WriteLn;
Объяснение кода листинга программы
- Создаётся множество
res, которое изначально содержит все продукты. - Затем для каждого магазина
m[i](идентифицируется числом от 1 доnn) происходит следующее:- Множество
resобновляется, добавляя в себя все продукты из текущего магазина. Это делается с помощью операции умножения (*), так как предполагается, что каждый продукт представлен в виде числа (возможно, это код для работы с товарами в базе данных). - Если после обновления
resосталось пустым, то выводится сообщениеНет ни в одном магазине.
- Множество
- После обработки всех магазинов выводится сообщение
Есть во всех магазинах, если множествоresне пустое. - Если после обновления
resосталось пустым, то выводится сообщениеНет ни в одном магазине.