Написать на языке C++ программу, вычисляющую функцию, представленную в виде ряда с заданной точностью - C (СИ)
Формулировка задачи:
Ребят помогите пожалуйста. Написать на языке СИ++
Составить программу вычисления функции, представленной бесконечным ря-
дом, с точностью до четырех знаков после запятой. Программу оформить в
виде функции языка С.
Составить программу, которая рассчитывает таблицу значений этой функции в
указанном диапазоне значений x0 — xk с заданным шагом h. Величины x0, xk, h
вводить с клавиатуры
Вот примерный фундамент, но эта программа не идет у меня на компьютере и поменять просто значения не получается... Помогите пожалуйста
Листинг программы
- #pragma warning(disable:4996) // отключение данного предупреждения позволяет использовать функцию fopen
- #include <stdio.h>
- int main()
- {
- float S, a, eps, x0, xk, h; // обЪявление переменных
- short int n;
- n = 0; //здесь будет счетчик. Номер члена ряда.
- S = 0; // здесь будет считаться сумма бесконечно ряда.
- eps = 0.0001; //точность
- a = 1; // переменная для подсчета членов ряда по рекуррентному соотношению
- scanf_s("%f",&x0); // начальная точка
- scanf_s("%f",&xk); // конечная точка
- scanf_s("%f",&h); // шаг (инкремент)
- FILE *stream; // дескриптор файла
- stream = fopen("result.txt", "a+"); // создание файла, в который буду записываться рез-ты работы программы.
- do // Этот цикл с постусловием нужен для получения множества значений функции, соответсвующих данным аргументам.
- { // Он будет выполняться, пока х0 не станет равно хk.
- do // Цикл внутри нужен для вычисления сумма слагаемых бесконечного ряда при данном х0
- { S = S + a; // сумма слагаемых
- n= n+1; // счетчик номера члена ряда
- a=(a*2*n*x0*x0) / ((2*n + 1)*(1 + x0*x0)); // вычисление следующего члена ряда по рекуррентной формуле,
- } while (a >= eps); // пока он не станет меньше требуемой точности.
- S = (S*x0) / (x0*x0 + 1); // значение самой функции в этой точке: (сумма бесконечного ряда)*(член перед ним)
- printf_s("%f ", x0); // вывод аргумента функции на консоль
- printf_s("%f \n", S); // вывод значения функции на консоль
- if (stream != NULL) // обеспечение записи аргумента и значения функции в файл
- {
- fprintf(stream, "%f ", x0); // аргумент
- fprintf(stream, "%f \n", S); // значение функции
- }
- S = 0;
- n = 0; // подготовка к новому прохождению цикла с измененным x0. S можно обнулять, так как эта переменная уже выведена
- a = 1;
- x0=x0+h; // добавление к х0 указанного шага.
- } while (x0<= xk); // проверка условия на выход цикла.
- scanf_s("%f", &xk); // запрос на ввод символа, чтобы сразу после выполнения команды консоль не закрывалась.
- return 0;
- }
Решение задачи: «Написать на языке C++ программу, вычисляющую функцию, представленную в виде ряда с заданной точностью»
textual
Листинг программы
- if ((fd = fopen("data.txt", "a+")) == NULL) { printf("Holly-molly\n"); exit(0);} do{} while()
Объяснение кода листинга программы
- Открывается файл
data.txt
в режиме добавленияa+
с помощью функции fopen. - Проверяется успешность открытия файла, если файл не открылся, выводится сообщение об ошибке и программа завершается.
- Запускается бесконечный цикл do-while, который будет выполняться до тех пор, пока не произойдет переход в следующую итерацию с помощью оператора break.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д