Вычисление значения функции по графику - C# (182855)
Формулировка задачи:
Всем приветик!) Пожалуйста помогите вычислить значения функции...
Во вложенном файле, график номер 2
Заранее спасибо)
Решение задачи: «Вычисление значения функции по графику»
textual
Листинг программы
- public double F(double x, double r)
- {
- // Проверка на значение радиуса
- if (r > 3 || r < 0)
- throw new ArgumentOutOfRangeException("Radius must be between 0 and 3");
- // R2
- double r2 = 3 - r;
- // Пределы функции
- double lowerLimit = -r2 - 5;
- double upperLimit = r + 2;
- // Проверка на принадлежность Х допустимому интервалу значений
- if (x < lowerLimit || x > upperLimit)
- throw new ArgumentOutOfRangeException(string.Format("Function is undefined for x belonging to [{0};{1}]", lowerLimit, upperLimit));
- // Пределы промежутков. Для удобства.
- double lim1 = -2 - r2;
- double lim2 = 1 - r;
- double lim3 = 1 + r;
- // Точки, в которых У всегда равна нулю
- if (x == lim1 || x == lim2 || x == lim3)
- return 0;
- // Первый промежуток. Всегда единица
- if (x >= lowerLimit && x <= lowerLimit + 1)
- return 1;
- // Второй промежуток. Длина противолежащего катета равна длине прилежащего, помноженного на тангенс угла прилежащего катета и гипотенузы.
- if (x > lowerLimit + 1 && x < lim1)
- return (lim1 - x) * 0.5;
- // Второй и третий промежутки. По уравнению окружностей.
- if (x > lim1 && x < lim2)
- return Math.Sqrt(Math.Pow(r2, 2) - Math.Pow(x + 2, 2));
- if (x >= lim2 && x < lim3)
- return -Math.Sqrt(Math.Pow(r, 2) - Math.Pow(x - 1, 2));
- // Последний промежуток.
- return r + 1 - x;
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д