Вычисление суммы бесконечного ряда - C (СИ) (149284)
Формулировка задачи:
Поступил в этом году в вуз, а там с первых дней программирование на уровне, мне недоступном. Первые пару заданий еще сделал, а тут совсем завис. Понимаю, что это очень интересно, но абсолютно не могу сделать вот это. Если кто поможет, буду очень благодарен. Вот собсно задание:
Написать на языке C функцию приближённого вычисления суммы бесконечного
степенного ряда из таблицы 2 согласно номеру варианта. При работе функция должна
суммировать не менее 10 членов ряда, а далее продолжать суммирование до тех пор, пока
очередной член ряда не станет достаточно мал по сравнению с суммой предыдущих членов
ряда. Окончание суммирования должно быть произведено, когда модуль отношения
очередного члена ряда к сумме всех предыдущих членов не станет меньше некоторого
заданного пользователем числа, которое будем называть “точностью”. Функция должна
принимать в качестве аргументов два вещественных значения: первый аргумент – значение
x, при котором надо вычислить значение суммы ряда, второй аргумент – “точность”.
Возвращаемое функцией значение – это значение вычисленной суммы ряда.
Решение задачи: «Вычисление суммы бесконечного ряда»
textual
Листинг программы
#include<stdlib.h>
#include<math.h>
#include<stdio.h>
double dva(float x, float tochnost)
{
int i;
float y, sum;
double Si = 1;
double S = 1;
for(i=1; i<10 || (Si/S)>tochnost; i++)
{
Si=-Si*x*sqrt((2.))/i;
S=S+Si*cos(3.1415*i/4);
//printf("tytytyt");
}
//printf("%lf", S);
return S;
}
int main ()
{
float tochnost, x;
printf("vvedite tochnost i x");
scanf("%f", &tochnost);
scanf("%f", &x);
printf("%lf" ,dva(x, tochnost));
// system(pause);
return 0;
}
Объяснение кода листинга программы
В этом коде выполняется вычисление суммы бесконечного ряда. Функция dva принимает два аргумента: x и tochnost. Переменная tochnost используется как показатель точности вычислений. В основной функции main пользователю предлагается ввести значения x и tochnost, после чего вызывается функция dva и выводится результат.
Вот список элементов кода с их номерами:
- 1. Объявление переменных в функции
dva:i(1) - счетчик циклаy(1) - временная переменнаяsum(1) - переменная для хранения суммы рядаSi(1) - текущее значение синусаS(1) - текущее значение суммы рядаtochnost(1) - показатель точности вычисленийx(1) - значение аргументаx
- 2. Условие цикла
forв функцииdva:- Цикл выполняется, пока
iменьше 10 или значениеSiпревышаетtochnost
- Цикл выполняется, пока
- 3. Вычисление значения
Siвнутри циклаforв функцииdva:- Значение
Siвычисляется как отрицательное произведениеxна синус квадратного корня из 2, деленное наi
- Значение
- 4. Вычисление значения
Sвнутри циклаforв функцииdva:- Значение
Sувеличивается на текущее значениеSi, умноженное на косинус3.1415*i/4
- Значение
- 5. Комментарий
//printf(%lf, S);в функцииdva:- В этом месте можно было бы выводить значение
Sдля проверки результатов
- В этом месте можно было бы выводить значение
- 6. Вывод значения
Sв функцииmain:- Значение
Sпередается в функциюprintfдля вывода на экран
- Значение
- 7. Вызов функции
dvaв функцииmain:- Функция
dvaвызывается с аргументамиxиtochnost, и результат выводится на экран
- Функция
- 8. Комментарий
// system(pause);в функцииmain:- В этой строке можно было бы добавить паузу, чтобы программа не закрывалась сразу после вывода результата
- 9. Возврат значения 0 в функции
main:- Это означает успешный конец работы программы