S
Samyrro
Написать функцию вычисления суммы ряда y=sinx-(sin2x)/2+…+((-1)^n+1)*sin(nx)/n с точностью до eps=0.001. В качестве параметров передать x (в радианах) и eps.
[doublepost=1509062568,1509048419][/doublepost]Вот, думаю всё верно, на калькуляторе сверил результаты многократно - всё верно
[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;
}