Написать на языке 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++ программу, вычисляющую функцию, представленную в виде ряда с заданной точностью - C (СИ)»

textual
if ((fd = fopen("data.txt", "a+")) == NULL) { printf("Holly-molly\n"); exit(0);} do{} while()

12   голосов, оценка 3.917 из 5


СОХРАНИТЬ ССЫЛКУ