Класс табулирования функции одной переменной
Опишем класс для табулирования функции y=Sin(x)/x. В качестве исходных данных для табулирования будут задаваться a – начало диапазона, b – конец диапазона и n – количество точек. Интерфейс класса (свойства и методы, которые доступны пользователям класса) будет выглядеть следующим образом:
class CTabul {
...
//Параметрический конструктор, где AA – начало диапазона, AB – конец диапазона,
//AN – количество точек
public CTabul(double AA, double AB, int AN) {
...
}
//Свойство, соотвествующее началу диапазона
public double A {
get {
...
}
set {
...
}
}
//Свойство, соотвествующее концу диапазона
public double B {
get {
...
}
set {
...
}
}
//Свойство, соотвествующее количеству точек
public int N {
get {
...
}
set {
...
}
}
//Индексатор, возращающий по индексу AIndex строку таблицы в формате сруктуры SPoint
//(описание ниже) по индексу AIndex
public SPoint this[int AIndex] {
get {
...
}
}
В качестве результата, через индексатор, класс возвращает значения структуры типа SPoint, которая выглядит следующим образом:
struct SPoint {
//Значение Х
public double X;
//Значение Y
public double Y;
//Признак существования значения описанный перечислением типа EValueStatus,
//если значение фунции в данной точке существует, то признак принмает значение
//EValueStatus.Exist, если нет, то EValueStatus.NoExist
public EValueStatus Status;
}
Пример использования класса:
static void Main() {
//Создаем объект класса CTabul
CTabul t = new CTabul(1, 2, 10);
//Изменяем исходные данные
t.A = 0;
t.B = 3;
t.N = 50;
//Выводим результат табулирования
for (int i = 0; i < t.N; i++ ) {
//Читаем строку таблицы с результатом таблуирования
SPoint p = t[i];
//Проверяем признак наличия значения
if (p.Status == EValueStatus.NoExist)
//Если нету, то выводим в столбце значения функции прочерк
Console.WriteLine("{0} {1} ------", i + 1, p.X );
else
//Если есть, то выводим значение
Console.WriteLine("{0} {1} {2}", i + 1, p.X, p.Y);
}
}
Просмотров: 6065
|