ВУЗ:
Составители:
Рубрика:
62
y0 = double.Parse(Console.ReadLine());
}
// переопределение виртуальной функции вывода на печать
public override string Output()
{
return "(x-" + x0 + ")^2/" + a * a +
"+ (y - " + y0 + ")^2/" + b * b;
}
}
При такой структуре хранения функции изменяется суть поля
function класса Constraint. Внедрение объекта абстрактного типа,
определяющего функцию левой части, осуществить нельзя. Поэтому в класс
ограничения включается ссылка на базовый класс, которая может хранить
адрес объекта любого дочернего класса. С помощью такой ссылки будут
вызваны виртуальные методы вычисления, ввода и распечатки функций
дочерних классов. Таким образом, существенно изменятся методы класса
Constraint.
Теперь приведем объявление классов Constraint и Set с
внесенными изменениями:
// класс, определяющий ограничение
class Constraint
{
Function function; // ссылка на объект функции
// в левой части ограничения
double b; // правая часть
TypeInequation type; // тип ограничения
// конструктор ограничения – параметры ограничения
// инициализируются путем ввода с клавиатуры
public Constraint()
{
Input();
}
// метод проверки выполнения ограничения
public bool IsExecute(double x, double y)
{
// вычисление функции левой части ограничения
double val = function.Сalculate(x, y);
// сравнение с правой частью согласно виду ограничения
switch(type)
{
case TypeInequation.le:
if (val <= b)
return true;
y0 = double.Parse(Console.ReadLine()); } // переопределение виртуальной функции вывода на печать public override string Output() { return "(x-" + x0 + ")^2/" + a * a + "+ (y - " + y0 + ")^2/" + b * b; } } При такой структуре хранения функции изменяется суть поля function класса Constraint. Внедрение объекта абстрактного типа, определяющего функцию левой части, осуществить нельзя. Поэтому в класс ограничения включается ссылка на базовый класс, которая может хранить адрес объекта любого дочернего класса. С помощью такой ссылки будут вызваны виртуальные методы вычисления, ввода и распечатки функций дочерних классов. Таким образом, существенно изменятся методы класса Constraint. Теперь приведем объявление классов Constraint и Set с внесенными изменениями: // класс, определяющий ограничение class Constraint { Function function; // ссылка на объект функции // в левой части ограничения double b; // правая часть TypeInequation type; // тип ограничения // конструктор ограничения – параметры ограничения // инициализируются путем ввода с клавиатуры public Constraint() { Input(); } // метод проверки выполнения ограничения public bool IsExecute(double x, double y) { // вычисление функции левой части ограничения double val = function.Сalculate(x, y); // сравнение с правой частью согласно виду ограничения switch(type) { case TypeInequation.le: if (val <= b) return true; 62
Страницы
- « первая
- ‹ предыдущая
- …
- 61
- 62
- 63
- 64
- 65
- …
- следующая ›
- последняя »