Практикум по курсу "Объектно-ориентированное программирование" на языке C#. Андрианова А.А - 62 стр.

UptoLike

61
{
Console.WriteLine("Введите данные, определяющие функцию");
}
// абстрактный метод вывода функции на печать
public abstract string Output();
}
Классы, задающие кривые различных типов, имеют одинаковую
структуру. Для примера приведем определение методов класса Ellipse:
// класс, задающий эллиптическую функцию
class Ellipse : Function
{
// параметры, задающие эллиптическую функцию
double a, b;
double x0, y0;
// конструктор эллиптической функции
public Ellipse(double a1= 1, double b1= 1,
double x= 0, double y = 0)
{
// если параметр a или b равен нулю, эллиптическую
// функцию определить невозможно.
// Поэтому генерируется исключение
if (a1 == 0 || b1 == 0)
throw new Exception("Функция не может быть
определена такими параметрами");
a = a1;
b = b1;
x0 = x;
y0 = y;
}
// переопределение виртуального метода
// вычисления значения функции
public override double Сalculate(double x, double y)
{
return (x - x0) * (x - x0) / (a * a) +
(y - y0) * (y - y0) / (b * b);
}
// переопределение виртуального метода ввода
// параметров функции
public override void Input()
{
// вызов базовой версии метода
base.Input();
// ввод параметром эллиптической функции
a = double.Parse(Console.ReadLine());
b = double.Parse(Console.ReadLine());
x0 = double.Parse(Console.ReadLine());
         {
            Console.WriteLine("Введите данные, определяющие функцию");
         }
         // абстрактный метод вывода функции на печать
         public abstract string Output();
     }

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

     // класс, задающий эллиптическую функцию
     class Ellipse : Function
     {
        // параметры, задающие эллиптическую функцию
        double a, b;
        double x0, y0;

         // конструктор эллиптической функции
         public Ellipse(double a1= 1, double b1= 1,
                                         double x= 0, double y = 0)
         {
            // если параметр a или b равен нулю, эллиптическую
            // функцию определить невозможно.
            // Поэтому генерируется исключение
            if (a1 == 0 || b1 == 0)
               throw new Exception("Функция не может быть
                                         определена такими параметрами");
            a = a1;
            b = b1;
            x0 = x;
            y0 = y;
         }

         // переопределение виртуального метода
         // вычисления значения функции
         public override double Сalculate(double x, double y)
         {
            return (x - x0) * (x - x0) / (a * a) +
                                   (y - y0) * (y - y0) / (b * b);
         }

         // переопределение виртуального метода ввода
         // параметров функции
         public override void Input()
         {
            // вызов базовой версии метода
            base.Input();
            // ввод параметром эллиптической функции
            a = double.Parse(Console.ReadLine());
            b = double.Parse(Console.ReadLine());
            x0 = double.Parse(Console.ReadLine());
61