Другие языки программирования и технологии

программирование хелп ми

Даны три множества Х1,Х2,Х3, содержащие целые числа из диапазонов 1..100. Известно, что мощность каждого из этих множеств равна10. Сформировать новое множество Y=(X1+X2)*(X2-X3). Определить входят в первое. На экран вывести исходные и полученные множества. Значения элементов исходных множеств, ввести с клавиатуры
Eldar Muslim
Eldar Muslim
271
>Что значит сложение, умножение множеств?
Сложение - это объединение, умножение - пересечение, вычитание - дополнение.

В немногих языках есть встроенные средства для выполнения операций над множествами, но во многих есть библиотечные функции и процедуры, реализующие эти операции.
Так как никаких указаний на этот счёт в вопросе нет, то решение с помощью встроенных средств языка:

namespace N85704651;

interface

type
  TSet = set of 100;

  ConsoleApp = class
  public
    class method Main(Args: array of string);
  end;

  TSets = class
  public
    method PowerOfSet(x: TSet): byte;
    method OutOfSet(x: TSet);
    method InputOfSet(out x: TSet);
    method Input: byte;
  end;

implementation

class method ConsoleApp.Main(Args: array of string);
begin
  var X1, X2, X3: TSet;
  var Sets: TSets := new TSets;
  Console.WriteLine("Введите множество X1:");
  Sets.InputOfSet(out X1);
  Console.WriteLine("Введите множество X2:");
  Sets.InputOfSet(out X2);
  Console.WriteLine("Введите множество X3:");
  Sets.InputOfSet(out X3);
  var Y: TSet := (X1 + X2) * (X2 - X3);
  Console.WriteLine("Множество X1:");
  Sets.OutOfSet(X1);
  Console.WriteLine("Множество X2:");
  Sets.OutOfSet(X2);
  Console.WriteLine("Множество X3:");
  Sets.OutOfSet(X3);
  Console.WriteLine("Множество Y:");
  Sets.OutOfSet(Y);
  Console.Write("Для завершения работы нажмите любую клавишу... ");
  Console.ReadKey
end;

method TSets.PowerOfSet(x: TSet): byte;
begin
  Result := 0;
  for i: byte := 1 to 100 do
    inc(Result, ord(i in x))
end;

method TSets.OutOfSet(x: TSet);
begin
  for each a in x do
    Console.Write("{0, 4}", a);
  Console.WriteLine
end;

method TSets.InputOfSet(out x: TSet);
begin
  x := [ ];
  while PowerOfSet(x) < 10 do
  begin
    Console.Write("> ");
    x := x + [Input]
  end
end;

method TSets.Input: byte;
begin
  while not(byte.TryParse(Console.ReadLine, out Result) and (0 < Result <=100)) do
  begin
    Console.WriteLine("Ошибка! Введите целое число от 1 до 100.");
    Console.Write("> ")
  end
end;

end.

*** Шерзат ***
*** Шерзат ***
51 590
Лучший ответ
Что значит сложение, умножение множеств? Задача не корректная (не полная)