Определить виды тех культур, которые возделывают на каждом из участков - PascalABC.NET

Узнай цену своей работы

Формулировка задачи:

Нужна помощь в решении. На трех участках возделывают сельскохозяйственные культуры. Известны виды культур, выращиваемых на каждом из участков. Определить виды тех культур, которые возделывают на каждом из участков; возделывают хотя бы на одном из участков; не возделывают ни на одном участке. (Культуры: картофель, укроп, морковь, горох, капуста, редис).

Решение задачи: «Определить виды тех культур, которые возделывают на каждом из участков»

textual
Листинг программы
type
  St10 = String[10];
  
const
  Kultures : array [1..6] of St10 =
    ('картофель', 'укроп', 'морковь', 'горох', 'капуста', 'редис');
   
function inputKultures(N : Integer) : Set of St10;
begin
  Result := [];
  for var i := 1 to 6 do
    begin
      var C := ReadLnString('На участке №' + N.ToString + ' выращивается ' +
      Kultures[i] + '? (1-да / 0-нет) -');
      if (C.Length > 0) and (C[1] = '1') then
        Result += [Kultures[i]];
    end;
  WriteLn;
end;
  
begin
  var U1 := inputKultures(1);
  var U2 := inputKultures(2);
  var U3 := inputKultures(3);
  
  WriteLn(' На первом участке выращивается: ', U1);
  WriteLn(' На втором участке выращивается: ', U2);
  WriteLn('На третьем участке выращивается: ', U3);
  
  var All : Set of St10;
  for var i := 1 to 6 do
    All += [Kultures[i]];
  
  WriteLn;
  WriteLn('На каждом участке выращивается: ', U1 * U2 * U3);
  WriteLn('Хотя бы на одном: ', U1 + U2 + U3);
  WriteLn('Ни на одном: ', All - U1 - U2 - U3);
end.

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

В данном коде определен тип данных St10, который представляет собой строку длиной 10 символов. Далее, объявлен массив Kultures, который содержит названия культур (картофель, укроп, морковь, горох, капуста, редис) для каждого из шести участков. Затем, определена функция inputKultures, которая принимает в качестве параметра номер участка и возвращает множество (Set) строк, представляющих культуры, которые выращиваются на данном участке. В этой функции используется цикл for, который проходит по каждому элементу массива Kultures. Для каждого элемента выполняется следующее:

  1. Пользователю предлагается ввести 1, если культура выращивается на данном участке, и 0 в противном случае.
  2. Если пользователь ввел 1, и длина введенной строки больше 0, то название культуры добавляется в результат. В основной части кода определены три переменные U1, U2, U3, которые содержат результаты работы функции inputKultures для трех разных участков. Затем, выводятся на экран результаты для каждого из трех участков. Далее, определяется переменная All, которая содержит объединение всех элементов массива Kultures. После этого, выводятся на экран следующие результаты:
    • На каждом участке выращивается: U1 U2 U3 - это произведение результатов для каждого из трех участков.
    • Хотя бы на одном: U1 + U2 + U3 - это объединение результатов для любого из трех участков.
    • Ни на одном: All - U1 - U2 - U3 - это разность множества All и объединения результатов для трех участков.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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