Объектно-ориентированное программирование на C++. Андрианова А.А - 194 стр.

UptoLike

Андрианова А.А., Исмагилов Л.Н., Мухтарова Т.М.
// метод проверки принадлежит ли точка множеству
bool Belongs(Point);
// метод проверки лежит ли точка на границе множества
bool IsOnBound(Point);
// дружественные функции ввода, вывода
friend ostream& operator << (ostream&, Set&);
friend istream& operator >> (istream&, Set&);
};
Классы, задающие кривые различных типов, имеют одинаковую
структуру. Для примера приведем определение методов класса Ellipse:
// конструктор класса эллиптической функции
Ellipse::Ellipse(double a1, double b1,
double x1, double y1)
{
// если параметр a или b равен нулю, эллиптическую
// функцию определить невозможно.
// Поэтому генерируется исключение
if(a1 == 0 || b1 == 0)
throw FunctionException();
a = a1;
b = b1;
x0 = x1;
y0 = y1;
}
// функция вывода функции на печать
void Ellipse::Output()
{
cout << "(x-" << x0 << ")^2/" << a * a << "+ (y - "
<< y0 << ")^2/" << b * b;
}
// функция ввода параметров функции на печать
void Ellipse::Input()
{
cin >> a >> b >> x0 >> y0;
}
// функция вычисления значения эллиптической функции
double Ellipse::Сalculate(Point pt)
{
return (pt.x - x0) * (pt.x - x0)/(a * a)+
(pt.y - y0)*(pt.y - y0) / (b * b);
}
194
                                Андрианова А.А., Исмагилов Л.Н., Мухтарова Т.М.
           // метод проверки принадлежит ли точка множеству
           bool Belongs(Point);
      // метод проверки лежит ли точка на границе множества
           bool IsOnBound(Point);
           // дружественные функции ввода, вывода
           friend ostream& operator << (ostream&, Set&);
           friend istream& operator >> (istream&, Set&);
      };

    Классы, задающие кривые различных типов, имеют одинаковую
структуру. Для примера приведем определение методов класса Ellipse:


      // конструктор класса эллиптической функции
      Ellipse::Ellipse(double a1, double b1,
                                         double x1, double y1)
      {
           // если параметр a или b равен нулю, эллиптическую
           // функцию определить невозможно.
           // Поэтому генерируется исключение
           if(a1 == 0 || b1 == 0)
                throw FunctionException();
           a = a1;
           b = b1;
           x0 = x1;
           y0 = y1;
      }


      // функция вывода функции на печать
      void Ellipse::Output()
      {
           cout << "(x-" << x0 << ")^2/" << a * a << "+ (y - "
                                   << y0 << ")^2/" << b * b;
      }

      // функция ввода параметров функции на печать
      void Ellipse::Input()
      {
           cin >> a >> b >> x0 >> y0;
      }

      // функция вычисления значения эллиптической функции
      double Ellipse::Сalculate(Point pt)
      {
           return (pt.x - x0) * (pt.x - x0)/(a * a)+
                          (pt.y - y0)*(pt.y - y0) / (b * b);
      }

194