Функции: вычисление суммы ряда с заданной точностью - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Написать функцию вычисления суммы ряда y=sinx-(sin2x)/2+…+((-1)^n+1)*sin(nx)/n с точностью до eps=0.001. В качестве параметров передать x (в радианах) и eps. Вот, думаю всё правильно, на калькуляторе результаты сверял - всё верно

Решение задачи: «Функции: вычисление суммы ряда с заданной точностью»

textual
Листинг программы
int sign = 1;
do
    {
        n++;
        previous = current;
        current = sin(n*x)/n;
        sum += sign*current;
        sign = -sign;
    } while (fabs(current - previous) > eps);

Объяснение кода листинга программы

  1. Задается переменная sign со значением 1.
  2. Запускается цикл do-while, который выполняется до тех пор, пока разница между текущим и предыдущим значением функции не станет меньше заданной точности eps.
  3. Внутри цикла происходит следующее: 3.1. Увеличивается значение переменной n на 1. 3.2. Значение переменной previous присваивается значение переменной current. 3.3. Значение переменной current вычисляется как синус от n умноженного на x, деленного на n. 3.4. Значение переменной sum увеличивается на значение переменной current, умноженное на sign. 3.5. Значение переменной sign меняется на противоположное.
  4. После выполнения цикла, значение переменной sum будет содержать сумму ряда с заданной точностью.

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


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

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

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