A
Andrey979
Как сделать тестирование задачи? Имеется ввиду, написать в текстовом файле при каких значениях программа будет работать корректно, а при каких не корректно и какие значения будет выдавать при этом.
C++:
/* Найти сумму всех членов ряда (((-1)^i)*x^i)/(i+1)! в точках a, a+h,..., b,
где h=(b-a)/2 и вывести таблицу. Использовать погрешность вычисление eps. Пока |a[i]|>eps -суммировать.*/
#include <stdio.h>
#include <locale.h>
#include <math.h>
float Func(float x, float eps) //подсчет значения у
{
float sum, a; int i=1;
sum=-x/2; a=-x/2; //присвоение значения первого слагаемого
while(abs(a)>eps)
{
a=-a*x/(i+2); //вычисление следующего слагаемого на основе предыдущего
sum=sum+a; //суммирование слагаемых
i++;
}
return sum;
}
void tabul(float a, float b, int n, float eps) //табулирование
{
float x, y, h;
printf(" x y\n"); //вывод заголовка таблицы
x=a;
h=(b-a)/n; // вычисление длины шага
for(int i=0;i<=n;i++)
{
y=Func(x,eps); //вызов функции Func
printf("x= %f y= %f \n", x,y); //формирование значений таблицы
x=x+h; //вычисление х
}
}
int main()
{
setlocale (LC_ALL, "russian");
float a; float b; int n; float eps;
printf("Введите начало отрезка=");
scanf("%f", &a);
printf("Введите конец отрезка=");
scanf("%f", &b);
printf("Введите количество шагов=");
scanf("%d", &n);
printf("Введите погрешность=");
scanf("%f", &eps);
tabul(a,b,n,eps);
}