русс | укр

C# - Главная
Контакты
Задайте вопрос...
Просмотр всех вопросов


Пространство имен
  ► System
  ► Microsoft


Для учеников (начинающих)
  ► Видео уроки
  ► Обучение
  ► Примеры программ
  ► Секреты в Си Шарп

Для профессионалов
  ► Обучение
  ► Примеры программ
  ► Задачки - для тебя!










Класс табулирования функции одной переменной

Опишем класс для табулирования функции 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






© 2012 ci-sharp.ru При использовании материала прямая индексирующая ссылка на сайт ОБЯЗАТЕЛЬНА.
Права строго защищены нормами международного права, интеллектуальной собственности и авторского права.