ВУЗ:
Составители:
Рубрика:
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
- …
- следующая ›
- последняя »
