Множества.В N колхозах выращивают некоторые сельскохозяйственные культуры из имеющегося перечня. Определить ку - Turbo Pascal
Формулировка задачи:
Переделать код,чтобы там были множества.Или написать новый код с множествами.
Решение задачи: «Множества.В N колхозах выращивают некоторые сельскохозяйственные культуры из имеющегося перечня. Определить ку»
textual
Листинг программы
type
TVegetables = (Potato, Tomato, Cabbage, Carrion, Beet);
{
Potato - картофель
Tomato - помидоры
Cabbage - капуста
Carrion - морковь
Beet - свёкла
}
TProduct = set of TVegetables;
TVegetablesStr = array [Low(TVegetables)..High(TVegetables)] of string;
const
VegetablesStr: TVegetablesStr =
(
'картофель',
'помидоры',
'капуста',
'морковь',
'свёкла'
);
{Процедура для вывода на экран названий с/х продуктов из множества}
procedure ShowProducts(Products: TProduct);
var
Vegetable: TVegetables;
begin
for Vegetable := Low(Vegetable) to High(Vegetable) do
begin
if Vegetable in Products then
Write(' ', VegetablesStr[Vegetable]);
end;
WriteLn;
end;
var
Colchoze1, {С/х культуры, возделываемые в колхозе №1}
Colchoze2: TProduct; {С/х культуры, возделываемые в колхозе №2}
begin
{С/х культуры, возделываемые в колхозах}
Colchoze1 := [Potato, Tomato, Cabbage];
Colchoze2 := [Tomato, Cabbage, Carrion, Beet];
{Разного рода статистика о с/х культурах}
WriteLn('В колхозе №1 выращивают:');
ShowProducts(Colchoze1);
WriteLn('В колхозе №2 выращивают:');
ShowProducts(Colchoze2);
WriteLn('Культуры, возделываемые в обоих колхозах:');
ShowProducts(Colchoze1 * Colchoze2);
WriteLn('Культуры, возделываемые только в колхозе №1:');
ShowProducts(Colchoze1 - Colchoze2);
WriteLn('Культуры, возделываемые только в колхозе №2:');
ShowProducts(Colchoze2 - Colchoze1);
end.
Объяснение кода листинга программы
- Создается тип данных TVegetables, который представляет собой множество овощей.
- Создается перечисление Vegetables, в котором каждому овощу присваивается уникальное значение.
- Создается набор (set) TVegetables, который представляет собой множество овощей.
- Создается массив TVegetablesStr, который представляет собой строковое представление множества овощей.
- В процедуре ShowProducts происходит вывод на экран названий овощей из множества Products. Для каждого овоща в Products происходит проверка на наличие его в множестве Vegetable. Если овощ присутствует, то его название выводится на экран.
- В программе определяются два колхоза, каждый из которых выращивает свой набор овощей.
- Выводится информация о том, какие овощи выращиваются в каждом колхозе.
- Выводится информация о том, какие овощи выращиваются только в одном из колхозов.
- Выводится информация о том, какие овощи выращиваются только в другом колхозе.