Вычисление значения функции по графику - 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; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д