#include "StdAfx.h" #include #include #include using namespace std; long double fact(int N) { if(N < 0) // если пользователь ввел отрицательное число return 0; // возвращаем ноль if (N == 0) // если пользователь ввел ноль, return 1; // возвращаем факториал от нуля - не удивляетесь, но это 1 else // Во всех остальных случаях return N * fact(N - 1); // делаем рекурсию. } int main() { double a,b,h,x,s,p; float y; int n,i; cout << "Vvedite a,b,n" << endl; cin >> a >> b >> n; h=(b-a)/10; x=a; do { p=1; //s=-(pow(2*x,2))/2; s=0; //решил считать по-своему for (i=1; i<=n; i++) { //p *= (-1)*pow((2*x),2)/2*i; //- не обращайте внимания, неудачные попытки p=powf(-1,i)*pow(2*x,2*i)/(fact(2*i)); //fact - факториал, я его сверху над телом основным написал s += p; } y=2*(cos(x)*cos(x)-1); cout << setw(15) << x << setw(15) << y << setw(15) << s << endl; x += h; } while (x <= b+h/2);//не совсем понял нахрена такое условие, видать чтобы можно было вместо <= поставить < cout << endl; system("pause"); return 0; }