Найти множество продуктов, которые есть во всех магазинах - 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;

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

  1. Создаётся множество res, которое изначально содержит все продукты.
  2. Затем для каждого магазина m[i] (идентифицируется числом от 1 до nn) происходит следующее:
    • Множество res обновляется, добавляя в себя все продукты из текущего магазина. Это делается с помощью операции умножения (*), так как предполагается, что каждый продукт представлен в виде числа (возможно, это код для работы с товарами в базе данных).
    • Если после обновления res осталось пустым, то выводится сообщение Нет ни в одном магазине.
  3. После обработки всех магазинов выводится сообщение Есть во всех магазинах, если множество res не пустое.
  4. Если после обновления res осталось пустым, то выводится сообщение Нет ни в одном магазине.

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

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