Вычисление значения функции по графику - 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;
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4 из 5
Похожие ответы