Множества.В N колхозах выращивают некоторые сельскохозяйственные культуры из имеющегося перечня. Определить ку - Turbo Pascal
Формулировка задачи:
Переделать код,чтобы там были множества.Или написать новый код с множествами.
Листинг программы
- program z8;
- uses Crt;
- type
- kul = (картофель,марковь,свекла,кукуруза,рапс,пшеница);
- const
- mas : array[0..5] of string = ('картофель','марковь','свекла','кукуруза','рапс','пшеница');
- var
- a,b,c:set of kul;
- d:integer;
- r:kul;
- begin
- clrscr;
- a:=[картофель,свекла,рапс];
- b:=[картофель,рапс,свекла];
- c:=[свекла,картофель,пшеница];
- writeln('возделываемые во всех колхозах: ');
- d:=0;
- for r := картофель to пшеница do
- begin
- if (r in a) and (r in b) and (r in c) then
- begin
- write(mas[ord(r)],' ');
- d:=1;
- end;
- end;
- if d=0 then writeln('культур нет');
- writeln;
- writeln;
- writeln('возделываемые только в некоторых колхозах: ');
- d:=0;
- for r:= картофель to пшеница do
- begin
- if not (r in a) and not (r in b) and not (r in c) then
- begin
- write(mas[ord(r)],' ');
- d:=1;
- end;
- end;
- if d=0 then writeln('культур нет');
- readln
- end.
Решение задачи: «Множества.В 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. Если овощ присутствует, то его название выводится на экран.
- В программе определяются два колхоза, каждый из которых выращивает свой набор овощей.
- Выводится информация о том, какие овощи выращиваются в каждом колхозе.
- Выводится информация о том, какие овощи выращиваются только в одном из колхозов.
- Выводится информация о том, какие овощи выращиваются только в другом колхозе.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д