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

UptoLike

Андрианова А.А., Исмагилов Л.Н., Мухтарова Т.М.
Параболическая функция задается параметром p и смещением графика y
0
по оси OY.
Для определения функции в левой части ограничения можно
объявить следующий класс Function:
// класс, задающий функцию в левой части ограничения
class Function
{
int typeFunction; // тип кривой: 1 – линейная,
// 2 – эллиптическая,
// 3 – гиперболическая,
// 4 – параболическая
// параметры задающие функции разных типов
double a, b, p, x0, y0;
. . .
};
// перечисление для определения типа ограничения
// le – <=, ge – >=, e – =, l – <, g – >, n – <>
typedef enum{le, ge, e, l, g, n} type_inequation;
// класс, определяющий ограничение
class Constraint
{
Function function; // объект, описывающий функцию
// в левой части ограничения
double b; // правая часть
type_inequation type; // тип ограничения
. . .
};
// класс, определяющий множество
class Set
{
Constraint* constraints; // массив ограничений
int n; // количество ограничений в системе
. . .
};
Хранить координаты точки в пространстве R
2
будем с помощью
структуры Point:
struct Point
{
double x;
188
                               Андрианова А.А., Исмагилов Л.Н., Мухтарова Т.М.
Параболическая функция задается параметром p и смещением графика y0
по оси OY.
    Для определения функции в левой части ограничения можно
объявить следующий класс Function:

      // класс, задающий функцию в левой части ограничения
      class Function
      {
           int typeFunction; // тип кривой: 1 – линейная,
                             //              2 – эллиптическая,
                             //              3 – гиперболическая,
                             //              4 – параболическая
           // параметры задающие функции разных типов
           double a, b, p, x0, y0;
           .    .    .
      };


      // перечисление для определения типа ограничения
      // le – <=, ge – >=, e – =, l – <, g – >, n – <>
      typedef enum{le, ge, e, l, g, n} type_inequation;


      // класс, определяющий ограничение
      class Constraint
      {
          Function function;     // объект, описывающий функцию
                                 // в левой части ограничения
          double b;              // правая часть
          type_inequation type; // тип ограничения
           .    .    .
      };


      // класс, определяющий множество
      class Set
      {
           Constraint* constraints; // массив ограничений
           int n;         // количество ограничений в системе
           .    .    .
      };

    Хранить координаты точки в пространстве R2 будем с помощью
структуры Point:
      struct Point
      {
           double x;

188