Практикум по курсу "Объектно-ориентированное программирование" на языке C#. Андрианова А.А - 67 стр.

UptoLike

66
// класс, задающий множество как систему ограничений
class Set
{
Constraint[] constraints; // массив ограничений
int n; // количество ограничений
// конструктор, задающий количество ограничений
public Set(int n1)
{
n = n1;
constraints = new Constraint [n];
for (int i = 0; i < n; i++)
// при создании ограничения будут
// запрошены его параметры для ввода
constraints[i] = new Constraint();
}
// метод проверки, принадлежит ли точка множеству
public bool Belongs(double x, double y)
{
// точка не принадлежит множеству, если не выполняется
// хотя бы одно из ограничений, определяющих множество
for(int i = 0; i < n; i++)
if (!constraints[i].IsExecute(x,y))
return false;
return true;
}
// метод проверки, лежит ли точка на границе множества
public bool IsOnBound(double x, double y)
{
// точка лежит на границе, если выполняются все
// ограничения и хотя бы одно из них – как равенство
if (Belongs(x,y))
for(int i = 0; i < n; i++)
if (constraints[i].IsOnBound(x,y))
return true;
return false;
}
// операция получения строкового представления множества
static public implicit operator string(Set ob)
{
string res = "";
for (int i = 0; i < ob.n; i++)
res = res + ob.constraints[i] + "\n";
return res;
}
}
// класс, задающий множество как систему ограничений
class Set
{
   Constraint[] constraints;    // массив ограничений
   int n;                       // количество ограничений
   // конструктор, задающий количество ограничений
   public Set(int n1)
   {
      n = n1;
      constraints = new Constraint [n];
      for (int i = 0; i < n; i++)
          // при создании ограничения будут
          // запрошены его параметры для ввода
          constraints[i] = new Constraint();
   }
   // метод проверки, принадлежит ли точка множеству
   public bool Belongs(double x, double y)
   {
      // точка не принадлежит множеству, если не выполняется
      // хотя бы одно из ограничений, определяющих множество
      for(int i = 0; i < n; i++)
          if (!constraints[i].IsExecute(x,y))
              return false;
      return true;
   }


    // метод проверки, лежит ли точка на границе множества
    public bool IsOnBound(double x, double y)
    {
       // точка лежит на границе, если выполняются все
       // ограничения и хотя бы одно из них – как равенство
       if (Belongs(x,y))
          for(int i = 0; i < n; i++)
              if (constraints[i].IsOnBound(x,y))
                 return true;
       return false;
    }


    // операция получения строкового представления множества
    static public implicit operator string(Set ob)
    {
       string res = "";
       for (int i = 0; i < ob.n; i++)
          res = res + ob.constraints[i] + "\n";
       return res;
    }
}



                                                               66