Написать на языке 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.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д