Итерационные циклы. Вычисление суммы бесконечного ряда - C (СИ)
Формулировка задачи:
Разработать алгоритм и программу, определяющие сумму ряда с заданной погрешностью е(ипсилон) для произвольно заданного аргумента x.
Бесконечная сумма: 2* (x + (x^3/3) + (x^5/5).... (x^(2n+1)/(2n+1)) )
Диапазон изменений |x|<1
Решение задачи: «Итерационные циклы. Вычисление суммы бесконечного ряда»
textual
Листинг программы
#include <malloc.h> #include <string.h> #include <math.h> int _tmain(int argc, _TCHAR* argv[]) { float x; float e, t = 0, n = 0; setlocale(LC_ALL, "Russian"); printf_s("Введите значение x: "); scanf_s("%f", &x); if (abs(x) < 1) { printf_s("E>0 и E<1 Введите значение погрешности E: "); scanf_s("%f", &e); if (e >= 0 && e <= 1) { while (abs(((pow(2 * n + 1, x)) / (2 * n + 1))) > e) { n++; t = t + ((pow(2 * n + 1, x)) / (2 * n + 1)); } printf_s("Кол-во повторений: %.0f\n", n); } else { printf_s("Погрешность должна быть меньше 1"); } } else { printf_s("|X| должен быть меньше 1!"); } n = 0; _gettch(); return 0; }
Объяснение кода листинга программы
- Ввод значения x с клавиатуры
- Проверка на условие abs(x) < 1
- Если условие выполняется, то происходит вывод сообщения и ввод значения погрешности E
- Проверка на условие e >= 0 && e <= 1
- Если условие выполняется, то происходит запуск цикла while
- В цикле происходит проверка на условие abs(((pow(2 n + 1, x)) / (2 n + 1))) > e
- Если условие выполняется, то происходит увеличение значения n на 1
- К значению t прибавляется значение ((pow(2 n + 1, x)) / (2 n + 1))
- После выхода из цикла while происходит вывод значения n
- Если условие в блоке else выполняется, то выводится сообщение
Погрешность должна быть меньше 1
- Если условие в блоке else выполняется, то выводится сообщение
|X| должен быть меньше 1!
- Значение n сбрасывается в 0
- Выполняется функция _gettch()
- Возвращается 0
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д