/*
Файл: лаб1.cpp
Лабораторна работа № 2
Автор: Перепечай Д. Л. гр. 515Б
Дата создания: 10.02.2019
Розгалуження та вибiр. Завдання 1
*/
#include <stdio.h>
#include <locale.h>
#include <math.h>
double sum(int, float);
int main(void)
{
int a, b, h, n;
float Y = 0.0f, YS = 0.0f, x;
double S;// Огоглошуемо локальнi змiннi
setlocale(LC_ALL, "UKR");//Локалiзацiя
printf("Введiть (натуральнi числа) a, b, h, n: ");
scanf("%d %d %d %d", &a, &b, &h, &n);//Введення даних
printf("\n----------------------------------------\n| x| Y | S | Y - S |\n----------------------------------------\n");
x = a + 0.0;
for (int i = a; i <= b; i += h)
{
S = sum(n, x);//Розрахунок суми
float m = x / 2;
Y = (x * x / 4 + x / 2 + 1)*exp(m);// Розрахунок функції
YS = fabs(Y - S);// Перевірка
printf("|%2.0f|%11.2f|%11.2f|%11.2f|\n----------------------------------------\n", x, Y, S, YS);
x += h;
}
return 0;
}
double sum(int n, float x)
{
double S = 0.0;
for (double k = 0.0; k <= n; k++)
{
double k2 = 1.0;
if (k > 1)
for (int f = 1; f <= k; f++)
k2 *= f;
S += (k*k + 1.0) / k2 * pow(x / 2.0, k);
}
return S;
}