Вычислить приближенную сумму функциональной последовательности - C (СИ)
Формулировка задачи:
Доброго времени суток! Я новичок в языке Си. Получил задачу вычислить приближенную сумму функциональной последовательности: двумя способами: сумму первых n членов ряда и сумму с точностью до eps (эпсилон) в двух разных функциях. Сделал задачу таким способом, но получил множество ошибок:
Что тут можно исправить, чтобы программа работала? Заранее спасибо за любую помощь!
double Sum1(int n) { double rez, p; int i; rez = p = 0; for (i = 1; i <= n; i++) { p *= -(1) / (i * i + 1); rez += p; } } return rez; double Sum2(double eps) { double rez, p; int i; rez = p; i = 1; while (fabs(p) >= eps) { i++; p *= -(1) / (i * i + 1); rez += p; } } return rez; int main() { double n,eps; scanf("%f",&n); scanf("%f",&eps); printf("%f", Sum1(n)); printf("%f", Sum2(eps)); return 0; }
Решение задачи: «Вычислить приближенную сумму функциональной последовательности»
textual
Листинг программы
double square(double x) { return x * x; } double member(unsigned long n) { return (n & 1 ? -1.0 : 1.0) / (square((double)n) + 1.0); } double sum1(unsigned long n) { double result = 0.0; for (unsigned long i = 1; i <= n; i++) { result += member(i); } return result; } double sum2(double eps) { double result = 0.0; double m; for (unsigned long i = 1; (m = member(i)) >= eps; i++) { result += m; } return result; }
Объяснение кода листинга программы
- В функции square(x) происходит вычисление квадрата числа x.
- В функции member(n) происходит вычисление значения функции для данного числа n.
- В функции sum1(n) происходит вычисление суммы первых n значений функции member(i).
- В функции sum2(eps) происходит вычисление суммы значений функции member(i), пока значение функции member(i) больше или равно eps.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д