ВУЗ:
Составители:
Рубрика:
65
res = res + ">=";
break;
case TypeInequation.e:
res = res + "=";
break;
case TypeInequation.l:
res = res +"<";
break;
case TypeInequation.g:
res = res + ">";
break;
case TypeInequation.n:
res = res + "<>";
break;
default:
throw new Exception
("Не существует такого вида ограничения");
}
// вывод правой части ограничения
res = res + ob.b;
return res;
}
}
В классе Constraint используется принцип полиморфизма при
работе с объектами функций левой части ограничения. Класс содержит
ссылку на абстрактный класс Function, которая может хранить адрес
объекта класса Line, Ellipse, Hyperbola или Parabola, задающего
конкретную функцию. При вводе ограничения у пользователя
запрашивается вид нужной функции и создается объект соответствующего
класса, адрес которого сохраняется в переменной-ссылке function. При
вызове методов Input(), Output() и Calculate() через ссылку
function будут вызываться виртуальные функции того класса, адрес
которого хранится в function. Такие вызовы выполняются как в функциях
ввода/вывода ограничения, так и в методах проверки выполнения некоторых
условий для точки. Таким образом, анализировать в этих методах тип
функции левой части ограничения уже не потребуется.
Далее определим методы класса Set. Отметим, что в этом классе
отсутствует метод ввода информации о системе ограничений. Ввод
выполняется в конструкторе класса Set при создании массива ограничений
(в конструкторе каждого ограничения).
res = res + ">="; break; case TypeInequation.e: res = res + "="; break; case TypeInequation.l: res = res +"<"; break; case TypeInequation.g: res = res + ">"; break; case TypeInequation.n: res = res + "<>"; break; default: throw new Exception ("Не существует такого вида ограничения"); } // вывод правой части ограничения res = res + ob.b; return res; } } В классе Constraint используется принцип полиморфизма при работе с объектами функций левой части ограничения. Класс содержит ссылку на абстрактный класс Function, которая может хранить адрес объекта класса Line, Ellipse, Hyperbola или Parabola, задающего конкретную функцию. При вводе ограничения у пользователя запрашивается вид нужной функции и создается объект соответствующего класса, адрес которого сохраняется в переменной-ссылке function. При вызове методов Input(), Output() и Calculate() через ссылку function будут вызываться виртуальные функции того класса, адрес которого хранится в function. Такие вызовы выполняются как в функциях ввода/вывода ограничения, так и в методах проверки выполнения некоторых условий для точки. Таким образом, анализировать в этих методах тип функции левой части ограничения уже не потребуется. Далее определим методы класса Set. Отметим, что в этом классе отсутствует метод ввода информации о системе ограничений. Ввод выполняется в конструкторе класса Set при создании массива ограничений (в конструкторе каждого ограничения). 65
Страницы
- « первая
- ‹ предыдущая
- …
- 64
- 65
- 66
- 67
- 68
- …
- следующая ›
- последняя »