• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Си. Функции. Помогите написать код

  • Автор темы Samyrro
  • Дата начала
S

Samyrro

Написать функцию вычисления суммы ряда y=sinx-(sin2x)/2+…+((-1)^n+1)*sin(nx)/n с точностью до eps=0.001. В качестве параметров передать x (в радианах) и eps.
[doublepost=1509062568,1509048419][/doublepost]Вот, думаю всё верно, на калькуляторе сверил результаты многократно - всё верно
Код:
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

#define PI 3.14159265
int main()
{
double x = 0, eps = 0, result = 0, my_funct(double, double);
printf("X ( grad ) = ");
scanf ("%lf", &x);
x = x * (PI / 180.0); // Переводим градусы в радианы
printf("eps = ");
scanf ("%lf", &eps);
result = my_funct(x, eps);
/*Вычисление суммы ряда с определенной точностью ε означает,
 что сумма ряда вычисляется до тех пор, пока модуль разности
 между текущим и предыдущим членом последовательности больше eps.
 */
printf("\nSumma = %lf", result);
getch();
}
double my_funct(double x, double eps)
{
double current = 0, previous = 0, sum = 0;
int n = 1;
current = pow(-1, n+1) * (sin(n*x))/n;
do
    {
        n++;
        previous = current;
        current = pow(-1, n+1) * (sin(n*x))/n;
        sum += current;
    } while (fabs(current - previous) > eps);

return sum;
}
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!